Triển khai ứng dụng

Một phần của tài liệu Nghiên cứu xây dựng giải pháp bảo mật mạng riêng ảo VPN dựa trên công nghệ mở (Trang 86)

3.3.1.1 Mụ hỡnh

90

Phõn chia cỏc mụ hỡnh vật lý

Center Network Remote Office Network

Site Wan IP Ethernet IP Site Wan IP Ethernet IP

VPN server (B) eth0: 202.6.2.106 255.255.255.0 Tunnel: tun0 172.16.100.0 255.255.255.0 Tun1: 172.16.50.0 255.255.255.0 eth1: 10.0.0.1 255.255.255.0 Remote site (A) eth0: Tunnel:tun0 172.16.100.0 255.255.255.0 Tun1: 172.16.50.0 255.255.255.0 eth1: 10.0.1.0 255.255.255.0 Web server 172.20.1.11 PC X 10.0.1.10 APP server 192.168.2.105

Chớnh sỏch truy cập: Thiết lập lớp chớnh sỏch truy cập cho cỏc lớp khỏc nhau của người sử dụng.

Nhõn viờn: được quyền truy cập cỏc dịch vụ như email, website nội bộ… Quản trị: Truy cập toàn quyền vào hệ thống.

Lớp Dải IP ảo Chớnh sỏch Đặt tờn

Nhõn viờn 172.16.100.0/24 Truy cập email, website Tờn người dựng Quản trị 172.16.50.0/24 Toàn quyền truy cập sysadmin1

Cỏch tiếp cận cơ bản, tỏch cỏc lớp người sử dụng theo dải IP ảo. Kiểm soỏt truy cập bằng cỏch thiết lập chớnh sỏch trờn firewall ỏp dụng cho từng dải IP ảo.

Phõn hoạch IP: Hệ thống server VPN sẽ được cấu hỡnh IP public (để đảm bảo cỏc VPN client cú thể nhận diện và kết nối thành cụng trờn mụi trường internet). Hệ thống IP VPN được sử dụng lớp IP private, đề xuất sử dụng 172.16.100.0/24; 172.16.50.0/24. Giải

91

phỏp sử dụng dạng kết nối point to point mỗi kết nối sẽ được khởi tạo một lớp subnet /30 như ở dạng phớa dưới.

[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]

3.3.1.2 Cài đặt và cấu hỡnh openvpn Bước 1: tải gúi ứng dụng

wget http://www.openvpn.net/release/openvpn-2.1.4.tar.gz

wget http:/www.oberhumer.com/opensource/lzo/download/lzo-1.08.tar.gz

Bước 2: Trước tiờn cài đặt gúi lzo :

tar –xvzf lzo-1.08.tar.gz cd lzo-1.08 ./configure make make check make test make install

Bước 3 : tiến hành cài đặt openvpn :

tar –xvzf openvpn-2.1.4.tar.gz cd openvpn-2.1.4

92

make make install

Sinh khúa: Thiết lập CA và tạo ra cỏc chứng chỉ số và khúa cho một mỏy chủ Openvpn và nhiều mỏy khỏch.

Bước đầu tiờn thiết lập một PKI (cơ sở hạ tầng khúa cụng khai). PKI bao gồm: + Khúa cụng khai và khúa riờng của mỏy chủ và mỗi mỏy khỏch.

+ Giấy chứng nhận CA, chứng chỉ và khúa được sử dụng để đăng ký mỗi chứng chỉ số của mỏy chủ và cỏc mỏy khỏch.

Việc tạo và quản lý PKI (small PKI) được thực hiện dưới dạng script được cài đặt tại /etc/openvpn/easy-rsa:

+ Chỉnh sửa cỏc thụng số KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL trong tệp cấu hỡnh vars.

+ Cài đặt PKI

. ./vars ./clean-all ./build-ca

ai:easy-rsa # ./build-ca

Generating a 1024 bit RSA private key ...++++++

...++++++

writing new private key to 'ca.key' ---

You are about to be asked to enter information that will be incorporated into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank

For some fields there will be a default value, If you enter '.', the field will be left blank. ---

Country Name (2 letter code) [KG]: State or Province Name (full name) [NA]: Locality Name (eg, city) [BISHKEK]:

