Đồ án Mạng máy tính - Ứng dụng OPENVPN trong bảo mật hệ thống mạng cho doanh nghiệp
1.1. KIẾN TRÚC MẠNG MÁY TÍNH
1.3.1. Nguyên tắc truyền thông
Để một mạng máy tính trở một môi trường truyền dữ liệu thì nó cần phải có những yếu tố sau:
- Các hệ thống được liên kết với nhau theo một cấu trúc kết nối (topology) nào đó
- Việc chuyển dữ liệu từ máy tính này đến máy tính khác do mạng thực hiện thông qua những quy định thống nhất gọi là giao thức của mạng.
- Phân chia hoạt động truyền thông của hệ thống thành nhiều lớp theo các nguyên tắc nhất định
- Việc xét các module một cách độc lập với nhau cho phép giảm độ phức tạp cho việc thiết kế và cài đặt. Phương pháp này được sử dụng rộng rãi trong việc xây dựng mạng và các chương trình truyền thông và được gọi là phương pháp phân tầng (layer).
1.3.2. Nguyên tắc của phương pháp phân tầng
Mỗi hệ thống thành phần trong mạng được xây dựng như một cấu trúc nhiều tầng và đều có cấu trúc giống nhau như: số lượng tầng và chức năng của mỗi tầng.
Các tầng nằm chồng lên nhau, dữ liệu được chỉ trao đổi trực tiếp giữa hai tầng kề nhau từ tầng trên xuống tầng dưới và ngược lại.
Cùng với việc xác định chức năng của mỗi tầng chúng ta phải xác định mối quan hệ giữa hai tầng kề nhau. Dữ liệu được truyền đi từ tầng cao nhất của hệ thống truyền lần lượt đến tầng thấp nhất sau đó truyền qua đường nối vật lý dưới dạng các bit tới tầng thấp nhất của hệ thống nhận, sau đó dữ liệu được truyền ngược lên lần lượt đến tầng cao nhất của hệ thống nhận.
Chỉ có hai tầng thấp nhất có liên kết vật lý với nhau còn các tầng trên cùng thứ tư chỉ có các liên kết logic với nhau. Liên kết logic của một tầng được thực hiện thông qua các tầng dưới và phải tuân theo những quy định chặt chẽ, các quy định đó được gọi giao thức của tầng.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Đồ án Mạng máy tính - Ứng dụng OPENVPN trong bảo mật hệ thống mạng cho doanh nghiệp
ce) của họ. Một hướng phát triển khá mới trong remote access VPN là dùng wireless VPN, trong đó một nhân viên có thể truy cập về mạng của họ thông qua kết nối không dây. Trong thiết kế này, các kết nối không dây cần phải kết nối về một trạm wireless (wireless terminal) và sau đó về mạng của công ty. Trong cả hai trường hợp, phần mềm client trên máy PC đều cho phép khởi tạo các kết nối bảo mật, còn được gọi là tunnel. Một phần quan trọng của thiết kế này là việc thiết kế quá trình xác thực ban đầu nhằm để đảm bảo là yêu cầu được xuất phát từ một nguồn tin cậy. Thường thì giai đoạn ban đầu này dựa trên cùng một chính sách về bảo mật của công ty. Chính sách bao gồm: qui trình (procedure), kỹ thuật, server, Terminal Access Controller, Bằng việc triển khai Remote Access VPNs, những người dùng từ xa hoặc các chi nhánh văn phòng chỉ cần cài đặt một kết nối cục bộ đến nhà cung cấp dịch vụ ISP hoặc ISP’s POP và kết nối đến tài nguyên thông qua Internet. Hình 3.8. Remote Access VPN Như hình trên bạn có thể suy ra, thuận lợi chính của Remote Access VPNs: Sự cần thiết của RAS và việc kết hợp với modem được loại trừ. Sự cần thiết hỗ trợ cho người dùng cá nhân được loại trừ bởi vì kết nối từ xa đã được tạo điều kiện thuận lợi bởi ISP. Việc quay số từ những khoảng cách xa được loại trừ, thay vào đó, những kết nối với khoảng cách xa sẽ được thay thế bởi các kết nối cục bộ. Giảm giá thành chi phí cho các kết nối với khoảng cách xa. Do đây là một kết nối mang tính cục bộ, do vậy tốc độ kết nối sẽ cao hơn so với kết nối trực tiếp đến những khoảng cách xa. VPNs cung cấp khả năng truy cập đến trung tâm tốt hơn bởi vì nó hổ trợ dịch vụ truy cập ở mức độ tối thiểu nhất cho dù có sự tăng nhanh chóng các kết nối đồng thời đến mạng. Ngoài những thuận lợi trên, thì VPN cũng có những điểm bất lợi như: Remote Access VPNs cũng không bảo đảm được chất lượng phục vụ. Khả năng mất dữ liệu là rất cao, thêm nữa là các phân đoạn của gói dữ liệu có thể đi ra ngoài và bị thất thoát. Do độ phức tạp của thuật toán mã hóa, protocol overhead tăng đáng kể, điều này gây khó khăn cho quá trình xác nhận. Thêm vào đó việc nén dữ liệu IP và PPP-based diễn ra vô cùng chậm chạp và tồi tệ. Do phải truyền dữ liệu thông qua Internet, nên khi trao đổi các dữ liệu lớn như các gói dữ liệu truyền thông, phim ảnh, âm thanh sẽ rất chậm. Site-to-Site (Lan-to-Lan) Site-to-site VPN được áp dụng để cài đặt mạng từ một vị trí này kết nối tới mạng của một vị trí khác thông qua VPN. Trong hoàn cảnh này thì việc chứng thực ban đầu giữa các thiết bị mạng được giao cho người sử dụng. Nơi mà có một kết nối VPN được thiết lập giữa chúng. Khi đó các thiết bị này đóng vai trò như là một gateway, và đảm bảo rằng việc lưu thông đã được dự tính trước cho các site khác. Các router và Firewall tương thích với VPN, và các bộ tập trung VPN chuyên dụng đều cung cấp chức năng này. Hình 3.9. Site to Site VPN Lan-to-Lan có thể được xem như là intranet VPN hoặc extranet VPN. Nếu chúng ta xem xét dưới góc độ chứng thực nó có thể được xem như là một intranet VPN, ngược lại chúng được xem như là một extranet VPN. Tính chặt chẽ trong việc truy cập giữa các site có thể được điều khiển bởi cả hai (intranet và extranet VPN) theo các site tương ứng của chúng. Giải pháp Site to Site VPN không phải là một remote access VPN nhưng nó được thêm vào đây là vì tính chất hoàn thiện của nó Sự phân biệt giữa remote access VPN và Lan to Lan chỉ đơn thuần mang tính chất tượng trưng và xa hơn là nó được cung cấp cho mục đích thảo luận. Ví dụ như là các thiết bị VPN dựa trên phần cứng mới, ở đây để phân loại được, chúng ta phải áp dụng cả hai cách, bởi vì hardware-based client có thể xuất hiện nếu một thiết bị đang truy cập vào mạng. Mặc dù một mạng có thể có nhiều thiết bị VPN đang vận hành. Lan to Lan VPN là sự kết nối hai mạng riêng lẻ thông qua một đường hầm bảo mật, đường hầm bảo mật này có thể sử dụng các giao thức PPTP, L2TP, hoặc IPSec, mục đích của Lan to Lan là kết nối hai mạng không có đường nối lại với nhau, không có việc thỏa hiệp tích hợp, chứng thực, sự cẩn mật của dữ liệu, bạn có thể thiết lập một Lan to Lan VPN thông qua sự kết hợp của các thiết bị VPN Concentrators, Routers, và Firewalls. Kết nối Lan to Lan được thiết kế để tạo một kết nối mạng trực tiếp, hiệu quả bất chấp khoảng cách vật lý giữa chúng. Có thể kết nối này luân chuyển thông qua internet hoặc một mạng không được tin cậy. Bạn phải đảm bảo vấn đền bảo mật bằng cách sử dụng sự mã hóa dữ liệu trên tất cả các gói dữ liệu đang luân chuyển giữa các mạng đó. Intranet VPNs: được sử dụng để kết nối đến các chi nhánh văn phòng của tổ chức đến Backbone Router sử dụng campus router. Theo như mô hình bên dưới sẽ rất tốn chi phí do phải sử dụng 2 router để thiết lập mạng, thêm vào đó, việc triển khai, bảo trì, quản lý mạng Intranet Backbone sẽ rất tốn kém còn tùy thuộc vào lưu lượng lưu thông. Hình 3.10. Intranet VPNs Để giải quyết vấn đề trên, sự tốn kém của WAN backbone được thay thế bởi các kết nối Internet với chi phí thấp. Với mô hình như vậy hiệu quả chi phí hơn, do giảm số lượng router được sử dụng theo mô hình WAN backbone. Giảm thiểu đáng kể số lượng hỗ trợ yêu cầu người dùng cá nhân qua toàn cầu, các trạm ở một số remote site khác nhau. Kết nối nhanh hơn, tốt hơn. Extranet VPNs: Không giống như Intranet và Remote Access-based, Extranet không hoàn toàn cách li từ bên ngoài, Extranet cho phép truy cập những tài nguyên mạng cần thiết của các đối tác kinh doanh, chẳng hạn như khách hàng, nhà cung cấp, đối tác những người giữ vai trò quan trọng trong tổ chức. Do hoạt động trên môi trường Internet, bạn có thể lựa chọn nhà phân phối khi lựa chọn và đưa ra phương pháp giải quyết tùy theo nhu cầu của tổ chức. Bởi vì một phần Internet – Connectivity được bảo trì bởi nhà cung cấp ISP nên cũng giảm chi phí bảo trì khi thuê nhân viên bảo trì. Dễ dàng triển khai, quản lý và chỉnh sửa thông tin. Hình 3.11. Extranet VPNs Hình 3.12. Thiết lập một kết nối Client to Server Máy VPN cần kết nối (VPN Client) tạo kết nối VPN tới máy chủ cung cấp dịch vụ VPN (VPN Server) thông qua kết nối Internet. Máy chủ cung cấp dịch vụ VPN trả lời kết nối tới Máy chủ cung cấp dịch vụ VPN chứng thực cho kết nối và cấp phép cho kết nối Bắt đầu trao đổi dữ liệu giữa máy cần kết nối VPN và mạng công ty So sánh VPN Client – to – Site và VPN Site – to – Site Bảng 3.3. Bảng so sánh VPN Client to Site và VPN Site to Site Đặc điểm VPN Client – to – Site VPN Site – to - Site Mô hình áp dụng +Nhân viên làm việc lưu động hay làm việc ở nhà muốn kết nối vào mạng công ty. + Mô hình này đơn giản hơn +Kết nối các hệ thống mạng các nơi khác nhau như các doanh nghiệp có các chi nhánh ở xa nhau. + Mô hình này phức tạp hơn. Yêu cầu phần cứng Ít Nhiều Kết nối mạng Sử dụng đường truyền Internet Sử dụng đường truyền Internet Bảo mật Tốt Tốt Các dạng kết nối Người dùng hoặc nhân viên từ xa kết nối đến doanh nghiệp Chia làm 2 dạng: +Intranet base: các chi nhánh của cùng một công ty ở xa kết nối với nhau. +Extranet base: công ty này kết nối tới công ty khác (ví dụ như đồng nghiệp hay nhà hỗ trợ) Chi phí Ít tốn kém hơn, chỉ cần dùng đường truyền internet có sẵn, và phần mềm kết nối Tốn kém lúc đầu triển khai. CHƯƠNG 4: GIỚI THIỆU MÔ HÌNH TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER MÔ HÌNH HỆ THỐNG VPN Client – to – Site Hình 4.1. Mô hình giả lập hệ thống VPN Client – to – Site Chú thích: Mô hình hệ thống gồm 1 máy OpenVPN Server Linux, hệ điều hành Ubuntu Server, một máy VPN Client, một máy Local Computer nằm trong miền mạng của doanh nghiệp. Các thông số được mô tả như sau: Local Computer : Hệ điều hành: WinXP. IP: 172.16.2.4. OpenVPN Server: Hệ điều hành: Ubuntu Server 10.10 IP: Eth1: 172.16.2.2 Eth0: 192.168.1.20 VPN Client: Hệ điều hành: WinXP IP: 192.168.1.15 VPN Site – to – Site Hình 4.2. Mô hình giả lập VPN Site – to - Site Chú thích: Mô hình giả lập kết nối VPN Site – to – Site với 2 máy chủ, và 1 máy chủ làm Router Gateway mềm đóng vai trò định tuyến giữa 2 mạng khác nhau. VPN1_Client sẽ quay kết nối đến máy chủ Ubuntu_VPN2 thuộc miền mạng của 1 chi nhánh khác của doanh nghiệp và ngược lại VPN2_Client sẽ quay kết nối đến Ubuntu_VPN1 thuộc miền mạng bên này của doanh nghiệp. Nếu 2 máy VPN1_Client và VPN2_Client nhận IP ảo được cấp khi quay kết nối, thì kết nối lúc này đã thành công. Các thông số cấu hình được mô tả như sau: Chi nhánh 1: Server: Hệ điều hành: Ubuntu Server 10.10 IP: 192.168.1.2 Nhiệm vụ: Máy chủ OpenVPN 1 VPN1_Client Hệ điều hành: WinXP IP: 192.168.1.3 Nhiệm vụ: Máy tính nằm trong miền mạng nội bộ Chi nhánh 2: Server: Hệ điều hành: Ubuntu Server 10.10 IP: 172.16.1.2 Nhiệm vụ: Máy chủ OpenVPN 2 VPN2_Client Hệ điều hành: WinXP IP: 172.16.1.3 Nhiệm vụ: Máy tính nằm trong miền mạng nội bộ CÀI ĐẶT VÀ CẤU HÌNH OPENVPN OpenVPN Client – to – Site Để cài đặt OpenVPN Server dùng lệnh: sudo apt-get install openvpn. Sau đó khởi động lại hệ thống. Các file chứng thực như CA, và các file cấu hình mẫu nằm trong thư mục easy-rsa, chúng ta sao chép thư mục này từ đường dẫn /usr/share/doc/openvpn/example đến thư mục /etc/openvpn bằng lệnh: cp –r /usr/share/doc/openvpn/example /etc/openvpn. Tiến hành sao chép file cấu hình mẫu server.conf tới thư mục được cài đặt /etc/openvpn bằng lệnh: cp –r /usr/share/doc/openvpn/examples/sample-config files/server.conf.gz /etc/openvpn. Export KEY_COUNTRY = “VIETNAM” Export KEY_PROVINCE = “TP DANANG” Export KEY_CITY = “DN” Export KEY_ORG = “VIETHAN” Export KEY_EMAIL = lelongbao2790@gmail.com Di chuyển vào thư mục /etc/openvpn/easy-rsa/2.0/ Sau đó dùng lệnh “nano vars” để chỉnh sửa thông tin như hình. Dùng lệnh “source ./vars”. Dùng lệnh “./clean-all” Tiến hành build CA bằng lệnh: ./build-ca Phần common name: đặt tên là ca Dùng lệnh ./build-key-server openvpnserver để build key cho server Phần common name đặt tên là openvpnserver Tạo 2 user để cấp cho client sau này, dùng lệnh : adduser longbao01mm03a Đặt password cho 2 user này, sau đó tiến hành tạo khóa chứng thực cho 2 user. Dùng lệnh “./build-key longbao01mm03a”. Sau khi tạo user xong, chúng ta dùng lệnh: ./build-key để tạo khóa chứng thực cho 2 user. Phần common name đặt tên trùng với tên 2 user Di chuyển vào thư mục /etc/openvpn Dùng lệnh: nano server.conf để cấu hình file server.conf Các thông số quan trọng cần cấu hình Ca (/etc/openvpn/easy-rsa/2.0/keys/ca.crt) Cert (/etc/openvpn/easy-rsa/2.0/keys/openvpnserver.crt) Key (/etc/openvpn/easy-rsa/2.0/keys/openvpnserver.key) Push “route ” Dùng lệnh ./build-dh để mã hóa tất cả. Dùng lệnh iptables: Sudo iptables –t nat –A POSTROUTING –s 10.8.0.0/24 –o eth0 –j MASQUERADE. Sudo iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE. Sudo iptables –t nat –A POSTROUTING –o eth1 –j MASQUERADE. Sudo iptables –A FORWARD –i tun+ -j ACCEPT. Sudo iptables –A FORWARD –i tap+ -j ACCEPT. Sudo iptables –A INPUT –i tap+ -j ACCEPT. Sudo iptables –A INPUT –i tun+ -j ACCEPT. Sudo iptables –t nat –A POSTROUTING –s 10.8.0.0/24 –d 172.16.2.0/24 –to-source 192.168.1.15 Cấu hình iptables để cho phép các kết nối từ bên ngoài mạng có thể thông với bên trong mạng. OpenVPN Site – to – Site Quá trình cấu hình OpenVPN Server đối với Site – to – Site cũng tương tự như trên. Cũng tiến hành cài đặt và tạo key mã hóa ở 2 bên thuộc 2 chi nhánh gồm Ubuntu Server 1 và Ubuntu Server 2. Phần quan trọng để 2 miền mạng thuộc 2 chi nhánh khác nhau có thể thông nhau nằm ở Router Gateway, ở đây sẽ dùng Ubuntu Server làm Router Gateway mềm. auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 gateway 172.16.1.1 auto eth1 iface eth1 inet static address 172.16.1.1 netmask 255.255.255.0 gateway 192.168.1.1 Để 2 Ubuntu Server ở 2 chi nhánh có thể thông nhau thì tại Router Gateway 2 card mạng nằm trên Router này được nối với card mạng ở 2 phía của 2 chi nhánh. Cấu hình default gateway ở mỗi card mạng sao cho ip này trỏ sang ip kia Để kiểm tra kết nối chúng ta đứng ở gateway và 2 ubuntu server tiến hành ping sang nhau để kiểm tra kết nối có thông hay không, nếu đúng thì cả 3 server đều thông. TIẾN HÀNH QUAY KẾT NỐI Kiểm tra VPN Client – to – Site Hình 4.3. IP cấp phát thành công cho VPN Client Khi quay kết nối thành công, sẽ có 1 IP được cấp phát, IP này sẽ giúp tạo đường ống bảo mật kết nối từ Client tới Server. Nếu IP được cấp phát như hình thì quá trình quay kết nối VPN đã thành công. IP cấp phát thành công là: 10.8.0.2 Kiểm tra VPN Site – to – Site Hình 4.4. IP cấp phát thành công cho máy VPN2_Client Tương tự VPN2_Client sau khi quay kết nối thành công, thì ip đã được cấp thành công là: 10.8.0.6. Quan sát bằng gói tin Wireshark Hình 4.5. Kiểm tra bằng Wireshark Kiểm tra khi quay kết nối từ Client đến Server bằng Wireshark ta thấy các gói tin đều được mã hóa và bảo mật an toàn bằng giao thức PPTP. KẾT LUẬN Trong môi trường cạnh tranh và hội nhập như hiện nay, để có thể tồn tại và phát triển thì CNTT là một vũ khí không thể thiếu đối với các doanh nghiệp hiện nay. Vấn đề lợi nhuận, chi phí, giá thành cho các trang thiết bị phục vụ công tác quản trị, hiệu quả, năng suất của công việc, được các doanh nghiệp đặt lên hàng đầu. Với mô hình kết nối sử dụng máy chủ Linux như Ubuntu Server và phần mềm OpenVPN sẽ giúp các doanh nghiệp đặt biệt là người quản trị mạng có thể quản lý, làm việc từ xa, thông qua các kết nối với các giao thức bảo mật như L2TP, PPTP,IPSec,. Người dùng có thể truy cập tại nhà hoặc tại các văn phòng chi nhánh của công ty để truy cập kết nối tới công ty làm việc. Với giải pháp nguồn mở và việc sử dụng máy chủ Linux như Ubuntu Server làm máy chủ, sẽ giúp các doanh nghiệp giảm tải gánh nặng về tài chính, các trang thiết bị liên quan, đồng thời tăng cường khả năng bảo mật cho doanh nghiệp. Kết quả đạt được Về lý thuyết: Nắm được cơ bản các kiến thức liên quan đến phần mềm nguồn mở, các giải pháp về phần mềm nguồn mở, các phiên bản hệ điều hành Linux như Redhat, Ubuntu, Cùng với đó nắm được nguyên lý, các giao thức bảo mật liên quan đến kến nối VPN. Về thực hành: Triển khai thành công ứng dụng OpenVPN trong bảo mật hệ thống mạng cho doanh nghiệp trên môi trường VMWare. Hạn chế Do thời gian hạn hẹp, nên vẫn còn một số giải pháp bảo mật chưa áp dụng hết trong OpenVPN. Hướng mở Tiếp tục triển khai OpenVPN kết hợp với tìm hiểu các giải pháp bảo mật an toàn hơn cho kết nối VPN như thực hiện chứng thực password một lần (One time password),vv TÀI LIỆU THAM KHẢO Tài liệu tiếng việt Th.s. Đặng Quang Hiển, Giáo trình Hệ điều hành Linux, Trường Cao Đẳng CNTT Hữu Nghị Việt Hàn. Th.s Ngô Bá Hùng, Giáo trình Linus Operating System, Trường Đại Học Cần Thơ. Th.s Hà Quốc Trung – Lê Xuân Thành, Nhập môn Linux và phần mềm nguồn mở. Đại Học Cần Thơ, Tìm hiểu phần mềm nguồn mở Open Source Software. Đại Học Cần Thơ, Tổng quan về VPN. Đại Học Quốc Gia TP HCM, Công nghệ VPN. Tài liệu tiếng anh Markus Feilner, OpenVPN Building and Integrating Virtual Private Networks (2006). Internet
File đính kèm:
- do_an_mang_may_tinh_ung_dung_openvpn_trong_bao_mat_he_thong.doc