Tìm hiểu về DMZ và cách triển khai vùng DMZ trong mạng

Giới thiệu

Về mặt địa lý và con người, thì DMZ (Demilitarized Zone – vùng phi quân sự) là một khu vực mà tại đó sự hiện diện của các lực lượng quân đội (gồm binh lính, vũ khí, đạn dược…) cũng như các hoạt động quân sự (như do thám, tập trận, đánh nhau…) đều không được cho phép.

Vì vậy, DMZ được coi như là một vùng ranh giới chia tách hai bên mà là thù địch của nhau và vùng DMZ thường được tạo nên sau những hiệp ước hòa bình, những thỏa thuận đình chiến. Trong thế giới thực, dải đất cắt ngang bán đảo Triều Tiên và phân tách bán đảo này ra thành hai nước là Hàn Quốc và Triều Tiên chính là một ví dụ về DMZ. Còn trong lịch sử chiến tranh Việt Nam thì sông Bến Hải chia tách hai miền nam Bắc cũng là một ví dụ khác về DMZ.

Cũng giống như nhiều thuật ngữ tin học khác được vay mượn từ thế giới thực, DMZ cũng là một thuật ngữ được dùng trong lĩnh vực bảo mật mạng máy tính. Vậy thì ý nghĩa và mục đích của từ DMZ trong tin học có giống với từ DMZ trong quân sự hay không?

Trước khi đi vào giải thích DMZ là gì cũng như tác dụng của nó thì tôi xin đưa ra một tình huống như thế này. Hệ thống mạng nội bộ (internal) của một tổ chức thường bao gồm các server cung cấp các dịch vụ cơ bản như: Directory Service (Active Directory, OpenLDAP…), DNS, DHCP, File/Print Sharing, Web, Mail, FTP. Trong đó thì các server Web, Mail, FTP thường phải cung cấp các dịch vụ của chúng cho cả những người dùng nằm bên trong lẫn bên ngoài mạng nội bộ của tổ chức.

Nếu trường hợp bạn đặt tất cả các server này nằm trong cùng một lớp mạng với các máy trạm của người dùng trong tổ chức thì sẽ như thế nào nếu hacker từ mạng bên ngoài (external - ví dụ như Internet) kiểm soát được 'public server' như Web, Mail, FTP? Rất có thể hacker sẽ dựa vào các server đã bị chiếm đoạt này để đánh vào các server khác (như DNS, DHCP, Directory Service…) cũng như thâm nhập sâu hơn vào các máy trạm bên trong. Thế nên ở đây, ta cần có một giải pháp nào đó để hạn chế khả năng mạng internal bị tổn thương khi các public server trên bị tấn công. Và DMZ là một câu trả lời cho vấn đề này.

DMZ là một mạng tách biệt với mạng internal vì DMZ sử dụng đường mạng (hoặc có subnet) khác với mạng internal. Và các server như Web, Mail, FTP, VoIP… là các dịch vụ tổ chức mong muốn người dùng có thể truy cập và sử dụng thông qua các mạng ngoài như Internet được đặt trong vùng DMZ. Còn các server phục vụ cho các mục đích nội bộ như DNS, DHCP, File/Print… vẫn được đặt trong vùng internal.

Giữa DMZ và mạng external ta có thể đặt một firewall để cho phép các kết nối từ external chỉ đến được DMZ mà thôi. Còn giữa mạng internal và DMZ ta có thể đặt thêm một firewall khác để kiểm soát các lưu lượng từ DMZ đi vào internal. Như vậy, cũng giống với vùng DMZ trong quân sự, DMZ ở đây đã tạo ra sự phân tách giữa hai bên đối nghịch nhau: mạng internal và mạng external. Và có thể nói rằng DMZ đã bổ sung thêm một lớp bảo vệ cách ly cho mạng internal khi mà hacker từ mạng ngoài chỉ có thể tiếp cận tới các máy nằm trong DMZ mà thôi.
[Hình: dmz-1.jpg]

