Professional Documents
Culture Documents
Bai Giang Iptables
Bai Giang Iptables
Bài giảng:
Hà nội
Bài giảng
THIẾT LẬP HỆ THỐNG TƯỜNG LỬA VỚI IPTABLES
Mục đích bài giảng:
Tìm hiểu về IPTABLES
Xây dựng hệ thống tường lửa với IPTABLES
Nội dung bài giảng:
1-Giới thiệu cơ bản về các hoạt động của IPTABLES và cách cấu hình iptables.
2-Hướng dẫn cách cấu hình IPTABLES cho một Web Sever.
NAT Router đảm nhận việc chuyển dãy IP nội bộ 169.168.0.x sang dãy IP mới
203.162.2.x. Khi có gói liệu với IP nguồn là 192.168.0.200 đến router, router sẽ đổi IP nguồn
thành 203.162.2.200 sau đó mới gởi ra ngoài. Quá trình này gọi là SNAT (Source-NAT, NAT
nguồn). 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 từ
liệu từ gởi từ ngoà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ỉ đích 203.162.2.200 thành địa chỉ đích mới là 192.168.0.200. Quá trình này gọi
là DNAT (Destination-NAT, NAT đích). Liên lạc giữa 192.168.0.200 và 203.162.2.200 là hoàn
toàn trong suốt (transparent) qua NAT router. NAT router tiến hành chuyển tiếp (forward) gói dữ
liệu từ 192.168.0.200 đến 203.162.2.200 và ngược lại.
8 – Redirect cổng.
Iptables hổ trợ tùy chọn -j REDIRECT cho phép đổi hướng cổng một cách dễ dàng. Ví dụ
như SQUID đang listen trên cổng 3128/tcp. Để redirect cổng 80 đến cổng 3128 này làm như
sau:
# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
Lưu ý: tùy chọn -j REDIRECT cho có trong chain PREROUTING
Để tạo kết nối `transparent` giữa mạng LAN 192.168.0.1 với Internet lập cấu hình cho
tường lửa Iptables như sau:
# echo 1 > /proc/sys/net/ipv4/ip_forward cho phép forward các packet qua máy chủ đặt
Iptables
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 210.40.2.71 đổi IP nguồn
cho các packet ra card mạng eth0 là 210.40.2.71. Khi nhận được packet vào 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.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)
10 – DNAT.
Giả sử đặt các máy chủ Proxy, Mail và DNS trong mạng DMZ. Để tạo kết nối trong suốt
từ Internet vào các máy chủ này làm như sau:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-destination 192.168.1.3
# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination
192.168.1.4
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT giữ các kết nối
hiện tại và chấp nhận các kết nối có liên quan
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT chấp nhận các gói vào looback từ IP
127.0.0.1
iptables -A INPUT -i lo -s 1.2.3.4 -j ACCEPT và 1.2.3.4
LOG_LIMIT=3/m
LOG_LIMIT_BURST=1
PING_LIMIT=500/s
PING_LIMIT_BURST=100
iptables -N UDP_INCOMING
iptables -A UDP_INCOMING -p udp --dport 53 -j ACCEPT
iptables -A UDP_INCOMING -p udp -j REJECT_PORTSCAN
iptables -A INPUT -i eth0 -p udp -j UDP_INCOMING
Để hạn chế khả năng bị DoS và tăng cường tốc độ cho máy chủ phục vụ web, có thể dùng
cách tải cân bằng (load-balacing) như sau:
Cách 1: chạy nhiều máy chủ phục vụ web trên các địa chỉ IP Internet khác nhau. Ví dụ,
ngoài máy chủ phục vụ web hiện tại 1.2.3.4, có thể đầu tư thêm các máy chủ phục vụ web
mới 1.2.3.2, 1.2.3.3, 1.2.3.4, 1.2.3.5. Điểm yếu của cách này là tốn nhiều địa chỉ IP Internet.
Cách 2: đặt các máy chủ phục vụ web trong một mạng DMZ. Cách này tiết kiệm được
nhiều địa chỉ IP nhưng bù lại gateway Iptables 1.2.3.4 - 192.168.0.254 có thể load nặng
hơn trước và yêu cầu đầu tư tiền cho đường truyền mạng từ gateway ra Internet.
dùng DNAT trên gateway 1.2.3.4 để chuyển tiếp các gói dữ liệu từ client đến một trong các máy
chủ phục vụ web trong mạng DMZ hoặc mạng LAN như sau:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination
192.168.0.1-192.168.0.4