banner
 .::*nix::. Tự làm VPN đơn giản với m0n0wall (Phần 2) Go to original post Author: dusan - Translator:  - Entry Date: 26/02/2009 00:53:49
(tiếp theo)

3. Đường hầm VPN

Ở m0n0wall, đường hầm site-to-site VPN sử dụng IPsec.

Để lập một đường hầm, bạn cần khai báo các tham số mạng và lựa chọn các tham số an ninh cho cả hai appliance ở hai đầu đường hầm.

Để xác định các tham số mạng, dễ nhất là nhìn vào hình vẽ:

192.168.1.0/24---192.168.1.1, 50.51.52.53---Internet---60.61.62.63, 192.168.2.1--- 192.168.2.0/24

(192.168.1.1, 50.51.52.53) gọi là thiết bị bên trái.

(192.168.2.1, 60.61.62.63) gọi là thiết bị bên phải.

Cả hai appliance đều kết nối VPN qua giao diện WAN.

Giải sử thiết bị bên trái là m0n0wall. Đối với nó:
50.51.52.53 gọi là local gateway.
60.61.62.63 gọi là remote gateway.
192.168.1.0/24 gọi là local subnet.
192.168.2.0/24 gọi là remote subnet.

Để ý hai subnet là rời nhau (không chứa địa chỉ nào chung). Đây là yêu cầu bắt buộc.

Đoạn này hướng dẫn m0n0wall nối thông với m0n0wall. Thiết lập m0n0wall với các thiết bị IPsec khác sẽ được trình bày ở đoạn sau. Như thế thiết bị bên phải cũng là m0n0wall. Khi đó bạn cần khai báo tham số mạng ở bên phải giống như bên trái, nhưng phải đảo chiều để cho cái-gì-local của bên trái trở thành cái-đó-remote của bên phải, và ngược lại.

Trong IPsec hai bên liên lạc là ngang hàng với nhau. Bất cứ bên nào cũng có thể là bên khởi xướng (initiator) còn bên kia sẽ là bên phúc đáp (responder) trong quá trình đàm phán. Đối chiếu với quan niệm về ứng dụng client-server thì cả hai bên đều có thể là "server", khi bên này là "server" thì bên kia là "client" và ngược lại. Điều quan trọng là có thể bạn tạo thành công đường hầm khi máy của bạn là intiator, nhưng không nhất thiết thành công khi nó ở vai trò responder.

Vì thế, khi thử nghiệm một thiết bị, bạn nên tạo tình huống thử từng trường hợp. Cách đơn giản nhất là khai báo tắt Keep Alive ở cả hai bên rồi thử ping qua đường hầm từ bên initiator.

Chú ý là đối với m0n0wall, remote gateway phải có địa chỉ IP công khai và tĩnh. Không đặt remote gateway sau NAT là để tránh rắc rối về bảo mật. Không dùng địa chỉ IP động vì m0n0wall chỉ cho phép khai báo remote gateway bằng địa chỉ IP chứ không cho phép dùng tên.

Tham số mạng chỉ có bấy nhiêu smilie Phần còn lại của đoạn này sẽ nói về các tham số an ninh.



a) IPsec tunnel hay là IPIP over IPsec transport?

IPsec tunnel và IPIP over IPsec transport (IIPtran) là hai kiểu đường hầm có cùng định dạng gói. Vì thế chúng tương thích với nhau theo nghĩa thiết bị kiểu này có thể "nói chuyện được" (thông đường hầm) với thiết bị kiểu kia. IPsec tunnel không bắt buộc phải có (và cũng thường không có) giao diện ảo với địa chỉ IP. IIPtran có định nghĩa giao diện ảo với địa chỉ IP nên giúp dễ dàng giải quyết các vấn đề mạng như định tuyến động, cản lọc gói và điều tiết băng thông. IPsec tunnel có cơ chế kiểm soát truy nhập, chỉ cho phép gói từ local subnet đã khai báo đi vào đường hầm. IIPtran không có cơ chế này nên sau khi hình thành đường hầm, mọi gói đều có thể đi vào và việc kiểm soát truy nhập nếu cần phải được thực hiện bằng phương tiện ngoài giao thức (như tường lửa). Do IIPtran là kết hợp chồng chất của hai giao thức riêng biệt (IPIP thực hiện đường hầm và IPsec transport mã hóa), việc thực thi lệch lạc có thể dẫn đến sự cố an ninh. Sự cố có thể nhẹ như để gói lạ xâm nhập đường hầm, hay có thể rất nghiêm trọng như thả gói không mã hóa đi qua đường hầm mà người dùng không hề hay biết. (Đây cũng là vấn đề chung của mọi giao thức đường-hầm-over-IPsec-transport.) Tóm lại, trong khi trên nguyên tắc cả hai dạng đường hầm đều có thể tiện dụng và bảo mật như nhau, trên thực tế một cài đặt IIPtran thường tiện dụng hơn nhưng bảo mật thường thua một cài đặt IPsec tunnel. Cài đặt IIPtran phải cố gắng đạt tới độ bảo mật của IPsec tunnel bằng cách thực hiện thật chính xác từng giao thức và kết hợp hai giao thức thật ăn khớp. Cài đặt IPsec tunnel phải cố gắng đạt tới độ tiện dụng của IPsec transport bằng nhiều cách, kể cả cố gắng nặn ra giao diện ảo với địa chỉ IP.

