Giới thiệu về OpenSwan

Một phần của tài liệu Kỹ thuật VPN sử dụng IPSEC (Trang 38)

FreeS/WAN là dự án đầu tiên hoàn thành việc thực hiện các giao thức IPSec trên hệ điều hành Linux được bắt đầu vào tháng 4 năm 1999. OpenSwan và Strongswan đã tiếp tục dự án FreeS/WAN. OpenSwan là dự án phần mềm mã nguồn mở của tập đoàn Xelerance, cho phép chúng ta xây dựng các tunnel an toàn thông qua các mạng không tin cậy (Internet). Tất cả các luồng thông tin qua các mạng không tin cậy được mã hóa bởi máy IPSec gateway và được giải mã bởi một IPSec gateway khác ở đầu bên kia. Kết quả tạo ra một mạng riêng ảo.

OpenSwan là sự bổ sung của IPSec cho Linux, nó hỗ trợ các nhân 2.2+ và chạy trên nhiều nền khác nhau bao gồm x86, x86-64, MIPS, và ARM.

Các giao thức IPSec được phát triển bởi tổ chức IETF (Internet Engineering Task Force) và là tính năng tùy chọn trong IPv4 nhưng là một tính năng bắt buộc trong IPv6. Hiện nay, hầu như tất cả các nhà sản xuất Router và các phần mềm an toàn đều hỗ trợ IPSec. Rất nhiều công ty

hợp tác với nhau trong dự án này để đảm bảo các sản phẩm của họ có khả năng hoạt động một cách tương thích.

Mục tiêu chính của dự án này là:

• Làm cho IPSec trở nên phổ biến rộng rãi không giới hạn. o Cung cấp mã nguồn miễn phí theo quy định của GNU. o Chạy trên nhiều hành lang phần cứng khác nhau. o Không giới hạn về khu vực địa lý, lãnh thổ.

• Đảm bảo thực hiện IPSec chất lượng cao trên hệ điều hành Linux. o Tương thích với tất cả các CPU mà Linux hỗ trợ.

o Tương thích với các hệ thống thực hiện IPSec khác..

OpenSwan được thiết kế thành 2 tập module chính, đó là Pluto và KLIPS. Vai trò của Pluto là thực hiện việc thiết lập các SA an toàn dựa trên giao thức IKE. Vai trò của KLIPS là thực hiện xác thực và bảo vệ các gói dữ liệu trên các SA đã được thiết lập.

Hình 3.1: Sơ đồ hoạt động của các module trong OpenSwan 3.1.1. Giới thiệu về Pluto.

Các module chương trình chính trong Pluto.

Tên module Chức năng

Spdc.h Spdc.c

Xây dựng các cơ sở của chính sách an toàn( ví dụ: các cấu trúc của các transform, thuật toán xác thực, mã hóa nhóm của Diffie-Hellman.)

IPSec_doi.h IPSec_doi.c

Thực hiện việc trao đổi các thông tin với các gateway khác để thực hiện các quá trình thỏa thuận các SA an toàn, trong module này, nó cũng thực hiện việc xác thực các gateway mã

hóa bằng việc sử dụng khóa chia sẻ từ trước hay hệ mật khóa công khai.

Preshared.h Preshared.c

Thực hiện việc lấy các giá trị khóa của RSA đặt trong /etc/IPSec.conf và /etc/IPSec.seccrets để phục vụ cho việc mã hóa, giải mã và xác thực

Crypto.h Crypto.c

Mã và giải mã các message của pluto trong quá trình thỏa thuận các SA an toàn. Thuật toán mã hóa ở đây sử dụng DES hoặc IDEA( giá trị mặc định là IDEA)

Cookie.h Cookie.c

Sinh ra các Cookie

Connection.h Connection.c

Sử lý các thông tin về các kết nối

Kernel.h Kernel.c Server.h Server.c Kernel_comm.h Kernel_comm.c

Thực hiện việc trao đổi các thông tin giữa Pluto và KLIPS

