1. Khái niệm
DMZ (Demilitarized Zone) là vùng mạng trung gian giữa internet và mạng nội bộ, thường dùng để đặt các server cần public ra ngoài nhưng vẫn muốn tách biệt hoàn toàn khỏi LAN nhằm giảm thiểu rủi ro bảo mật.
LAN (Local Area Network) là vùng mạng nội bộ phục vụ người dùng nội bộ và các hệ thống quan trọng không public ra ngoài.
Server Farm là một tập hợp server phục vụ một mục đích nhất định (web, file, database, app, v.v…), có thể nằm trong LAN hoặc DMZ tuỳ mục đích.
2. Sơ đồ mạng mẫu
2.1. Sơ đồ logic phân vùng mạng:
[ INTERNET ]
|
Public IP (Router)
|
+------▼------+
| FIREWALL |
+------+------+
|
+----------------------+----------------------+
| |
[ DMZ Subnet ] [ LAN Subnet ]
192.168.10.0/24 192.168.20.0/24
| |
+------------------+ +-------------------------+
| Web Server Farm | | Internal File Server |
| 192.168.10.10-20 | | 192.168.20.10 |
+------------------+ +-------------------------+
| Mail Relay | | AD / DNS / DHCP Server |
| 192.168.10.30 | | 192.168.20.20 |
+------------------+ +-------------------------+
| App Server Farm |
| 192.168.20.30-50 |
+-------------------------+
+------------------------------+
| Client PCs (192.168.30.0/24) |
+------------------------------+
DMZ không bắt buộc phải “ngăn hoàn toàn” kết nối từ DMZ sang LAN, nhưng phải kiểm soát rất nghiêm ngặt và có chủ đích.
Nếu một File Server phục vụ cho nội bộ (client LAN) thì không nên đặt trong DMZ.
Nếu bạn đặt nó ở DMZ và mở port cho LAN truy cập vào thì về mặt thiết kế bảo mật, đó không còn là một DMZ đúng nghĩa nữa.
2.1. DMZ có “ngăn hoàn toàn” traffic vào LAN không?
- Không hoàn toàn, nhưng mặc định là chặn hết từ DMZ → LAN và chỉ mở ra theo nguyên tắc “cần tới mức nào thì mở tới đó”.
- Ví dụ nếu có một web server ở DMZ và nó cần truy vấn database trong LAN thì:
- Phải cấu hình firewall cho phép port DB cụ thể (ví dụ TCP 3306 với MySQL) từ IP cụ thể trong DMZ → IP cụ thể trong LAN.
- Và bạn nên dùng một proxy/bastion hoặc API layer để kiểm soát, log và giới hạn.
2.2. Nếu đặt File Server trong DMZ và mở cho client nội bộ truy cập, có còn là DMZ không?
Trường hợp | Nơi đặt | Giải thích |
---|---|---|
File server dùng cho nội bộ (LAN clients) | Trong LAN | Vì đây là dịch vụ không cần public, đặt trong LAN giúp bảo mật và dễ kiểm soát. |
File server cần chia sẻ file với bên ngoài (như đối tác, người dùng internet) | Trong DMZ (hoặc thêm proxy gateway) | Nhưng phải kiểm soát truy cập rất kỹ và thường không để file nhạy cảm ở đây. |
Cần dùng nội bộ + chia sẻ ngoài | Tách đôi: File server chính ở LAN, 1 server phụ/public ở DMZ hoặc dùng reverse proxy/SFTP gateway | Đảm bảo dữ liệu nội bộ không bị rò rỉ khi DMZ bị tấn công. |
- Về mặt kỹ thuật, nó vẫn nằm trong vùng DMZ.
- Nhưng về mặt bảo mật, đây không còn là một DMZ đúng nghĩa nữa nếu bạn cho phép truy cập rộng từ LAN → DMZ.
- Rủi ro là: nếu File Server trong DMZ bị xâm nhập, hacker có thể “lội ngược dòng” vào LAN nếu bạn mở quá nhiều port hoặc không kiểm soát chặt.
Gợi ý cách làm an toàn hơn:
- File server chính vẫn đặt ở LAN.
- Nếu cần chia sẻ với bên ngoài:
- Tạo một “DMZ file gateway” (SFTP server hoặc WebDAV) đặt ở DMZ.
- Thiết lập đồng bộ một chiều (read-only) từ LAN ra DMZ nếu cần.
- Hạn chế port (vd: chỉ mở 22/SFTP hoặc HTTPS), log truy cập đầy đủ.
- Nếu nội bộ phải truy cập vào DMZ file server:
- Chỉ mở đúng port, đúng IP, đúng protocol
- Giám sát & kiểm soát chặt
Kết luận.
🔒 DMZ không cấm tuyệt đối traffic sang LAN, nhưng mọi kết nối từ DMZ sang LAN phải cực kỳ hạn chế và có lý do rõ ràng.
📁 File server nội bộ nên đặt trong LAN. Nếu cần public, hãy dùng một server trung gian hoặc gateway trong DMZ.
3. Thiết kế địa chỉ IP (subnet hoá)
Mục đích | Subnet | Vai trò |
---|---|---|
DMZ | 192.168.10.0/24 | Public dịch vụ web, mail, vpn… |
Server nội bộ | 192.168.20.0/24 | File server, AD, app server |
Client nội bộ | 192.168.30.0/24 | PC người dùng |
Quản trị (Mgmt) | 192.168.99.0/24 | Thiết bị mạng, IPMI, camera,… |
4. Firewall rule cơ bản
Nguồn | Đích | Port | Hành động | Ghi chú |
---|---|---|---|---|
Internet | DMZ | 80, 443, 25… | Allow | Public dịch vụ |
Internet | LAN | Any | Deny | Không cho truy cập trực tiếp |
DMZ | LAN | Any | Deny | Chặn lội ngược |
LAN | DMZ | 22, 443,… | Allow | Admin LAN truy cập server DMZ |
LAN | LAN | File, AD, DNS | Allow | Bình thường |
5. Ví dụ thực tế về server farm
Mục đích | Đặt ở đâu | Ghi chú |
---|---|---|
Web Server Farm | DMZ | Nginx, Apache, HAProxy |
App Server Farm | LAN | Java Spring, Node.js, .NET Core |
File Server Farm | LAN | Samba, Windows File Server |
DB Server Farm | LAN | MySQL, PostgreSQL, MSSQL |
6. Phần mềm firewall/router phù hợp
6.1. Giải pháp miễn phí / open-source:
Tên | Mô tả |
---|---|
pfSense | Dễ dùng, mạnh, có GUI |
OPNSense | Nhánh fork từ pfSense |
VyOS | CLI-based mạnh, phù hợp script |
MikroTik (RouterOS free license) | Cấu hình tốt, phổ biến tại Việt Nam |
6.2. Giải pháp thương mại:
Tên | Mô tả |
---|---|
Fortigate | Tích hợp bảo mật toàn diện |
Palo Alto | Firewall cấp doanh nghiệp |
Sophos XG | Dễ triển khai, có GUI trực quan |
Cisco ASA | Hệ thống lớn, hỗ trợ nhiều tính năng |
7. Lời khuyên khi thiết kế hệ thống
- Luôn phân tách rõ DMZ và LAN bằng subnet và firewall.
- Dịch vụ cho nội bộ (file, AD, DNS…) không bao giờ đặt trong DMZ.
- Dùng VLAN + firewall để tách luồng truy cập, không chỉ chia IP.
- Log toàn bộ traffic từ DMZ vào LAN nếu có mở rule.
- Hạn chế dùng NAT loopback nếu không cần thiết.
- Áp dụng nguyên tắc “least privilege” – chỉ mở cái gì thực sự cần.
8. Tài liệu tham khảo