93

Organization Name (eg, company) [OpenVPN-TEST]: Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) []:OpenVPN-CA Email Address [me@myhost.mydomain]:

+ Tạo chứng chỉ số và khúa cho server

./build-key-server server

+ Tạo chứng chỉ và khúa cho mỏy khỏch ./ build-key client

+ Tạo tham số DH

./build-dh

ai:easy-rsa # ./build-dh

Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time

...+... ...+...+...+... ...

Tệp khúa:sau khi thực hiện sinh khúa, hệ thống cỏc khúa tạo ra bao gồm

Tờn tệp Sử dụng trờn Mục đớch Bảo mật

ca.crt server + all clients Root CA certificate NO ca.key key signing machine only Root CA key YES dh{n}.pem Chỉ Server Diffie Hellman parameters NO

server.crt Server Server Certificate NO

server.key Server Server Key YES

client1.crt Client Client1 Certificate NO

94 Cấu hỡnh hệ thống Openvpn: VPN server VPN client port 1554 proto udp dev tun server 172.16.100.0 255.255.255.0 ca /etc/openvpn/scfg/ca.crt cert /etc/openvpn/scfg/server.crt key /etc/openvpn/scfg/server.key dh /etc/openvpn/scfg/dh1024.pem client-to-client client-config-dir /etc/openvpn/ccfg management 127.0.0.1 6300 push "route 192.168.10.0 255.255.255.0" push "dhcp-option DNS 8.8.8.8"

push "dhcp-option WINS 10.8.0.1" tun-mtu 1300 tun-mtu-extra 32 mssfix 1300 keepalive 10 60 tls-auth ta.key cipher BF-CBC max-clients 100 persist-tun persist-key verb 5 status /var/log/openvpn-status-new.log log /var/log/openvpn-new.log remote 192.168.98.44 port 1554 client dev tun proto udp ca ca.crt pkcs11-providers /home/anhdoan/epass3003/redist/libshutt le_p11v220.so.1.0.0 pkcs11-id 'Feitian\x20Technologies\x20Co\x2E\x2 C\x20Ltd\x2E/ePass3003Auto/01215116 09040510/ePass/66393932353833302D3 76166312D313165312D383534642D303 030633239353937336161' resolv-retry infinite tun-mtu-extra 32 mssfix 1300 nobind ping 15 verb 3 #tun-mtu 1300 #tls-remote "anhdoan" 3.3.1.3 Tớch hợp xỏc thực 2 thành tố

Giải phỏp sử dụng xỏc thực 2 thành tố sử dụng thiết bị epass3003 auto sử dụng trong mụi trường linux. Cỏc bước thực hiện:

Bước 1: Cài đặt thiết bị phần cứng token

Cài đặt trỡnh điều khiển để hệ điều hành cú thể nhận dạng được thiết bị phần cứng. Thiết bị hỗ trợ sử dụng trong mụi trường windows và Linux.

Để sử sụng thiết bị thực hiện định dạng thiết bị, cấu hỡnh cỏc thụng số mó PIN, tờn thiết bị.

95

Hỡnh 3. 13: Định dạng thiết bị epass3003

Bước 2: Lấy ID thiết bị etoken.

Openvpn sẽ được cấu hỡnh tỡm đến đỳng ID của thiết bị token lưu khúa. Để lấy được thụng số ID cần thực hiện trỏ tới thư viện hỗ trợ thiết bị.

openvpn --show-pkcs11-ids /home/anhdoan/epass3003/redist/libshuttle_p11v220.so.1.0.0

Certificate DN: /C=US/ST=CA/L=SanFrancisco/O=Fort- Funston/CN=etoken/emailAddress=me@myhost.mydomain Serial: 03 Serialized id: Feitian\x20Technologies\x20Co\x2E\x2C\x20Ltd\x2E/ePass3003Auto/01215116090405 10/ePass/66393932353833302D376166312D313165312D383534642D30303063323935 3937336161

Bước 3: Tạo khúa dạng pksc12 và lưu khúa vào thiết bị etoken Tạo khúa

96 ./build-key-pkcs12 epass3003

Generating a 1024 bit RSA private key ...++++++

