www.nhipsongcongnghe.net www.nhipsongcongnghe.net
I. Giới Thiệu Về Mạng Riêng Ảo (VPN)
Trước khi xuất hiện mạng riêng ảo (Virtual Private Network – VPN), khi những nhân viên làm việc
gián đọan sự kết nối.
Hơn nữa, VPN hỗ trợ những sự kết nối khác nhau, bao gồm thuê đường truyền, điều chỉnh sự
tiếp nối, ADSL, Ethernet và PSTN. Những giải pháp mạng có thể được đưa ra dễ dàng để thích
hợp cho những đòi hỏi của những máy client riêng lẽ, bao gồm tăng những tùy chọn cho những
lọai kết nối mở rộng. Dữ liệu, phone và những ứng dụng video cũng có thể chạy trên những
mạng riêng lẽ này, mà không cần cho những kênh riêng lẽ và phần cứng đặc biệt.
Tương tự VDC, dịch vụ cung cấp những giải pháp phù hợp nhất cho các ngân hàng, các công ty
bảo hiểm, họat động công nghiệp, lĩnh vực xuất khẩu, và phần mềm.
VPN-Virtual Private Network là một nhánh của kỹ thuật liên lạc riêng lẽ, được đưa lên từ mạng
chung chẳng hạn như Internet. Người sử dụng có thể truy xuất tới mạng dù ở nhà hay ở xa xa,
thong qua sự kết nối cục bộ tới ISP. VPN thiết lập mộ sự kết nối bảo mật giữa người sử dụng và
mạng trung tâm. Dịch vụ này cũng có thể thiết lập sự kết nối trực tiếp giữa những khu vực khác
nhau thông qua ISP, qua ISP giá thành giảm trong kết nối qua quay số và những dịch vụ thuê
đường truyền. Dữ liệu chuyền đi thì được bảo đảm với kỹ thuật bảo mật cao.
www.nhipsongcongnghe.net 2. Các kiểu mạng VPN: Gồm có ba khả năng thiết lập mạng VPN
1) NETWORK to NETWORK (Mạng nối Mạng)
Hai mạng con được nối bằng đường hầm VPN. Mỗi mạng con có một gateway hoặc router và
một máy chủ. Gateway của mỗi mạng con có hai giao diện:
• Một giao diện cho thế giới bên ngoài
• Một giao diện cho mạng nội bộ của gateway.
Kiểu setup này cho phép hai mạng khả năng truyền thông tin lẫn nhau theo cách mã hóa và xác
thực qua mạng Internet.
Một khả năng setup cho kiểu này là nối một văn phòng chi nhánh vào công ty chính qua mạng
Internet. Mọi sự truyền thông tin IP giữa hai gateway được mã hóa.
NET <----> VPN-Gateway <----> Internet <----> VPN-Gateway <----> NET
<---- được mã hóa --->
Mô hình bức tường lửa trong VPN
VPN sử dụng mạng Internet cho những trao đổi riêng. Như ta biết có hai cách giữ cho hội thoại
điện tử được bảo mật: Đường dây bảo mật và dữ liệu bảo mật. Trước đây, các công ty đã dùng
phương tiện vận chuyển riêng - đường dây thuê bao - để duy trì tính bảo mật. Tuy nhiên, đường
dây thuê bao rất tốn kém. VPN chọn cách thứ hai: Dùng sự mã hóa dữ liệu để duy trì tính bảo
mật.
Từ Private trong “Virtual Private Networks” nghĩa là riêng. Trong nền thị trường ngày nay dữ liệu
thông tin mật về các tổ chức thường dễ bị xem lén hay là bị mất là do bởi các hackers, hoặc tệ
hơn là từ chính các đối thủ. May mắn thay, VPN được xem như là giải pháp bảo mật an toàn có
ảnh hưởng nhất bất kể dù chúng có sử dụng trên mạng chung (public networks).
Để mà chứng minh, xác nhận một người sử dụng, một bức tường lửa sẽ là sự cần thiết. Trong
quá khứ, những bức tường lửa đã trở nên những nguồn vấn đề lớn cho những người quản lý hệ
thống mạng, việc tạo thành những bức tường lửa và quản lý chúng không đơn giản. Ngày nay,
chế độ bảo mật đã được thực hiện đầy đủ. Nhiều thiết bị bảo mật chẳng hạn như hộp đen (black
box) cũng bao gồm phần nào hệ thống mã hóa, cho dù có một số VPNS thì không.
Những thiết bị tường lửa của VPNS, chẳng hạn như NetScreen, Watchguard hoặc NetFortress thì
thường tương đối là đương giản, những giải pháp plug-and-play cho bảo mật mạng cũng được
kết nối tới nhiều mạng LANs. Tuy nhiên những giải pháp này có thể đạt đến giá cả cao, và sự
chọn lựa đúng sẽ dựa trên mạng lưới mạng và bảo mật cần của công ty, hoặc các công ty sử
dụng mạng duy nhất. Nói chung là, nếu bạn đã có cho mình những thiết bị riêng và kết nối
Internet, thì những giải pháp như out-of-the-box không còn cần thiết nữa.
Các VPNS yêu cầu sự cầu hình của một thiết bị truy xuất, hoặc là dựa trên phần cứng và phần
www.nhipsongcongnghe.net
mềm, để cài đặt một kênh bảo mật. Một người sử dụng ngẫu nhiên không thể đơn giản log in tới
của các thành viên trong một nhóm nhỏ. Nhưng với một câu lạc bộ có hàng trăm thành viên thì
chắc chắn cần phải có thẻ hội viên. Các thành viên mới có thể chứng minh họ là ai khi họ xuất
trình thẻ hội viên. Với "hạ tầng" như vậy, hai người hoàn toàn không quen biết có thể nhận dạng
và tin cậy nhau đơn giản là vì họ tin vào thẻ hội viên của nhau.
Tương tự như vậy, hai đầu cuối VPN có thể nhận thực nhau thông qua giấy chứng nhận điện tử -
Một loại "thẻ hội viên điện tử" không thể thiếu trong các mạng VPN lớn. Vậy tại sao hiện nay
không phải mạng VPN lớn nào cũng sử dụng chứng nhận điện tử? Bởi vì việc triển khai mạng lớn
không chỉ đòi hỏi chứng nhận điện tử mà yêu cầu xây dựng một hạ tầng hoàn thiện bao gồm
khối cung cấp chứng nhận điện tử, phương cách bảo đảm để khởi tạo và phân phối chúng, cách
thức truy xuất dễ dàng để xác nhận tính hợp lệ. Nói một cách ngắn gọn, đó chính là cơ sở hạ
tầng mã khoá công cộng - PKI.
2) Khoá công cộng là gì và tác dụng
Ðể hiểu được yêu cầu và các đòi hỏi của PKI, chúng ta cần biết một số kiến thức sơ lược về khoá
mật mã công cộng. Hệ thống này xây dựng trên cơ sở một cặp khoá mã có liên hệ toán học với
nhau trong đó một khoá sử dụng để mã hoá thông điệp và chỉ có khoá kia mới giải mã được
thông điệp và ngược lại. Khi đó chúng ta có thể công khai hoá một khoá trong cặp khoá này.
Nếu ai cần gửi cho chúng ta các thông điệp bảo đảm, họ sẽ có thể sử dụng khoá đã được cung
cấp công khai này để mã hoá thông điệp trước khi gửi đi và bởi vì chúng ta đã giữ bí mật khoá
mã còn lại nên chỉ chúng ta mới có thể giải mã được thông điệp bảo đảm đó.
Cặp khoá này còn dùng để xác nhận thông điệp. Người gửi sẽ tạo một đoạn mã băm (hash) của
thông điệp - một dạng rút gọn của thông điệp nguyên bản - với một số thuật toán (ví dụ như
www.nhipsongcongnghe.net
MD5, SHA-1...). Người gửi sẽ mã hoá đoạn mã băm bằng khoá riêng của mình và người nhận sẽ
dùng khoá công cộng của người gửi để giai đoạn mã băm của người gửi, sau đó so sánh với
đoạn mã băm của thông điệp nhận được (được tạo bằng cùng một thuật toán). Nếu trùng nhau
thì người nhận có thể tin rằng thông điệp nhận được không bị thay đổi trong quá trình truyền tải
trên mạng và xuất phát từ người gửi xác định. Cách thực hiện này được gọi là chữ ký điện tử.
Nhưng cần nhắc lại là chung ta yêu cầu không chỉ chữ ký - chúng ta cần một thẻ hội viên điện
tử. Chính vì thế mà xuất hiện khái niệm giấy chứng nhận điện tử. Một chứng nhận điện tử gắn
4) Các thành phần của PKI
VPN không phải là dịch vụ bảo mật duy nhất ứng dụng PKI. Có rất nhiều yêu cầu bảo mật khác
có thể được thoả mãn khi sử dụng PKI như thư bảo mật (e-mail-secured with S/MINE), các giao
dịch bảo mật của Web (Web transaction secured with SSL)... Các yêu cầu đó có thể khác nhau
do tính chất của mỗi dịch vụ hay ứng dụng, tất cả đều dựa trên một "Cơ sở hạ tầng mã khoá
công cộng - PKI" bao gồm nhiều thành phần cơ bản.
Nền tảng của PKI là CA. CA phát hành các giấy chứng nhận điện tử. Nó có thể thuộc riêng về
một doanh nghiệp hoặc thuộc một tổ chức thuộc bên ngoài các doanh nghiệp (chuyên cung cấp
dịch vụ trong lĩnh vực này). Các CA có thể uỷ nhiệm sự tin cậy cho nhau thông qua kiến trúc
phân cấp. CA gốc (root CA) là CA cung cấp trực tiếp các giấy chứng nhận điện tử cho doanh
nghiệp, CA phụ thuộc (subordinate CA) là CA được công nhận gián tiếp thông qua mối liên hệ với
CA gốc. CA gốc có thể mặc nhiên được công nhận (đối với nội bộ doanh nghiệp). Các CA phụ
thuộc được công nhận thông qua chứng nhận của CA gốc và tạo nên chuỗi các CA uỷ thác.
Mỗi khi tạo ra một giấy chứng nhận điện tử mới, một cặp khoá mã được phát ra cho mỗi thực
thể - thiết bị VPN, máy chủ Web, người sử dụng thư điện tử... Những thực thể sẽ giữ các khoá
riêng (private key) dùng để tạo ra chữ ký điện tử. Còn khoá công khai (public key), tên của thực
www.nhipsongcongnghe.net
thể, tên của CA phát hành, tất cả sẽ được tập hợp trong giấy chứng nhận điện tử, và tất cả sẽ
được xác nhận thông qua chữ ký điện tử của chính CA.
Với mục đích tránh sự không công nhận của mỗi thực thể, chỉ có chính bản thân họ mới được sử
dụng đến khoá bảo mật riêng. Với cách làm như vậy, các thực thể không thể phủ nhận được việc
đã "ký" tên vào thông điệp vì không ai khác có thể "ký" như vậy được. Cũng chính vì nguyên
nhân như vậy mã khoá riêng này cần được lưu giữ an toàn. Khi mã khoá này bị lộ vì một nguyên
nhân nào đó, giấy chứng nhận điện tử cần phải được thu hồi.
Ðể thuận tiện trong việc phân phát, các giấy chứng nhận thường được công bố qua hệ thống uỷ
nhiệm. Ðể tăng khả năng truy xuất, tìm kiếm và độ an toàn của hệ thống, các giấy chứng nhận
trong các hệ thống uỷ nhiệm thường được công bố trong các "thư mục che phủ nhiều tầng"
(Multiple shadow directories). Do yêu cầu thiết kế và nhu cầu thực tế, cả CA đều cần phải được
bảo mật tốt nên hai thành phần này thường được phân cách không những theo logic mà còn
phải được phân cách cả vị trí vật lý.
mật và kiến trúc của PKI sao cho phù hợp với thực tế và nhu cầu phát triển trong tương lai. Hầu
hết các công ty cung cấp kể trên đều có thể giúp đỡ bạn trong công việc hoạch định đó.
Bảo mật rất quan trọng đối với VPN. Hãy cùng tìm hiểu xem bảo mật được xây dựng ra sao ở cơ
chế hoạt động VPN qua giao thức SSH và PPP như trên.
• Tiến trình daemon.
Dừng tất cả trừ SSHD và Roxen Web server. Dùng web server để download một vài file nhằm
thiết lập những máy mới để truy cập VPN.
• Không cho phép dùng password
• Disable password hoàn toàn.
Mọi xác thực trên máy này nên được thực hiện qua hệ thống xác thực khóa chung của SSH. Bằng
www.nhipsongcongnghe.net
cách này, chỉ những người có khóa mới có thể vào mạng, và không thể nhớ một khóa nhị phân
có chiều dài 530 ký tự.
Để làm được như vậy, ta cần sửa lại file /etc/passwd. Cột thứ 2 chứa password hash, hoặc chứa
‘x’ thông báo cho hệ thống xác nhận tìm trong tập tin /etc/shadow. Việc ta cần làm là thay
những giá trị trên ở cột này bằng “*”. Điều này thông báo cho hệ thống xác nhận rằng không có
password, và không một password nào được cho phép.
Việc này đã được thực hiện ở bước Thêm những người dùng khi cấu hình VPN Server.
• Truy cập người dùng
Truy cập người dùng được thực hiện qua hệ thống xác thực của SSH. Như đã đề cập ở phần
trên, đây là cách người dùng truy nhập vào hệ thống, trong khi vẫn duy trì mức độ bảo mật cao
(SSH đang dùng là SSH1).
• Cấu hình SSHD.
Disable password authentication và rhosts authentication trong tập tin /etc/SSHD_config như
sau:
• Giới hạn người dùng.
Chỉ cho người dùng chạy PPPD sudo hay không sudo PPPD cần chạy dưới quyền root. Tuy nhiên,
Một tùy chọn khác là truyền các traffic SSL VPN qua một thiết bị bảo mật bổ sung ngay sau khi
traffic được giải mã ở gateway. Checkpoint, Juniper, và F5 đều giới thiệu đến khách hàng giải
pháp bảo mật trên tầng ứng dụng trong loạt sản phẩm truyền thống của họ. Aventail vừa mới
đây cũng đã công bố liên kết với NetContinuum, một công ty chuyên về xây dựng các tường lửa
ứng dụng Web.
Các chuyên viên mạng sẽ phải cân nhắc lựa chọn giữa hai công nghệ truy cập từ xa này. Việc để
traffic mạng đi qua nhiều thiết bị hỗ trợ bảo mật đồng nghĩa với việc tăng độ trễ cho kết nối
cũng như tăng xác suất sai hỏng dữ liệu. Tuy nhiên, mặt khác thực hiện quá nhiều thao tác kiểm
tra bảo mật tại gateway SSL VPN chắc chắn sẽ ảnh hưởng đến hiện năng họat động chung của
hệ thống.
III. Cơ Chế Hoạt Động Của VPN Kết Nối Truy Xuất Từ Xa
1. Có 2 loại kết nối VPN là
Site-to-site VPN connection.
Remote access VPN connection.
www.nhipsongcongnghe.net
1) Kết nối truy xuất từ xa VPN
Một client truy xuất từ xa thực hiện một sự kết nối VPN theo một mạng riêng (theo quan hệ một-
một).VPN truy nhập từ xa hay mạng riêng ảo quay số ( Virtual private dial-up network VPDN)
đuợc triển khai, thiết kế cho nhừng khách hàng riêng lẻ ở xa như những khách hàng đi đường
hay những khách hàng truy cập vô tuyến. Trước đây, các tổ chức, tập đoàn hỗ trợ cho những
khách hàng từ xa theo những hệ thống quay số. Đây không phải là một giải pháp kinh tế, đặc
biệt khi một người goi lại theo đường truyền quốc tế. Với sự ra đời của VPN truy cập từ xa, một
khách hàng di động gọi điện nội hạt cho nhà cung cấp dịch vụ Internet (ISP) để truy nhập vào
mạng tập đoàn của họ chỉ với một máy tính cá nhân được kết nối Internet cho dù họ đang ở bất
kỳ đâu. VPN truy cập từ xa là sự mở rộng những mạng quay số truyền thống. Trong hệ thống
• L2TP - Layer 2 Tunneling Protocol
• SSH+PPPD - PPP over SSH tunnel
• CIPE
www.nhipsongcongnghe.net Là một giao thức mạng, giao thức mạng này cho phép bảo mật sự chuyển đổi dữ liệu từ một
client từ xa tới một tổ chức server riêng bằng việc tạo một mạng riêng ảo qua mạng dữ liệu cơ
sở TCP/ IP. PPTP hỗ trợ các nhu cầu, nhiều giao thức, mạng riêng ảo qua những mạng chung
chẳng hạn như Internet. PPTP cho phép IP qua nó được mã hóa, và sau đó đóng gói IP để được
gởi qua một tổ chức mạng IP hoặc một mạng IP chung chẳng hạn như Internet
Là một giao thức đường hầm Internet chuẩn công nghiệp, giao thức này cung cấp sự đóng gói
cho việc gởi cơ cấu Point-to-Point (PPTP) qua môi trường hướng đóng gói. L2TP cho phép sự
chuyển đổi IP được mã hóa, và sau đó gởi qua bất kỳ phương tiện nào, những phương tiện này
hỗ trợ đọc cấu trúc point-to-point, chẳng hạn IP. Sự thực thi của giao thức L2TP sử dụng sự mã
hóa Internet Protocol security (IPSec) để bảo mật dữ liệu từ VPN client tới VPN server. Phương
thức IPSec cho phép những gói được mã hóa, và sau đó được đóng gói trong một header IP để
gởi qua một tổ chức mạng IP hoặc một mạng IP chung chẳng hạn như Internet. Sự kết nối PPTP
yêu cầu chỉ sư xác nhận người sử dụng qua một sư xác nhận dựa trên giao thức PPP. L2TP/
IPSec yêu cầu trên sư xác nhận cấp độ người sử dụng như nhau và, thêm nữa, sự xác nhận ở
mức độ máy tính sử dụng sự chứng nhận máy
Đường hầm là toàn bộ tiến trình xử lý đóng gói, routing, và mở gói. Đường hầm bao bọc, hoặc
đóng gói, gói chính ở trong một gói mới. Gói này có lẽ có một địa chỉ mới và thông tin lộ trình,
Cặp chương trình: SSH và SSHD có chức năng mã hóa và giải mã tất cả giao thông giữa chúng.
PPP là giao thức chuẩn trao đổi những gói tin qua kết nối nối tiếp (thường là modem). Bằng việc
sử dụng PPP, có thể nối máy Linux PC vào server PPP và truy cập tài nguyên mạng mà server đó
được nối vào như thể máy Linux PC được nối trực tiếp vào mạng đó.
PPPD là một tiến trình daemon có khả năng thiết lập những tham số kết nối với máy từ xa bằng
cách trao đổi địa chỉ IP, sau đó thiết lập những giá trị trao đổi. Khi đó, PPPD sắp đặt tầng mạng
trên kernel Linux sử dụng liên kết PPP bằng cách đặt giao diện là hoặcdevhoặcPPP0 (nếu đó là
liên kết PPP kích hoạt đầu tiên trên máy). Cuối cùng, PPPD thiết lập bảng chỉ đường để hướng
đến máy ở đầu cuối của liên kết PPP.
5. Cơ chế hoạt động VPN dùng SSH và PPPD
Khi SSH client gọi và yêu cầu tiến trình SSHD trên server, SSHD liền thực hiện nhiệm vụ của
mình: xác thực và mã hóa 1) Xác thực
SSH có tiện ích gọi là SSH-keygen cho phép phát sinh một cặp khóa khớp nhau và ghi chúng vào
tập tin trên đĩa. Mỗi người dùng muốn sử dụng SSH hoặc SSHD thì chạy SSH-keygen để phát
sinh cặp khóa cho mình, khi đó SSH-keygen ghi vào thư mục home của người dùng hai tập tin
www.nhipsongcongnghe.net
khóa như sau:
• Tập tin identity.pub chứa khóa chung, thích hợp cho việc gởi cho người khác.
• Tập tin identity chứa khóa riêng, nên được giữ kín.
Một tập tin liên quan đến khóa nữa có trong thư mục home của người sử dụng SSH là
authorized_keys.
Khi client muốn login vào server, client gởi đến server khóa chung của client bằng cách gởi một
bản copy của identity.pub dưới dạng tập tin, hay nhúng nội dung của nó vào một thông điệp e-
mail (do khóa này chỉ chứa toàn là mã ASCII nên độ bảo mật trong quá trình chuyển khóa không
quan trọng). server sẽ đặt khóa chung của Client vào tập tin authorized_keys của server.
Sự xác thực người dùng hoạt động như sự tác động qua lại giữa những tập tin khóa của người
chỉ việc xác định địa chỉ IP và gởi những gói tin cho nhau, còn lại thì để cho bảng tìm đường định
đoạt. Khi đến VPN server, bảng tìm đường ở đó sẽ chỉ những gói tin này đến giao diện PPPD vận
hành bởi SSH.
3) Đường hầm
www.nhipsongcongnghe.net Để sử dụng môi trường truyền dẫn chung trên Internet người ta phải sử dụng một kỹ thuật mới,
một phần mềm mới gọi là " tạo đường hầm " (Tunnelling) mà ý nghĩa vật lý tương tự như đường
tàu điện ngầm riêng chạy dưới mạng lưới giao thông công cộng của một thành phố.
Tuy nhiên để bảo vệ được các thông tin nội bộ trong mọi trường hợp cần phải có bức tường lửa,
phương thức làm việc theo kiểu khách hoặc chủ (client hoặc server) và các biện pháp mã hoá để
kiểm soát các đối tượng truy nhập với cách làm việc như sau: Khi một trạm đầu cuối
(Workstation) tại một chi nhánh sử dụng phần mềm tạo đường hầm khách (client tunnelling
software) gửi yêu cầu truy nhập tới máy chủ (server) có phần mềm tạo đường hầm chủ
(tunnelling server software) ở trung tâm hay ở phía đầu xa qua mạng Internet.
Trong máy chủ này đã có danh sách các trạm đầu cuối được phép truy nhập, nếu kiểm tra đúng
danh sách, máy chủ cho phép kiến tạo một đường hầm và sử dụng các biện pháp mã hoá để
kiểm soát, máy chủ gửi lại cho trạm đầu cuối kia một địa chỉ Internet nội bộ (IP address) để làm
cơ sở kết nối, địa chỉ này chỉ sử dụng trong mạng máy chủ. Khi cuộc nối (hay đường hầm qua
Internet) thiết lập đã được xác nhận là đúng, khách hàng ở trạm đầu cuối có thể truy nhập vào
mạng máy chủ để trao đổi thông tin.Máy chủ kiểm tra tất cả các cuộc truy nhập vào, xác nhận
đúng trước khi cho phép kiến tạo đường hầm. Ngoài ra, gói dữ liệu IP (Internet Protocol
datagram) sử dụng trong mạng máy chủ cũng đã được mã hoá bằng nhiều biện pháp khác nhau
và sau đó mới lồng vào bên trong gói dữ liệu TCPhoặcIP khác để truyền đi trên Internet, do vậy
dữ liệu truyền cho nhau qua Internet được bảo vệ an toàn.
PPPD là vật tải giao thông cho những chương trình khác, có nghĩa là mọi thứ trao đổi giữa Client
và Server thông qua giao diện PPPD (khởi tạo dưới sự điều khiển SSH) sẽ tự động đi qua đường