Whack.h Whack.c

Kerkel_comm.h Kerkel_comm.c

Giao diện để thực hiện các lệnh của Pluto( Whack) và thực hiện các tiến trình của Whack

Constants.h Lưu và định nghĩa các hằng, bao gồm cả số Diffie-Hellman. Md5.h

Md5.c

Tạo các giá trị tóm lược của hàm băm theo giải thuật MD5

IPSec KLIPS IP TCP UDP ICMP Telnet Pluto SPD SPD KLIPS IP TCP UDP ICMP Telnet Pluto SPD SPD sha1.c

Config.in Lưu trữ các thông tin cấu hình của IPSec để add và Kernel Defconfig Đặt các giá trị ngầm định của IPSec vào Kernel

IPSec_md5.h IPSec_md5.c IPSec_sha1.h IPSec_sha1.c

Thực hiện các hàm băm MD5 và SHA-1

pfkey_v2.h pfkey_v2.c

pfkey_v2_parser.h pfkey_v2_parser.c

Thực hiện việc trao đổi thông tin giữa Pluto và KLIPS

IPSec_xform.h IPSec_xform.c

Kết hợp với các thư viện DES, IDEA và các thông tin thỏa thuận được của Pluto chuyển xuống để tạo ra các khóa an toàn cho phiên liên lạc.

IPSec_rcv.h IPSec_rcv.c

Thực hiện việc giải mã các gói tin từ ngoài tới

IPSec_tunnel.h IPSec_tunnel.c

Mã và đóng gói các gói tin rồi gửi ra đường mạng

Hình 3.2: Cơ chế hoạt động của Pluto 3.1.2. Giới thiệu về KLIPS.

KLIPS lần đầu tiên có trong IPSec Stack cho Linux, phiên bản đầu tiên chạy trên hệ điều hành Linux 2.0, và phiên bản mới nhất chạy trên bất cứ hệ điều hành Linux nào giữa 2.2 và 2.6. Một tính năng của KLIPS là nó hỗ trợ đầy đủ Path MTU Discovery (RFC 1191). Path MTU Discovery mô tả một phương pháp để xác định đơn vị truyền cực đại của một gói tin.

Path MTU Discovery tìm ra kích thước lớn nhất các gói tin có thể được xử lý bởi các định tuyến trung gian giữa hai máy tính. Các máy tính sẽ khởi xướng gửi các gói tin nhỏ, nhưng khi nó nhận biết chính xác về mọi mặt của gói tin thì nó sẽ tăng kích thước gói tin lớn dần. Khi dung lượng của gói tin đã quá lớn, nó sẽ hủy gói tin và gửi lại thông báo cho các máy chủ với nội dung “Destination Unreachable”; trong đó sẽ có một thông báo nói rằng "Datagram Too Big (gói dữ liệu quá lớn)". Máy tính gửi sẽ nhận được thông báo đó, đọc giá trị “Next-Hop MTU”, và sử dụng gói tin có dung lượng nhỏ hơn.

Hình 3.3: Cơ chế hoạt động của KLIPS 3.2. ỨNG DỤNG CỦA OPENSWAN.

• Mạng riêng ảo (VPN): Cho phép 2 mạng máy tính truyền thông một cách an toàn khi kết nối giữa chúng được thực hiện thông qua một mạng không tin cậy thứ 3. Phương pháp thực hiện là đặt gateway an toàn giữa các mạng tin cậy và mạng không tin cậy. Các gateway sẽ mã tất cả các gói tin đi ra mạng không tin cậy và giải mã tất cả tất cả các gói tin đến từ mạng không tin cậy. Do đó tạo thành một Tunnel qua mạng không tin cậy. Nếu thuật toán mật mã là mạnh, quá trình thực hiện cẩn thận, quản trị gateway thành thạo, khi đó ta có thể hoàn toàn tin cậy tính an toàn của Tunnel: hai mạng tin cậy khi đó sẽ trở thành một mạng riêng lớn đơn lẻ.