....++++++

writing new private key to 'epass3003.key' ---

You are about to be asked to enter information that will be incorporated into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank

For some fields there will be a default value, If you enter '.', the field will be left blank. ---

Country Name (2 letter code) [US]: State or Province Name (full name) [CA]: Locality Name (eg, city) [SanFrancisco]:

Organization Name (eg, company) [Fort-Funston]: Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) [epass3003]: Name []:

Email Address [me@myhost.mydomain]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:

An optional company name []:

Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf Check that the request matches the signature

Signature ok

The Subject's Distinguished Name is as follows countryName :PRINTABLE:'US' stateOrProvinceName :PRINTABLE:'CA' localityName :PRINTABLE:'SanFrancisco' organizationName :PRINTABLE:'Fort-Funston' commonName :PRINTABLE:'epass3003' emailAddress :IA5STRING:'me@myhost.mydomain'

Certificate is to be certified until Apr 25 02:55:17 2022 GMT (3650 days) Sign the certificate? [y/n]:y

97

1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries

Data Base Updated

Bước tiếp theo lưu khúa dạng pkcs12 vào thiết bị epass3003.

Hỡnh 3. 14: Lưu khúa vào thiết bị epass3003

Bước 4: Sử dụng thiết bị phần cứng token. openvpn --config epass3003.conf

98

Hỡnh 3. 15: Sử dụng thiết bị epass3003 3.3.1.4 Tớch hợp tớnh năng tường lửa

Cài đặt phần mềm tường lửa shorewall trờn VPN server và cỏc site. rpm –ivh shorewall-4.4.9-0base.noarch .rpm

Định ngĩa cỏc phõn vựng mạng.

#ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall

loc ipv4 net ipv4 vpn ipv4

Xỏc định cỏc vựng tương ứng với cỏc interface trong /etc/shorewall/interfaces trờn hệ thống A:

#ZONE INTERFACE BROADCAST OPTIONS loc eth1

99 vpn tun+

Cấu hỡnh cho phộp truyền thụng giữa vựng vpn và vựng loc. /etc/shorewall/policy trờn hệ thống A và B

#SOURCE DEST POLICY LOG LEVEL loc vpn ACCEPT

vpn loc ACCEPT

3.3.2 Triển khai mụ hỡnh remote access

100

a. Cài đặt ứng dụng VPN:

Chọn Next

101

b. Cài đặt và định dạng thiết bị etoken

Cài đặt driver

102 Finish

Đăng nhập vào thiết bị etoken.

Sau khi đăng nhập

103

Bước tiếp theo là lưu khúa dạng pkcs12 vào thiết bị eToken

d. Cấu hỡnh ID etoken

Đõy là bước rất quan trọng để phần mềm Openvpn nhận diện được thiết bị. Để lấy được ID của eToken bước đầu phải xỏc định thư viện PKCS11 hỗ trợ thiết bị của nhà sản xuất.

Cú thể sử dụng thư viện mó nguồn mở của Opensc. Tuy nhiờn việc sử dụng thư viện mó nguồn mở cú thể dẫn đến việc hoạt động khụng chớnh xỏc với một số thiết bị của nhà sản xuất (hoặc khụng hỗ trợ thiết bị).

Để thiết bị hoạt động chớnh xỏc nờn sử dụng thư viện được cung cấp bởi nhà sản xuất thiết bị. Ở đõy ta dựng thiết bị của Feitial thư viện được chỉ đến C:\Windows\System32\ngp11v211.dll

104 e. Cấu hỡnh VPN client remote 202.6.2.106 port 1194 client dev tun proto udp auth SHA512 cipher AES-256-CBC tls-cipher DHE-RSA-AES256-SHA tls-auth static-key.key tls-client ca ca.crt pkcs11-providers "C:\\Windows\\system32\\ngp11v211.dll" pkcs11-id Feitian\x20Technologies\x20Co\x2E\x2C\x20Ltd\x2E/ePass2000_FT11/695022421 6110510/MOFA\x20USER\x202/35463932453536462D354631432D343543312D38 3934392D453232444346323542334533' resolv-retry infinite tun-mtu-extra 32 mssfix 1300 nobind ping 15 f. Sử dụng thiết bị eToken