Với m0n0wall, bạn không thể chọn lựa: nó chỉ cho phép IPsec tunnel.



b) Lifetime?

Khi nói đến IPsec tunnel, thực ra chúng tôi nghĩ đến ESP tunnel. ESP (Encapsulating Security Payload) là giao thức truyền dữ liệu, bao gồm cả mã hóa dữ liệu và xác thực dữ liệu. Có thể nhìn một đường hầm ESP như một kênh an toàn.

Để có chìa khóa bí mật cho ESP, hai bên dùng IKE. IKE (Internet Key Exchange) là giao thức để hai bên đàm phán, trao đổi chìa khóa, xác thực danh tính và cũng để trao đổi các thông tin tạo ra, duy trì và hủy bỏ các đường hầm trong vòng bí mật. IKE cũng dùng để tạo ra, duy trì và hủy bỏ các phiên liên lạc của chính bản thân IKE. Có thể nhìn một phiên IKE như một kênh an toàn khác.

Như vậy đàm phán IKE có hai loại, gọi là 2 phases. Phase 1 để tạo kênh IKE còn Phase 2 để tạo kênh ESP trong khuôn khổ của một kênh IKE. Khi hủy bỏ một kênh IKE, mọi kênh ESP tạo ra trong khuôn khổ của kênh ấy cũng bị hủy theo. Kênh an toàn có thể được hủy bỏ do trục trặc kỹ thuật, khởi động lại máy hay đã hết thời hạn tồn tại (lifetime). Về thời gian, các kênh ESP tồn tại song song và nối tiếp (gối đầu) nhau. Nếu bạn bật Keep alive, hai bên sẽ duy trì ít nhất 1 cặp kênh (1 thu, 1 phát) luôn sẵn sàng làm việc. Khi cặp kênh sắp hết hạn, hai bên sẽ tự động đàm phán tạo cặp kênh mới.

Mọi thông tin bí mật về một kênh an toàn, bao gồm các địa chỉ IP, tên thuật giải và quan trọng nhất là các chìa khóa mật mã, được hai bên chứa trong cái gọi là SA (Security Association). Trong thuật ngữ IPsec, SA của kênh IKE gọi là ISAKMP SA, SA của kênh ESP gọi là IPsec SA.

Lựa chọn lifetime hợp lý được khuyến cáo như sau.

Khi vận hành chính thức:
• ISAKMP SA lifetime = 24 tiếng,
• IPsec SA lifetime = 8 tiếng.

Khi thử nghiệm:
• ISAKMP SA lifetime = 20 phút,
• IPsec SA lifetime = 10 phút.

Khuyến cáo lifetime cho vận hành chính thức để duy trì độ bảo mật hợp lý đồng thời tránh nguy cơ rớt mạng khi thay đổi chìa khóa quá thường xuyên, nhưng quan trọng nhất để đảm bảo đàm phán thành công. Khi các mạng đều trong tầm kiểm soát của bạn, bạn có thể đặt cho mọi thiết bị một lifetime thống nhất nào đó khác. Chẳng hạn, khi vận hành chính thức chúng tôi thường sử dụng ISAKMP SA lifetime = 7 ngày đêm.



c) PSK hay là certificate?

Sau khi trao đổi chìa khóa, hai máy ở hai bên bước vào vòng đàm phán bí mật trong đó có một việc là đôi bên xác thực danh tính của nhau. Có hai cách xác thực là PSKcertificate (chữ ký điện tử).

PSK nhanh hơn certificate nhiều. Có thể nói là PSK "nhanh như chớp".

Nhưng PSK là một chìa khóa bí mật dùng chung nghĩa là cả hai bên cùng biết. Khi dùng certificate, mỗi bên có một chìa khóa bí mật riêng. Đối phương đứng giữa đường muốn nghe trộm cuộc liên lạc giữa hai máy A và B phải giả làm A để liên lạc với B và giả làm B để liên lạc với A. Trường hợp A, B dùng PSK, đối phương chỉ cần đột nhập được một máy (A hoặc B) là đủ lấy được PSK. Trường hợp A, B dùng certificate, đối phương phải đột nhập được vào cả hai máy A và B thì mới lấy được cả hai chìa khóa bí mật, việc này khó hơn so với trường hợp trước. Vậy certificate bảo mật hơn PSK.

Việc lựa chọn là tùy ở bạn. Tuy nhiên, kể cả khi quyết định sẽ dùng certificate bạn nên luôn luôn thử nghiệm thiết bị với PSK trước và chỉ chuyển sang thử nghiệm với certificate khi sau khi liên lạc PSK đã thông suốt. Lý do: identifier với certificate là điểm dễ bất đồng nhất trong kết nối giữa các cài đặt IPsec khác nhau.