Nếu bạn nghĩ mạng external như là 'untrusted network' và mạng internal như là 'trusted network' thì có thể coi DMZ như là mạng nửa tin cậy - nửa không tin cậy (semi-trusted). Nó không được an toàn như LAN nhưng do nó nằm sau một firewall nên nó an toàn hơn Internet. Hoặc bạn cũng có thể nghĩ về DMZ như là một 'liaison network' (mạng có quan hệ bất chính :-p) vì nó có thể liên lạc với cả hai mạng Internet và LAN trong khi nằm giữa hai mạng này như được thể hiện trong hình trên.

Nhưng không giống như sự yên ả, không có giao tranh mà ta có thể tìm thấy ở vùng DMZ ngoài đời thực, mạng DMZ ở đây thực sự ẩn chứa rất nhiều rủi ro do các mối đe dọa từ phía ngoài mang lại. Điển hình như việc hacker có thể sử dụng hình thức tấn công từ chối dịch vụ (DoS/DDoS) nhắm vào các server trong DMZ để làm gián đoạn hoặc dập tắt khả năng đáp ứng yêu cầu dịch vụ của các server này cho những người dùng hợp pháp thông thường. Và cũng không giống như sự vô chủ, trung lập của các vùng DMZ ở đời thực, khi tạo ra một DMZ cho tổ chức thì thực sự nó là một phần của cả hệ thống mạng nội bộ mà bạn phải kiểm soát chúng thật tốt.

Kiến trúc xây dựng DMZ

DMZ được tạo nên bởi hai thành phần cơ bản là: các địa chỉ IP và các firewall. Có hai đặc điểm nhận dạng quan trọng của DMZ mà bạn cần nhớ là:

1. Nó có một network ID khác so với mạng internal.

2. Nó bị phân tách khỏi mạng Internet và cả mạng internal bởi (các) firewall.

Dưới đây tôi sẽ nói rõ hơn về hai đặc điểm này của DMZ

1. Địa chỉ IP dùng trong DMZ

Tùy vào kiến trúc của DMZ và cấu hình trên firewall mà một DMZ có thể sử dụng public IP hoặc private IP cho các server trong DMZ.

Nếu bạn sử dụng public IP cho DMZ, thường bạn sẽ cần chia mạng con (subnetting) khối địa chỉ IP mà ISP cấp cho bạn để bạn có được hai network ID tách biệt. Một trong hai network ID này sẽ được dùng cho external interface (card mạng nối trực tiếp tới ISP) của firewall và network ID còn lại được dùng cho mạng DMZ. Lưu ý khi chia subnet khối public IP này, bạn phải cấu hình cho router của bạn để các gói tin từ ngoài Internet đi vào sẽ tới được DMZ.

Bạn cũng có thể tạo một DMZ có network ID giống với mạng internal nhưng vẫn đảm bảo có sự cách ly giữa DMZ và mạng internal bằng cách sử dụng VLAN Tagging (IEEE 802.1q). Lúc này các server trong DMZ và các máy trạm trong mạng internal đều được cắm chung vào một switch (hoặc khác switch nhưng các switch này được nối với nhau) nhưng được gán vào các VLAN khác nhau.

Còn nếu bạn sử dụng private IP cho DMZ, bạn sẽ cần đến NAT (một số firewall hỗ trợ sẵn tính năng này) để chuyển các private IP này sang một public IP (mà được gán cho external interface của firewall nằm giữa Internet và DMZ). Vì một số ứng dụng không làm việc tốt với NAT (ví dụ, Java RMI) nên bạn cân nhắc việc chọn cấu hình NAT hay định tuyến giữa Internet và DMZ.

2. Các Firewall

Có nhiều cách khi thiết kế một hệ thống mạng có sử dụng DMZ. Hai mô hình cơ bản và thường gặp nhất là: single firewall (hay three legged firewall) và dual firewall. Dưới đây tôi sẽ nói sơ qua về phương thức hoạt động cũng như ưu khuyết điểm của hai mô hình này.