105 Nhập password bảo vệ etoken

Kết nối thành cụng.

Đỏnh giỏ:

+ Thực hiện triển khai thành cụng giải phỏp theo hai mụ hỡnh site to site và remote access. Trong đú, cỏc VPN client sử dụng khúa lưu trờn thiết bị phần cứng etoken phục vụ cho yờu cầu xỏc thực, khởi tạo kết nối.

+ Từ cỏc VPN client khởi tạo kết nối thành cụng với VPN server cú thể truy cập cỏc ứng dụng nội bộ của Bộ Ngoại giao.

+ Tường lửa tớch hợp kiểm soỏt từng kết nối về VPN server theo IP, cỏc IP được phõn hoạch cú quyền truy cập phụ thuộc vào chớnh sỏch quản trị viờn đặt ra.

106

+ Giải phỏp thực hiện thành cụng trờn mụi trường windows và linux.

3.3.3 Triển khai phần mềm quản trị

Trờn cơ sở yờu cầu đặt ra, thiết kế giao diện quản trị VPN server theo dạng web font end. Sử dụng PHP kết nối tới giao diện quản trị Openvpn, thực hiện hiển thị trạng thỏi kết nối, quản trị cỏc kết nối. Sử dụng cơ chế shell cho việc thiết lập khúa, cấu hỡnh khúa.

Sử dụng mysql cho việc lưu trữ account đăng nhập vào hệ thống quản trị.

Hỡnh 3. 17: Mụ hỡnh phần mềm quản trị

Hàm kết nối với giao diện Openvpn manament interface

