Chương 3:TÌM HIỂU FIREWALL IPTABLES TRONG HỆ ĐIỀU HÀNH
3.3. Giới thiệu về bảng NAT (Network Address Traslation)
Có một vấn đề được đặt ra hiện nay là sự khan hiếm địa chỉ IP, một cơ quan khi có rất nhiều máy tính nhưng chỉ được cấp phát một địa chỉ IP duy nhất. Vậy làm thế nào để chỉ với một địa chỉ IP duy nhất này tất cả các máy tính ở trong một cơ quan có thể truy cập đựơc internet.
3.3.1. Khái niêm căn bản về NAT
NAT được dùng khi cá nhân dùng địa chỉ mạng riêng của mình để kết nối vào Internet. Trong khi muốn kết nối được với internet thì yêu cầu bạn phải có địa chỉ mạng chung.
Địa chỉ mạng chung sử dụng trên internet chỉ tồn tại duy nhất và thông thường được cung cấp bởi các nhà cung cấp dịch vụ internet. Địa chỉ mạng riêng được sử dụng trong mạng nội, địa chỉ này thì không cần phải cung cấp từ nhà dịch vụ mà có thể được cung cấp bởi người quản trị mạng nội bộ, nhưng không được trùng với địa chỉ đang được sử dụng trên internet.
Sử dụng cơ chế NAT giúp vào internet ngay trong khi đang sử dụng địa chỉ mạng riêng. NAT chuyển đổi giữa địa chỉ private thành địa chỉ IP public, NAT sẽ biến đổi địa chỉ nguồn và khi ra khỏi mạng nội bộ thì nó sẽ sử dụng địa chỉ mạng public để kết
mà chỉ biết được địa chỉ public của mạng nội bộ đó do nhà cung cấp dịch vụ cấp phát.
NAT sẽ nhận biết các địa chỉ mạng của các máy trong mạng nội bộ thông qua số cổng dịch vụ.
Ưu điểm của NAT:
- Bí mật được địa chỉ mạng nội bộ với mạng bên ngoài.
- Nếu kết nối vào internet thì nó sẽ tiết kiệm được địa chỉ public.
- Nó sẽ phục vụ cân bằng tải và có thể chia ra nhiều server khác nhau ở bên trong mạng nội bộ.
- Quá trình phân phối khoá sẽ được đảm bảo bí mật.
- Nếu thay đổi địa chỉ internet cũng không cần phải cấu hình lại cho từng máy sẽ rất thuận lợi cho người quản trị.
- Giảm được chi phí đầu tư.
Nhược điểm NAT:
- Tốc độ xử lí chậm vì phải phân tích lại gói tin, ghi lại địa chỉ và tính toán địa chỉ gói tin.
- Dễ xảy ra tắc nghẽn nếu quá nhiều thông tin cùng qua lại một thời điểm.
- Chúng ta sẽ tìm hiểu về một số phương thức đổi địa chỉ của NAT sau đây.
3.3.2. Cách đổi địa chỉ IP động
NAT động (Dynamic - NAT) là một trong những kĩ thuật chuyển đổi địa chỉ IP NAT (Network Address Translation). Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau:
Hình 3.6: Bảng NAT động
NAT Router đảm nhận việc chuyển dãy IP nội bộ 169.168.0.164 (IP Private)
192.168.0.200 đến router, router sẽ đổi IP nguồn thành địa chỉ IP 203.162.2.200 sau đó mới đi ra ngoài. Quá trình này gọi là SNAT (Source-NAT). Router lưu dữ liệu trong một bảng gọi là bảng NAT động. Ngược lại, khi có một gói tin từ bên ngoài đi vào với IP đích là 203.162.2.200, router sẽ căn cứ vào bảng NAT động hiện tại để đổi địa chỉ IP đích 203.162.2.200 thành địa chỉ IP đích mới là 192.168.0.200. Quá trình này gọi là DNAT (Destination-NAT). Liên lạc giữa địa chỉ IP 192.168.0.200 và địa chỉ IP 203.162.2.200 là hoàn toàn thông suốt qua NAT router. NAT router tiến hành chuyển tiếp (forward) gói tin từ địa chỉ IP 192.168.0.200 đến địa chỉ IP 203.162.2.200 và ngược lại.
3.3.3. Cách đóng giả địa chỉ IP
Hình 3.7: Đóng giả địa chỉ IP với Masquerade
NAT Router chuyển dãy IP nội bộ 192.168.0.164 sang một IP duy nhất là 203.162.2.4 bằng cách dùng các số hiệu cổng (port-number) khác nhau. Chẳng hạn khi có gói tin với nguồn địa chỉ là 192.168.0.164:1204, IP đích 211.200.51.15:80 đến router, router sẽ đổi nguồn thành địa chỉ IP 203.162.2.4:26314 và lưu dữ liệu này vào một bảng gọi là bảng masquerade động. Khi có một gói tin từ ngoài vào với nguồn IP là 221.200.51.15:80, IP đích là 203.162.2.4:26314 đến router, router sẽ căn cứ vào bảng masquerade động hiện tại để đổi đích từ địa chỉ IP 203.162.2.4:26314 thành địa chỉ IP 192.168.0.164:1204.
3.3.4. Một số ví dụ sử dụng kỹ thuật NAT
Iptables hổ trợ tùy chọn -j REDIRECT cho phép đổi hướng cổng một cách dễ dàng.
Hình 3.8: Snat và Masquerade
Để tạo kết nối giữa mạng LAN 192.168.0.1 với Internet thì lập cấu hình Iptables như sau:
# echo 1 > /proc/sys/net/ipv4/ip_forward (bật tính năng cho phép forward với địa chỉ ipv4).
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 210.40.2.71, đổi IP nguồn cho gói tin đi ra card mạng eth0 là 210.40.2.71. Khi nhận được gói tin từ internet, iptables sẽ tự động đổi IP đích 210.40.2.71 thành IP đích tương ứng của máy tính trong mạng LAN 192.168.1.0/24.
Hoặc có thể dùng MASQUERADE thay cho SNAT như sau:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE, masquerade thường được dùng khi kết nối đến internet là pp0 và dùng địa chỉ IP động.
Giả sử đặt các máy chủ proxy, Mail và DNS trong vùng mạng DMZ. Để tạo kết nối từ internet vào các máy chủ này:
Hình 3.9: DNAT
# echo 1 > /proc/sys/net/ipv4/ip_forward (bật tính năng cho phép forward với địa chỉ ipv4).
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to- destination 192.168.1.2 (đổi địa chỉ đích của các gói tin đi vào eth0 IP 210.40.2.71 với giao thức tcp cổng đích là 80 sang địa chỉ 192.168.1.2)
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to- destination 192.168.1.3 (đổi địa chỉ đích của các gói tin đi vào eth0 IP 210.40.2.71 với giao thức tcp cổng đích là 25 sang địa chỉ 192.168.1.3).
# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to- destination 192.168.1.4 (đổi địa chỉ đích của các gói tin đi vào eth0 IP 210.40.2.71 với giao thức tcp cổng đích là 53 sang địa chỉ 192.168.1.4).