• Road Warrior: Đây là trường hợp mà các người dùng không có địa chỉ IP tĩnh muốn kết nối đến mạng con phía sau gateway an toàn. Trong trường hợp này, để kết nối được cần phải biết các tham số sau: IP tĩnh của gateway, dải IP của mạng con phía sau gateway, tên mà mỗi bên dùng để đàm phán cho Ipsec (tên này được phân dải ở gateway có dạng @xyz.example.com). Ở đây gateway sẽ không xác thực dựa vào địa chỉ IP của người dùng mà sẽ xác thực thông qua tên đã được phân dải ở gateway. Nếu xác thực thành công gateway sẽ mã hóa tất cả các gói tin được gửi

tới người dùng và giải mã tất cả các gói tin từ người dùng gửi tới. Qua đó tạo nên một kênh an toàn giữa người dùng với mạng con phía sau gateway.

3.3. CÀI ĐẶT, CẤU HÌNH OPENSWAN.3.3.1. Mô hình cài đặt. 3.3.1. Mô hình cài đặt.

Hình 3.4: Mô hình cài đặt hệ thống dùng OpenSwan

Mô hình cài đặt gồm các thành phần:

- 2 Router R1 và R2 có chức năng định tuyến giữa 2 máy OpenSwan1 và OpenSwan2. - OpenSwan1, OpenSwan2 là các gateway mã hóa. Cả 2 máy đều có 2 giao diện mạng; một giao diện nối với mạng trong (192.168.34.0/24 đối với OpenSwan1, 192.168.56.0/24 đối với OpenSwan2), một giao diện nối với mạng ngoài (172.16.11.0/24 đối với OpenSwan1, 172.16.22.0/24 đối với OpenSwan2).

- Client1, Clien2 là 2 máy tính đã cài đặt sẵn các ứng dụng người dùng.

3.3.2. Cài đặt OpenSwan.

Giải nén file openswan-2.6.32.tar.gz bằng câu lệnh

tar –xzf openswan-2.6.32.tar.gz

Tiếp đó vào thư mục openswan-2.6.32 để cài đặt.

[root@dungnv1 openswan-2.6.32]# make programs install

[root@dungnv1openswan-2.6.32]#make KERNELSRC=/usr/src/linux-2.6.36 module minstall programs install

Khởi động dịch vụ IPSEC và kiểm tra kết quả cài đặt OpenSwan:

Hình 3.5: Kết quả cài đặt OpenSwan

Như vậy quá trình cài đặt OpenSwan đã thành công.

3.3.3. Cấu hình OpenSwan.

a). Trên cả 2 máy OpenSwan1 và OpenSwan2 cùng bật “net.ipv4.ip_forward = 1” trong file “/etc/sysctl.conf”:

# Kernel sysctl configuration file for Red Hat Linux

# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details.

# Controls IP packet forwarding net.ipv4.ip_forward = 1

b). Tạo file /etc/ipsec.secrets: file này chứa tham số bí mật RSA sử dụng để xác thực máy OpenSwan ở bên kia.

Trên máy OpenSwan1 thực hiện lệnh:

[root@dungnv1 ~]#ipsec newhostkey --output /etc/ipsec.secrets

Trên máy OpenSwan2 thực hiện lệnh:

[root@dungnv2 ~]#ipsec newhostkey --output /etc/ipsec.secrets

c). Lấy khóa xác thực bên trái và bên phải: Trên máy OpenSwan1 thực hiện lệnh:

[root@dungnv1 ~]# ipsec showhostkey --left

Trên máy OpenSwan2 thực hiện lệnh:

[root@dungnv2 ~]# ipsec showhostkey --right

Kết quả thu được như sau:

Hình 3.7: Khóa xác thực của máy OpenSwan2

d). Cấu hình file ipsec.conf: Đây là file cấu hình của Ipsec mô tả các thông tin điều khiển và cấu hình hệ thống.