function openvpn_manager_connect () { global $config; global $openvpn; if ($openvpn['Server']['Management']['Address'] != "") $config['openvpn']['manager']['address'] = $openvpn['Server']['Management']['Address']; if ($openvpn['Server']['Management']['Port'] != "") $config['openvpn']['manager']['port'] = $openvpn['Server']['Management']['Port'];

107 if(!isset($config['openvpn']['manager']['address']) || !isset($config['openvpn']['manager']['port'])) return false; ini_set("default_socket_timeout",5); //$uri='tcp://'.$config['openvpn']['manager']['address'].':'.(int)$config['openvpn'][ 'manager']['port']; $uri='tcp://'.$config['openvpn']['manager']['address']; $fp=@fsockopen($uri, $config['openvpn']['manager']['port']); if (!$fp) return false;

// OpenVPN status line $status=fgets($fp, 512); if(!preg_match('/OpenVPN/',$status)) { if($fp) fclose($fp); return false; } return $fp; }

Giao diện chớnh của chương trỡnh

108

Đỏnh giỏ:

Với việc xõy dựng giao điện quản trị giỳp cho người quản trị dễ dàng theo dừi, vận hành hệ thống kết nối VPN, cụ thể:

+ Giỏm sỏt kết nối từ cỏc điểm về trung tõm, trong đú cú thống kờ lưu lượng được sử dụng trờn kờnh truyền. Cú thể thực hiện ngắt cỏc kết nối đang sử dụng khi cần thiết.

+ Thay đổi cấu hỡnh tại VPN server, trong đú cú thể thay đổi cỏc tựy chọn như chế độ mó húa, port sử dụng, cấu hỡnh đẩy DNS….

+ Cú thể tạo nhiều VPN server trờn cựng một hệ thống. + Tạo khúa cho cỏc VPN client.

3.4 Tổng kết

Chương này tập trung vào nghiờn cứu một số giải phỏp VPN mó nguồn mở. Thực hiện phõn tớch cỏc ưu nhược điểm của mỗi giải phỏp. Với yờu cầu tớnh bảo mật và dễ dàng triển khai, giải phỏp Openvpn là lựa chọn tối ưu nhất. Đỏnh giỏ mụ hỡnh kiến trỳc của Openvpn khắc phục được một số vấn đề bảo mật được nờu ở chương 2 như: chống tấn cụng Ddos, chống tấn cụng phỏt lại, tấn cụng trung gian….

Trờn cơ sở cỏc yờu cầu triển khai một giải phỏp VPN ứng dụng thực tế vào mụ hỡnh kết nối của Bộ Ngoại giao. Thực hiện xõy dựng giải phỏp tương đối hoàn thiện trờn nền tảng của phần mềm Openvpn mó nguồn mở. Trong đú ỏp dụng hai mụ hỡnh site to site và remote access. Tớch hợp cỏc giải phỏp bảo mật nõng cao như xỏc thực dựa trờn PKI; tớch hợp lưu khúa trờn thiết bị phần cứng; tớch hợp đầy đủ giải phỏp firewall mó nguồn mở.

Với một mụ hỡnh VPN lớn yờu cầu khụng thể thiếu là phần mềm quản trị. Phần này thực hiện yờu cầu thiết kế, xõy dựng giao diện quản trị trờn nền web. Cụng cụ quản trị cho phộp giỏm sỏt kết nối, lựa chọn thuật toỏn mó húa cho kết nối VPN….

109

CHƯƠNG 4. KẾT LUẬN

Bảo mật là một trong những khớa cạnh quan trọng nhất của cỏc cụng nghệ triển khai trờn nền IP, đặc biệt là đối với cụng nghệ VPN. Việc lựa chọn giải phỏp bảo mật là một trong những yếu tố quan trọng giỳp cho cụng việc quản lý mạng được an toàn trước những nguy cơ tấn cụng ngày càng nguy hiểm và đa dạng của kẻ phỏ hoại. Luận văn tập trung nghiờn cứu đỏnh giỏ một số giải phỏp cụng nghệ VPN, trờn cơ sở đú xõy dựng giải phỏp VPN mó nguồn mở tương đối hoàn thiện cú tớnh ứng dụng thực tiễn cao.

Trong quỏ trỡnh thực hiện đề tài tụi đó đạt được một số kết quả sau: + Nghiờn cứu tổng quan về an ninh bảo mật, cụng nghệ VPN.

+ Nghiờn cứu, khảo sỏt, đỏnh giỏ cỏc điểm yếu an toàn thụng tin của cỏc cụng nghệ VPN hiện nay.

+ Nghiờn cứu cỏc cụng nghệ bảo mật mạng riờng ảo VPN

+ Nghiờn cứu giải phỏp VPN mó nguồn mở, phõn tớch đỏnh giỏ triển khai giải phỏp Openvpn

+ Triển khai hệ thống mạng riờng ảo VPN trờn nền tảng Openvpn ỏp dụng thực tế yờu cầu trong mụ hỡnh kết nối của Bộ Ngoại giao

o Xõy dựng mụ hỡnh triển khai

o Nghiờn cứu tớch hợp hạ tầng PKI, tớch hợp giải phỏp phần cứng etoken cho việc lưu trữ khúa.

o Xõy dựng phần mềm quản trị o Tớch hợp giải phỏp tường lửa. Hướng phỏt triển:

+ Xõy dựng giải phỏp hoàn thiện hơn

+ Xõy dựng giao diện VPN client hỗ trợ xỏc thực bằng thiết bị etoken

+ Tớch hợp hạ tầng PKI một cỏch đầy đủ, cú thể sử dụng giải phỏp Openca để cấp phỏt, thu hồi khúa.

110

TÀI LIỆU THAM KHẢO

1. Carla Schroder (2008),Linux Networking Cookbook, O’Reilly Media, Inc., pp.265-286

2. Dave Kosiur (1998), Building and Managing virtual private networks, Wiley computer publishing, John Wiley & Sons, inc.

3. Markus Feilner (2006),Building and Integrating Virtual Private Networks, Packt Publishing Ltd, pp. 20-25, 109-125, 155-186

4. Meeta Gupta (2003), Building a Virtual Private Network, Premier Press â 2003. 5. Jon C. Snader (2005), VPNs Illustrated: Tunnels VPNs and Ipsec, Addison

Wesley Professional.

6. Jan Just Keijser (2011), OpenVPN 2 Cookbook, Packt Publishing Ltd, pp.127-148 7. William Stallings (1999), Cryptography and Network Security Principles and

Một phần của tài liệu Nghiên cứu xây dựng giải pháp bảo mật mạng riêng ảo VPN dựa trên công nghệ mở (Trang 86)

Tải bản đầy đủ (PDF)

(107 trang)