d) Main mode, Base mode hay là Aggressive mode?

Aggressive mode nhanh nhất. Aggressive mode được dùng khi một bên (initiator, client) có địa chỉ IP biến động còn bên kia (responder, server) có địa chỉ IP tĩnh. (Khi client là một máy đơn lẻ, kết nối như thế thường gọi là road-warrior.) Aggressive mode có sai lầm nghiêm trọng về bảo mật khiến nó có thể lộ mật khi dùng với PSK. Ngay cả khi dùng certificate Aggresive mode cũng không an toàn bằng Main mode. Khi đàm phán Main mode bất thành, một vài loại appliance tự động chuyển sang Aggresive mode. Nhưng thật may mắn m0n0wall không thuộc loại đó.

Base mode không có trong m0n0wall.

Main mode an toàn nhất. Theo chúng tôi, main mode là mode duy nhất chấp nhận được để net-to-net VPN thật sự an toàn.



e) PFS hay là không PFS?

PFS (Perfect Forward Secrecy) là một lựa chọn tùy biến khi đàm phán trong khuôn khổ một ISAKMP SA để bên này yêu cầu bên kia trao đổi chìa khóa mới cho IPsec SA mới hoàn toàn độc lập với những chìa khóa đã dùng trong các IPsec SA trước đây. Như vậy, nếu bạn dùng PFS thì bảo mật sẽ rất là tốt.

Nhưng thực tế khi liên lạc giữa các cài đặt khác nhau của IPsec (và đôi khi, kể cả giữa hai máy cùng kiểu, với cùng một cài đặt!) PFS là điểm khá problematic. Đàm phán dễ thất bại khi bạn bật PFS.

Vì thế, người ta thường khuyến cáo thử nghiệm thiết bị tắt PFS trước. Chỉ khi liên lạc đã thông suốt mới bật PFS thử tiếp.



f) SHA hay là MD5?

Đây là một câu hỏi về chọn lựa thuật giải. Những câu hỏi tương tự có thể là: AES hay là 3DES? AES128 hay là AES256? RSA hay là DSA? Để chọn lựa thuật giải, cần để ý:
- Diffie-Hellman (DH) không có gì thay thế được.
- AES nhanh hơn 3DES vài lần.
- RSA nhanh hơn DSA vài lần,
- MD5 nhanh hơn SHA1 vài lần.
- Khi dùng PSK, mỗi ký tự ngẫu nhiên tương đương với khoảng 5-6 bit.
- Ở thuật giải cho phép độ dài chìa khóa tùy biến, chìa khóa càng dài, tính toán càng chậm.
- Độ bảo mật của các thuật giải (xem bảng).
Code:


Độ bảo mật (bit)   Thuật giải

56 DES
80 Skipjack
96 ?
112 3DES
128 HMAC MD5, AES 128
160 HMAC SHA1
192 AES 192
256 AES 256

Độ bảo mật (bit) Thuật giải
56 DH,RSA,DSA 416
80 DH,RSA,DSA 1024
96 DH,RSA,DSA 1536
112 DH,RSA,DSA 2048
128 DH,RSA,DSA 3072
160 DH,RSA,DSA 4864
192 DH,RSA,DSA 7680
256 DH,RSA,DSA 15360

(Nguồn: hai bảng trên do bạn LTVA cung cấp)

Độ bảo mật của một hệ thống nhiều khâu bằng độ bảo mật ở khâu yếu nhất. Cái giá trả cho bảo mật cao là tiêu hao nhiều điện năng và thời gian CPU. Lựa chọn lệch với những giải thuật mạnh yếu khác nhau dẫn đến lãng phí điện năng và thời gian CPU vô ích. Để máy chạy được hiệu quả cao nhất, bạn cần chọn lựa các thuật giải có độ bảo mật đồng đều.

Như vậy, với một đường hầm với cả hai gateway ở hai đầu đều là m0n0wall, chọn lựa giải thuật hợp lý như sau.

Phase 1 dùng
• DH 1536 DH key group (mức cao nhất có ở m0n0wall),
• PSK 20 ký tự hoặc X509 certificate với RSA 2048,
• 3DES (không có chọn lựa AES cho phase 1), và
• HMAC MD5.

Phase 2 dùng
• DH 1536 PFS key group (mức cao nhất có ở m0n0wall),
• AES 128, và
• HMAC MD5.

Tuy nhiên, nhiều loại card mạng có chức năng offload IPsec có thể thực hiện các phép tính 3DES, SHA,... Với PC có những card mạng này, bạn nên chọn những thuật giải sẵn có trong phần cứng như vậy để giảm nhẹ công việc cho CPU. Việc offload IPsec là hoàn toàn tự động và bạn không có tuỳ biến nào để bật hay tắt nó trong giao diện Web của m0n0wall.



(còn nữa)
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Other posts in the same group:

Tự làm VPN đơn giản với m0n0wall (Phần 2)
Go to top Go to original post  

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|