Trong mô hình cài đặt hệ thống ở trên sự kết nối giữa 2 nút trong mạng liên lạc có thể là giữa Gateway với Gateway, Gateway với Subnet, Subnet với Gateway hay Subnet với Subnet. Để tạo một kết nối tunnel giữa 2 nút trong mạng liên lạc ta cần thêm nội dung có dạng như sau vào file /etc/ipsec.conf.

Dòng đầu tiên chứa từ khóa conn và tên kết nối: conn <tên kết nối> trong đó <tên kết nối> mô tả đặc trưng của kết nối. Ta quy ước nút viết trước trong <tên kết nối> sẽ đại diện cho phía trái (left) của kết nối, nút viết sau trong <tên kết nối> sẽ đại diện cho phía phải (right) của kết nối.

Ví dụ: conn gateway-to-net mô tả kết nối giữa gateway(bên trái) với mạng con bên phải. Các dòng tiếp theo có dạng <tham số>=<giá trị>. Trong đó các giá trị sẽ đi kèm theo các tham số như:

• Trường hợp 1: Nếu phía trái của kết nối là một mạng con (subnet) thì cần hai tham số cho nút trái này là:

+ left=<địa chỉ IP của gateway trái>

+ leftsubnet=<địa chỉ IP mạng con của gateway left>/24

Tham số “/24” chỉ ra rằng hệ thống dùng 24 bits để đánh địa chỉ mạng.

• Trường hợp 2: Nếu phía trái của kết nối là một gateway thì chỉ cần một tham số cho nút trái này là:

+ left=<địa chỉ IP của gateway left>

• Trường hợp 3: Nếu phía phải của kết nối là một mạng con (subnet) thì cần hai tham số cho nút phải là:

+ righ=<địa chỉ IP của gateway phải>

+ rightsubnet=<địa chỉ IP mạng con của gateway right>/24

• Trường hợp 4: Nếu phía phải của kết nối là một gateway thì chỉ cần một tham số cho nút phải là:

+ right=<địa chỉ IP của gateway phải> Các tham số chung cho kết nối đó là:

+ auto= + leftrsasigkey + rightrsasigkey + leftnexthop + rightnexthop

Giá trị của tham số auto có thể là start (gateway sẽ chủ động thiết lập kết nối với gateway còn lại) hoặc add (gateway sẽ không chủ động thiết lập kết nối với gateway còn lại).

Giá trị của tham số leftrsasigkey được lấy từ phần khóa công khai trong file IPSec.secrets tương ứng cho gateway trái.

Giá trị của tham số rightsasigkey được lấy từ phần khóa công khai trong file IPSec.secrets tương ứng cho gateway phải.

Giá trị của tham số leftnexthop là địa chỉ IP của router tiếp theo của thiết bị VPN bên trái khi nó muốn kết nối đến thiết bị VPN bên phải. Ta nên sử dụng giá trị được tự động tạo ra là

“%defaultroute”, nó sẽ hợp lệ trong hầu hết các trường hợp.

Giá trị của tham số rightnexthop là địa chỉ IP của router tiếp theo của thiết bị VPN bên phải khi nó muốn kết nối đến thiết bị VPN bên trái. Ta nên sử dụng giá trị được tự động tạo ra là

“%defaultroute”, nó sẽ hợp lệ trong hầu hết các trường hợp.

Như vậy nội dung đầy đủ của file ipsec.conf để mô tả 4 kiểu kết nối giữa 2 nút trong mạng liên lạc là (nội dung file ipsec.conf ở trên 2 máy OpenSwan1 và OpenSwan2 là giống nhau):

# /etc/ipsec.conf - Openswan IPsec configuration file

# This file: /usr/local/share/doc/openswan/ipsec.conf-sample ## Manual: ipsec.conf.5

version2.0 # conforms to second version of ipsec.conf specification # basic configuration

config setup

# Do not set debug options to debug configuration issues!

# plutodebug / klipsdebug = "all", "none" or a combation from below: # "raw crypt parsing emitting control klips pfkey natt x509 dpd private" # eg:

# plutodebug="control parsing" #