a) Với single firewall

Bạn sẽ chỉ cần tới một thiết bị có ba NIC (network interface card). Trong đó, một NIC nối với mạng external, NIC thứ hai nối với mạng DMZ, và NIC còn lại nối với mạng internal.
[Hình: single-firewall.gif]

 
Kiến trúc single firewall

Đó là lý do tại sao người ta gọi nó là 'three legged firewall' (mỗi “chân” của firewall chính là một NIC của nó). Lúc này three legged firewall phải có khả năng kiểm soát toàn bộ traffic vào/ra giữa ba mạng (internal, external và DMZ) và nó trở thành điểm chịu lỗi duy nhất (single point of failure) cho toàn hệ thống mạng. Nếu có sự cố xảy ra với three legged firewall này thì cả DMZ và mạng internal đều không còn được bảo vệ nhưng bù lại bạn không phải tốn chi phí đầu tư thêm một firwewall nữa như trong mô hình dual firewall dưới đây.

Khi sử dụng single firewall để tạo DMZ, ta có khái niệm trihomed DMZ. Bạn cũng có thể tạo ra hai (hoặc nhiều hơn) vùng DMZ tách biệt có các network ID khác nhau bằng cách cách trang bị thêm số NIC tương ứng cho single firewall.

b) Với dual firewall

Bạn sẽ cần tới hai thiết bị firewall, mỗi firewall có hai NIC và được bố trí như sau:

- Firewall thứ nhất (được gọi là front-end firewall) có một NIC nối với mạng external (external interface) và NIC còn lại nối với DMZ (internal interface). Front-end firewall này có nhiệm vụ kiểm soát traffic từ Internet tới DMZ và mạng internal.

- Firewall thứ hai (được gọi là back-end firewall) có một NIC nối với DMZ (external interface) và NIC còn lại nối với mạng internal (internal interface). Back-end firewall này có nhiệm vụ kiểm soát traffic từ DMZ và Internet tới mạng internal.
[Hình: dual-firewall.gif]

 
Kiến trúc dual firewall

Rõ ràng, so với single firewall thì giải pháp này tuy tốn kém hơn về chi phí triển khai khi phải đầu tư tới hai thiết bị firewall tách biệt nhưng về mặt hiệu suất và độ an toàn cho hệ thống mạng của bạn sẽ được cải thiện. Vậy nên, tùy vào hoàn cảnh của tổ chức và môi trường của từng hệ thống mạng mà bạn nên xem xét lựa chọn giữa single firewall hay dual firewall cho thích hợp.

Một số khuyến cáo cho rằng nên chọn hai firewall từ hai nhà cung cấp (vendor) khác nhau với lời giải thích rằng nếu hacker có thể bẻ gãy firewall đầu tiên thì cũng hắn cũng khó khăn hơn trong việc phá vỡ firewall thứ hai bởi chúng được tạo nên theo những cách khác nhau. Còn bạn, bạn nghĩ như thế nào về điều này?

Kết luận

DMZ được coi như là một trong các lá chắn bảo vệ của hệ thống phòng thủ nhiều lớp (defense in depth) cho mạng nội bộ của tổ chức. Nhưng cũng giống như các lá chắn khác, nó vẫn có khả năng bị phá hủy và việc giữ gìn sự lành lặn của lá chắn này đòi hỏi bạn cần cài đặt, cấu hình, giám sát hoạt động đầy đủ và thường xuyên cho các firewall và server trong DMZ.

Hy vọng qua bài viết này bạn đã có một cái nhìn tổng quan về các khía cạnh của DMZ: Nó là gì? Nó có tác dụng gì? Đặc điểm của nó? Các hình thái khác nhau của nó?… Còn việc triển khai DMZ trong từng trường hợp cụ thể với từng sản phẩm firewall cụ thể thì xin hẹn các bạn ở các bài viết khác.

 

Post a Comment

Mới hơn Cũ hơn