# enable to get logs per-peer # plutoopts="--perpeerlog" #

# Again: only enable plutodebug or klipsdebug when asked by a developer #

# NAT-TRAVERSAL support, see README.NAT-Traversal nat_traversal=yes

# exclude networks used on server side by adding %v4:!a.b.c.0/24 virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12 # OE is now off by default. Uncomment and change to on, to enable. oe=off

# which IPsec stack to use. auto will try netkey, then klips then mast protostack=netkey

# Add connections here conn net-to-net left=172.16.11.2 leftsubnet=192.168.34.0/24 leftrsasigkey=0sAQOFN1eIlv49lSvGR/bpaLVTJNWm8Qe65vrrXlxYLcS9mneeJT2TGymvtHBZW KpzRTkIzY/yr7osN4Ddjdra35Du7cqogGOBjr6eqhGKCtYRfbxHRwTVqB5FhH2hhapTdyadZZNv UZWNsZVqKUVn4MlSm+x6HbJdC9I3PLju4hHI4JpEfLGEVGuJi5Pmg/Q5okyqKhbhK7OTpJw gahdI2s4RCiuF7H+8idv9KBfJt4CRGBy7j9JceGkAiujiSYu9xhHhwdta/s6iz0tv9yioQZXVrn1n08g 4QtFDskIM+kR4WTDJsHdJ4fvp14coNwIdEbdqk6NE3dO6mHnamsPlebMvmRRJ2Lu8TTvJjtnY 7z/3ng9d leftnexthop=%defaultroute right=172.16.22.2 rightsubnet=192.168.56.0/24 rightrsasigkey=0sAQOgp1JfXH5MUbALfc4ROiSRUF3WTr5peB28/Bjfg2yUEdhKmTZCAmIrQ2 Czt5czgUfg3zzoTYqokpP46cY5YNsb3NjCTKyB/MAcuOQJq1cLNa6LhsadV5J4DNITg3FiXngzK cdSDYw/5AJxPEqF97hCBJHluKW1y8F/OAMT7Now1s1Lq2F+LDUiCng7UNx1h3nbRNvTSn+ HeRqzY/p/f/72XrggT0JoindveYeNomHt26j/UlB6Si+2K1bm/aCgdDcVNmez2ZD6FGhfW2ILQ1X Zy8EG8ZUNJTiqtiKdTJwjQ0R5ioCuuBPxa7Ujcpc+XbCNAYoP0yNOSn2MAfmiskabad1fvMK+ 0fS2JPW/QrEDVMth rightnexthop=%defaultroute auto=add conn net-to-gateway

leftsubnet=192.168.34.0/24 leftrsasigkey=0sAQOFN1eIlv49lSvGR/bpaLVTJNWm8Qe65vrrXlxYLcS9mneeJT2TGymvtHBZW KpzRTkIzY/yr7osN4Ddjdra35Du7cqogGOBjr6eqhGKCtYRfbxHRwTVqB5FhH2hhapTdyadZZNv UZWNsZVqKUVn4MlSm+x6HbJdC9I3PLju4hHI4JpEfLGEVGuJi5Pmg/Q5okyqKhbhK7OTpJw gahdI2s4RCiuF7H+8idv9KBfJt4CRGBy7j9JceGkAiujiSYu9xhHhwdta/s6iz0tv9yioQZXVrn1n08g 4QtFDskIM+kR4WTDJsHdJ4fvp14coNwIdEbdqk6NE3dO6mHnamsPlebMvmRRJ2Lu8TTvJjtnY 7z/3ng9d leftnexthop=%defaultroute right=172.16.22.2 rightrsasigkey=0sAQOgp1JfXH5MUbALfc4ROiSRUF3WTr5peB28/Bjfg2yUEdhKmTZCAmIrQ2 Czt5czgUfg3zzoTYqokpP46cY5YNsb3NjCTKyB/MAcuOQJq1cLNa6LhsadV5J4DNITg3FiXngzK cdSDYw/5AJxPEqF97hCBJHluKW1y8F/OAMT7Now1s1Lq2F+LDUiCng7UNx1h3nbRNvTSn+ HeRqzY/p/f/72XrggT0JoindveYeNomHt26j/UlB6Si+2K1bm/aCgdDcVNmez2ZD6FGhfW2ILQ1X Zy8EG8ZUNJTiqtiKdTJwjQ0R5ioCuuBPxa7Ujcpc+XbCNAYoP0yNOSn2MAfmiskabad1fvMK+ 0fS2JPW/QrEDVMth rightnexthop=%defaultroute auto=add conn gateway-to-net left=172.16.11.2 leftrsasigkey=0sAQOFN1eIlv49lSvGR/bpaLVTJNWm8Qe65vrrXlxYLcS9mneeJT2TGymvtHBZW KpzRTkIzY/yr7osN4Ddjdra35Du7cqogGOBjr6eqhGKCtYRfbxHRwTVqB5FhH2hhapTdyadZZNv UZWNsZVqKUVn4MlSm+x6HbJdC9I3PLju4hHI4JpEfLGEVGuJi5Pmg/Q5okyqKhbhK7OTpJw gahdI2s4RCiuF7H+8idv9KBfJt4CRGBy7j9JceGkAiujiSYu9xhHhwdta/s6iz0tv9yioQZXVrn1n08g 4QtFDskIM+kR4WTDJsHdJ4fvp14coNwIdEbdqk6NE3dO6mHnamsPlebMvmRRJ2Lu8TTvJjtnY 7z/3ng9d leftnexthop=%defaultroute right=172.16.22.2 rightsubnet=192.168.56.0/24 rightrsasigkey=0sAQOgp1JfXH5MUbALfc4ROiSRUF3WTr5peB28/Bjfg2yUEdhKmTZCAmIrQ2

Czt5czgUfg3zzoTYqokpP46cY5YNsb3NjCTKyB/MAcuOQJq1cLNa6LhsadV5J4DNITg3FiXngzK cdSDYw/5AJxPEqF97hCBJHluKW1y8F/OAMT7Now1s1Lq2F+LDUiCng7UNx1h3nbRNvTSn+ HeRqzY/p/f/72XrggT0JoindveYeNomHt26j/UlB6Si+2K1bm/aCgdDcVNmez2ZD6FGhfW2ILQ1X Zy8EG8ZUNJTiqtiKdTJwjQ0R5ioCuuBPxa7Ujcpc+XbCNAYoP0yNOSn2MAfmiskabad1fvMK+ 0fS2JPW/QrEDVMth rightnexthop=%defaultroute auto=add conn gateway-to-gateway left=172.16.11.2 leftrsasigkey=0sAQOFN1eIlv49lSvGR/bpaLVTJNWm8Qe65vrrXlxYLcS9mneeJT2TGymvtHBZW KpzRTkIzY/yr7osN4Ddjdra35Du7cqogGOBjr6eqhGKCtYRfbxHRwTVqB5FhH2hhapTdyadZZNv UZWNsZVqKUVn4MlSm+x6HbJdC9I3PLju4hHI4JpEfLGEVGuJi5Pmg/Q5okyqKhbhK7OTpJw gahdI2s4RCiuF7H+8idv9KBfJt4CRGBy7j9JceGkAiujiSYu9xhHhwdta/s6iz0tv9yioQZXVrn1n08g 4QtFDskIM+kR4WTDJsHdJ4fvp14coNwIdEbdqk6NE3dO6mHnamsPlebMvmRRJ2Lu8TTvJjtnY 7z/3ng9d leftnexthop=%defaultroute right=172.16.22.2 rightrsasigkey=0sAQOgp1JfXH5MUbALfc4ROiSRUF3WTr5peB28/Bjfg2yUEdhKmTZCAmIrQ2 Czt5czgUfg3zzoTYqokpP46cY5YNsb3NjCTKyB/MAcuOQJq1cLNa6LhsadV5J4DNITg3FiXngzK cdSDYw/5AJxPEqF97hCBJHluKW1y8F/OAMT7Now1s1Lq2F+LDUiCng7UNx1h3nbRNvTSn+ HeRqzY/p/f/72XrggT0JoindveYeNomHt26j/UlB6Si+2K1bm/aCgdDcVNmez2ZD6FGhfW2ILQ1X Zy8EG8ZUNJTiqtiKdTJwjQ0R5ioCuuBPxa7Ujcpc+XbCNAYoP0yNOSn2MAfmiskabad1fvMK+ 0fS2JPW/QrEDVMth rightnexthop=%defaultroute auto=add

3.3.4. Cấu hình Router định tuyến giữa 2 máy OpenSwan.

a). Đặt địa chỉ IP cho cổng serial ở trên 2 router: Trên 2 router lần lượt cấu hình các lệnh sau:

R1>enable

R1(config-if)#ip address 10.0.0.1 255.255.255.0 R1(config-if)#clock rate 64000

R1(config-if)#no shutdown R1(config-if)#end

Khi cấu hình xong sẽ nhận được thông báo:

*Mar 1 00:01:43.847: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up

*Mar 1 00:01:44.847: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up

b). Đặt địa chỉ IP cho cổng fastethernet: Cổng fastethernet trên Router1 sẽ nối với máy OpenSwan1, cổng fastethernet trên Router2 sẽ nối với máy OpenSwan2.

Trên Router1 cấu hình lần lượt các lệnh sau:

R1#configure terminal

R1(config)#interface fastEthernet 0/0

R1(config-if)#ip address 172.16.11.1 255.255.255.0 R1(config-if)#no shutdown

R1(config-if)#end

Trên Router2 cấu hình lần lượt các lệnh sau:

R2#configure terminal

R2(config)#interface fastEthernet 0/0

R2(config-if)#ip address 172.16.22.1 255.255.255.0 R2(config-if)#no shutdown

R2(config-if)#end

Khi cấu hình xong các lệnh trên sẽ nhận được thông báo:

*Mar 1 00:03:20.595: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

*Mar 1 00:03:21.595: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Trên Router1: R1#configure terminal R1(config)#router ospf 1 R1(config-router)#network 10.0.0.0 0.0.0.255 area 0 R1(config-router)#network 172.16.11.0 0.0.0.255 area 1 R1(config-router)#end

Khi cấu hình thành công sẽ nhận được thông báo:

*Mar 1 00:04:21.143: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.22.1 on Serial0/0 from LOADING to FULL, Loading Done

Trên Router2: R2#configure terminal R2(config)#router ospf 1 R2(config-router)#network 10.0.0.0 0.0.0.255 area 0 R2(config-router)#network 172.16.22.0 0.0.0.255 area 1 R2(config-router)#end

Khi cấu hình thành công sẽ nhận được thông báo:

*Mar 1 00:04:20.399: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.11.1 on Serial0/0 from LOADING to FULL, Loading Done

Để kiểm tra quá trình định tuyến, thực hiện lệnh ping từ máy OpenSwan1 sang máy OpenSwan2 và ngược lại. Kết quả thu được như sau:

Hình 3.8: Kết nối thành công 2 máy OpenSwan1 và OpenSwan2

Như vậy quá trình cấu hình Router định tuyến giữa 2 máy OpenSwan đã thành công.

3.4. SỬ DỤNG OPENSWAN VÀ PHÂN TÍCH QUÁ TRÌNH HOẠT ĐỘNG CỦA IKE.3.4.1. Sử dụng OpenSwan. 3.4.1. Sử dụng OpenSwan.

Trên cả hai máy OpenSwan1 và OpenSwan2 sử dụng lệnh:

service ipsec start

Khởi động kết nối giữa 2 nút mạng bất kỳ trong mạng (ở đây chọn là net-to-net) bằng câu lệnh:

ipsec auto --up net-to-net

Một phần của tài liệu Kỹ thuật VPN sử dụng IPSEC (Trang 38)