Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
187,57 KB
Nội dung
Tìm hiểu triển khai tường lửa IPTABLES LINUX Mục Lục Mục Lục CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES Iptables gì? Tải cài đặt trọn gói Iptables Làm để bắt đầu iptables ? Xác định Các trạng thái iptables Cơ chế xử lý package iptables .8 Hình Iptables gói lưu lượng Sơ đồ 11 Target Jumps 12 Phân biệt ACCEPT, DROP REJECT packet 15 Phân biệt NEW, ESTABLISHED RELATED 15 Tùy chọn limit, limit-burst 16 Redirect cổng 18 Cách đổi địa IP động (dynamic NAT) 18 10 Cách đóng giả địa IP (masquerade) 19 11 Quá trình chuyển gói liệu qua Netfilter 20 12 Các tham số dòng lệnh thường gặp Iptables 21 12.7 Thiết lập Rule cho Fedora’s iptable 29 12.8 Tìm lại Đoạn mã bị 29 12.9 Những modun Kernel cần thiết .30 12.10 Sửa lỗi bảng iptables 31 13 Những đoạn mã iptables mẫu: .32 13.1 Cơ hoạt động hệ thống bảo vệ 32 13.2 Ưu điểm khởi tạo iptables 34 13.3 Sự cho phép máy chủ DNS truy cập đến Firewall .36 13.4 Cho phép WWW SSH truy cập vào firewall 37 13.5 _ Firewall cho phép bạn để truy cập Internet 37 13.6 Cho phép mạng Trang chủ bạn để truy cập Các Firewall 39 13.7 Mặt nạ (Masquerade_many to one NAT): 39 13.8 Giả mạo (Nhiều NAT) 42 13.9 NAT Port Forwarding (DHCP DSL) 44 13.10 SNAT & MASQUERADE 47 13.11 DNAT 52 CHƯƠNG II: VÍ DỤ VỀ CẤU HÌNH IPTABLES CHO MÁY CHỦ PHỤC VỤ WEB 54 Thiết lập tham số cho nhân 54 Nạp môđun cần thiết cho Iptables 55 Nguyên tắc đặt luật "drop trước, accept sau" 55 Lọc ICMP vào chặn ngập lụt PING 56 Reject quét cổng TCP UDP 57 Phát quét cổng Nmap 58 Chặn ngập lụt SYN .59 8: Giới hạn truy cập SSH cho admin 59 Giới hạn FTP cho web-master 60 10 Lọc TCP vào .61 11 Lọc UDP vào chặn ngập lụt UDP 61 Chanhminki KẾT LUẬN 63 TÀI LIỆU THAM KHẢO .64 Lời nhận xét ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Lời Mở Đầu An ninh mạng xem môt điều quan trọng định tổ chức trang web mối đe dọa thường trực ngày trở lên phổ biens rộng rãi Một bảo vệ sử dụng firewall Ban đầu, tường lửa phổ biến / NAT gói chạy Linux ipchains, có số thiếu sót Để khắc phục điều này, tổ chức Netfilter định tạo sản phẩm gọi iptables, cải tiến như: Tích hợp tốt với hạt nhân Linux với khả tải hạt nhân iptables cụ thể phần thiết kế để cải thiện tốc độ độ tin cậy Kiểm tra trạng thái gói Điều có nghĩa tường lửa theo dõi kết nối qua trường hợp định xem nội dung luồng liệu nỗ lực để dự đoán hành động giao thức định Đây tính quan trọng việc hỗ trợ hoạt động FTP DNS, dịch vụ mạng khác Lọc packet dựa địa MAC giá trị cờ phần đầu TCP Điều hữu ích việc ngăn chặn công cách sử dụng gói liệu bị thay đổi hạn chế truy cập từ máy chủ địa phương thuộc mạng khác Hệ thống đăng nhập, cung cấp tùy chọn điều chỉnh mức độ chi tiết báo cáo Dịch địa mạng tốt Hỗ trợ cho hội nhập suốt với chương trình Web proxy Squid Một tỷ lệ hạn chế tính giúp iptables chặn số loại từ chối dịch vụ (DoS) công Được coi nhanh an toàn thay cho ipchains, iptables trở thành tường lửa gói cài đặt mặc định theo RedHat Fedora Linux Trong thời gian học tập trung tâm đào tao Bách Khoa Npower, hướng dẫn thầy giáo chuyên ngành quản trị mạng đặc biêt thầy Vũ Quý Hòa, em chọn đề tài "IPTABLES LINUX " cho đồ án mơn học SECURITY Mục đích đề tài giúp người có nhìn tổng quát PTABLES LINUX Với tài liệu thu thập em hoàn thành đồ án "IPTABLES LINUX" biết IPTABLES gì?, cách cài đặt iptables, chế xử lý package iptables, Target Jumps, tham số dòng lệnh Iptables ứng dụng IPTABLES cho máy chủ phục vụ Web CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES Iptables gì? Iptables tường lửa ứng dụng lọc gói liệu mạnh, miễn phí có sẵn Linux Netfilter/Iptables gồm phần Netfilter nhân Linux Iptables nằm nhân Iptables chịu trách nhiệm giao tiếp người dùng vàNetfilter để đẩy luật người dùng vào cho Netfiler xử lí Netfilter tiến hành lọc gói liệu mức IP Netfilter làm việc trực tiếp nhân, nhanh không làm giảm tốc độ hệ thống Hình 1: Sơ đồ Netfilter/Iptables Tải cài đặt trọn gói Iptables Trước bạn bắt đầu, bạn cần phải chắn RPM iptables phần mềm cài đặt Khi tìm kiếm RPM, nhớ tên tập tin thường bắt đầu với tên gói phần mềm số phiên bản, iptables-1.2.9-1.0 i386.rpm Làm để bắt đầu iptables ? Để có cấu hình iptables để bắt đầu lúc khởi động, sử dụng lệnh chkconfig: [Root @ bigboy tmp] # chkconfig iptables on Bạn bắt đầu, dừng lại, khởi động lại iptables sau khởi động cách sử dụng lệnh: [Root @ bigboy tmp] # service iptables start [Root @ bigboy tmp] # service iptables stop [Root @ bigboy tmp] # service iptables restart Xác định Các trạng thái iptables Bạn xác định xem iptables chạy hay không thông qua lệnh iptables trạng thái dịch vụ Fedora Core cung cấp cho thông báo trạng thái đơn giản Ví dụ: [Root @ bigboy tmp] # service iptables status [Root @ bigboy tmp] # Cơ chế xử lý package iptables Tất gói kiểm tra iptables qua chuỗi xây dựng bảng (hàng đợi) để xử lý Mỗi hàng đợi dành riêng cho loại hình cụ thể hoạt động gói điều khiển chuyển đổi gói tin liên quan / dây chuyền lọc Có ba bàn tổng số Đầu tiên bảng mangle có trách nhiệm cho thay đổi chất lượng dịch vụ bit phần đầu TCP Đây không sử dụng môi trường nhà SOHO Bảng xếp hàng thứ hai lọc có trách nhiệm lọc gói Nó có ba xây dựng chuỗi bạn đặt quy tắc sách tường lửa bạn Đây những: Chuyển tiếp chuỗi: Bộ lọc gói liệu đến máy chủ bảo vệ tường lửa Nhập chuỗi: Bộ lọc gói tin cho tường lửa Đầu chuỗi: Bộ lọc gói có nguồn gốc từ tường lửa Bảng xếp hàng thứ ba nat có trách nhiệm cho dịch địa mạng Nó có hai xây dựng dây chuyền, là: Dự bị định tuyến chuỗi: NAT gói tin địa đích gói tin cần phải thay đổi Post-routing chain: NAT gói tin địa nguồn gói tin cần phải thay đổi Bảng : Các loại queues chain chức Loại Chức Gói chuyển đổi Chức chuỗi hàng đợi Filter Queue Lọc gói chuỗi Queue FORWARD INPUT OUTPUT Nat Network Address PREROUTI NG Bộ lọc gói liệu đến máy chủ truy cập NIC tường lửa Bộ lọc gói đến tường lửa Bộ lọc gói khỏi tường lửa (gói liệu có nguồn gốc từ tường lửa) Thay đổi địa đích xảy trước định tuyến Tạo điều kiện cho việc chuyển đổi địa ( Biên dịch IP đích tương thích với bảng định tuyến tường lửa Được sử dụng với NAT địa IP địa mạng) đích, cịn Translation gọi destination NAT DNAT POSTROUT ING Thay đổi địa đích xảy sau định tuyến Điều có nghĩa khơng có cần phải thay đổi địa IP đích gói tin định tuyến trước Được sử dụng với NAT địa IP nguồn cách sử dụng một-một NATmột nhiều Điều gọi source NAT, SNAT OUTPUT NAT sử dụng cho gói liệu xuất phát từ tường lửa.Rất sử dụng môi trường SOHO) Mangle Chỉnh sửa TCP header PREROUTI NG POSTROUTI NG KẾT QUẢ Điêù chỉnh bit quy định chất lượng dịch vụ trước dẫn đường Rất sử dụng môi trường SOHO (small office – home office) INPUT FORWARD Bạn cần xác định bảng chuỗi cho nguyên tắc tường lửa bạn tạo Có ngoại lệ: Hầu hết quy tắc có liên quan đến lọc, đó, giả định iptables chuỗi quy định mà khơng có bảng có liên quan phần bảng lọc Bảng lọc mặc định Để giúp thực điều rõ ràng hơn, xem cách gói liệu xử lý iptables Trong Hình gói tin TCP từ Internet đến giao diện tường lửa mạng A để tạo kết nối liệu Gói tin kiểm tra quy tắc chuỗi mangle Table PREROUTING Chain (nếu có) Sau kiểm tra quy tắc chuỗi nat Table PREROUTING Chain để không DNAT thay đổi địa tuyến – Routing xem liệu gói tin u cầu DNAT đích gói liêụ Sau định Nếu gói liệu đưa vào mạng lưới bảo vệ, sau lọc theo quy tắc chuỗi FORWARD bảng lọc và, cần thiết, gói trải qua SNAT chuỗi POSTROUTING để thay đổi IP nguôn trước đến mạng B Khi máy chủ đích định trả lời, gói trải qua trình tự bước Cả hai FORWARD POSTROUTING chuỗi cấu hình để thực chất lượng dịch vụ (QoS) tính bảng mangle họ, điều không thường thực mơi trường SOHO Nếu gói liệu định hướng vào bên tường lửa nó, đươc kiêtra qua bảng mangle chuỗi INPUT Nếu gói ########### # Hãy nhớ để tạo bí danh cho internet tất địa IP ########### # SERVER: # TO: TỪ: BẢN ĐỒ # 97.158.253.26 Anywhere 192.168.1.100 (1:1 NAT - Tour nước) # Bất nơi 192.168.1.100 97.158.253.26 (1:1 NAT - nơi 192.168.1.0/24 Outbound) # Bất 97.158.253.29 (FW IP) # # SNAT sử dụng để khởi xướng # Từ mạng lưới bảo vệ để # Địa NAT tất kết nối khác xuất từ IP 97.158.253.29 # # POSTROUTING: # NAT nguồn địa từ # Mạng bạn # IP Thường sử nhà dụng để với Internet # PREROUTING: # NAT địa IP đích # Kết nối từ Internet đến mạng bạn Thường dùng để # # - Giao diện eth0 giao diện internet # - Interface eth1 giao diện mạng riêng # -# PREROUTING báo cáo cho NAT 01:01 NAT kết nối NAT # (Kết nối có nguồn gốc từ Internet) iptables-t nat-A PREROUTING-d 97.158.253.26-i eth0 \ -J DNAT - to-đích 192.168.1.100 # POSTROUTING báo cáo cho NAT 01:01 # (Kết nối có nguồn gốc từ máy chủ mạng gia đình) iptables-t nat-A POSTROUTING-s 192.168.1.100-o eth0 \ -J SNAT - to-nguồn 97.158.253.26 # Báo cáo POSTROUTING cho nhiều: NAT # (Kết nối có nguồn gốc từ mạng gia đình toàn bộ) iptables-t nat-A POSTROUTING-s 192.168.1.0/24 \ -J SNAT-o eth0 - to-nguồn 97.158.253.29 # Cho phép chuyển tiếp cho máy chủ 01:01 cấu hình cho NAT Internet # (Đối với kết nối có nguồn gốc từ bạn Chú ý cách # Sử dụng địa IP thực đây) iptables-A FORWARD-p tcp-i eth0-o eth1-d 192.168.1.100 \ -M multiport - dports 80,443,22 \ -M nhà nước - state NEW-j ACCEPT # Cho phép chuyển tiếp cho tất kết nối SNAT thành lập # Có nguồn gốc mạng gia đình thành lập # Kết nối DNAT iptables-A FORWARD lọc-o eth0-t-m nhà nước \ - State NEW, ESTABLISHED, LIÊN QUAN-j ACCEPT # Cho phép chuyển tiếp cho tất kết nối bắt nguồn từ NAT 01:01 # Của Internet mà chuyển qua chuyển tiếp # Thông báo iptables-A FORWARD lọc-t-i eth0-m nhà nước \ - THÀNH LẬP nhà nước, liên quan-j ACCEPT 13.11 DNAT Giả sử bạn đặt máy chủ Proxy, Mail DNS mạng DMZ Để tạo kết nối suốt từ Internet vào máy chủ bạn sau: # echo > /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 Lê Thị Thanh Hiền S0809G – BachKhoa-Npower # 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 CHƯƠNG II: VÍ DỤ VỀ CẤU HÌNH IPTABLES CHO MÁY CHỦ PHỤC VỤ WEB Phần trình bày qua ví dụ cụ thể hướng dẫn lọc packet vào Các packet `forward` 'output' không đề cập Giả sử máy chủ phục vụ Web kết nối mạng trực tiếp vào Internet qua card mạng eth0, địa IP 1.2.3.4 Ta cần lập cấu hình tường lửa cho Iptables đáp ứng yêu cầu sau: - cổng TCP 80 (chạy apache) mở cho người truy cập web - cổng 21 (chạy proftpd) mở cho webmaster (dùng để upload file lên public_html) - cổng 22 (chạy openssh) mở cho admin (cung cấp shell `root` cho admin để nâng cấp & patch lỗi cho server cần) - cổng UDP 53 (chạy tinydns) để phục vụ tên miền (đây ví dụ) - chấp nhận ICMP PING tới với code=0x08, loại packet lại bị từ chối Thiết lập tham số cho nhân echo > /proc/sys/net/ipv4/tcp_syncookies echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time echo > /proc/sys/net/ipv4/tcp_window_scaling echo > /proc/sys/net/ipv4/tcp_sack echo > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo > /proc/sys/net/ipv4/conf/eth0/accept_source_route tcp_syncookies=1 bật chức chống DoS SYN qua syncookie Linux tcp_fin_timeout=10 đặt thời gian timeout cho q trình đóng kết nối TCP 10 giây tcp_keepalive_time=1800 đặt thời gian giữ kết nối TCP 1800 giây Các tham số khác bạn xem chi tiết tài liệu kèm nhân Linux Nạp môđun cần thiết cho Iptables Để sử dụng Iptables, bạn cần phải nạp trước mơđun cần thiết Ví dụ bạn muốn dùng chức LOG Iptables, bạn phải nạp môđun ipt_LOG vào trước lệnh # modprobe ipt_LOG MODULES="ip_tables iptable_filter ipt_LOG ipt_limit ipt_REJECT ipt_state for i in $MODULES; /sbin/modprobe $MODULES done Nguyên tắc đặt luật "drop trước, accept sau" Đây nguyên tắc mà bạn nên tuân theo Đầu tiên đóng hết cổng, sau mở dần cách cổng cần thiết Cách tránh cho bạn gặp sai sót đặt luật cho Iptables iptables -P INPUT DROP thả packet trước iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT giữ kết nối chấp nhận kết nối có liên quan iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT chấp nhận gói vào looback từ IP 127.0.0.1 iptables -A INPUT -i lo -s 1.2.3.4 -j ACCEPT 1.2.3.4 BANNED_IP="10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 224.0.0.0/4 240.0.0.0/5" for i in $BANNED_IP; iptables -A INPUT -i eth0 -s $i -j DROP thả gói liệu đến từ IP nằm danh sách cấm BANNER_IP done Lọc ICMP vào chặn ngập lụt PING LOG Iptables ghi vào file /var/log/firewall.log Bạn phải sửa lại cấu hình cho SYSLOG sau: # vi /etc/syslog.conf kern.=debug /var/log/firewall.log # /etc/rc.d/init.d/syslogd restart Đối với gói ICMP đến, đẩy qua chain CHECK_PINGFLOOD để kiểm tra xem đamg bị ngập lụt PING hay khơng, sau cho phép gói vào Nếu bị ngập lụt PING, môđun LOG tiến hành ghi nhật kí mức giới hạn limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST, gói PING ngập lụt bị thả hết LOG_LEVEL="debug" LOG_LIMIT=3/m LOG_LIMIT_BURST=1 PING_LIMIT=500/s PING_LIMIT_BURST=100 iptables -A CHECK_PINGFLOOD -m limit limit $PING_LIMIT limit-burst $PING_LIMIT_BURST -j RETURN iptables -A CHECK_PINGFLOOD -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=PINGFLOOD:warning a=DROP " iptables -A CHECK_PINGFLOOD -j DROP iptables -A INPUT -i eth0 -p icmp icmp-type echo-request -j CHECK_PINGFLOOD iptables -A INPUT -i eth0 -p icmp icmp-type echo-request -j ACCEPT Reject quét cổng TCP UDP Ở bạn tạo sẵn chain reject quét cổng, đẩy vào chain INPUT sau Đối với gói TCP, reject gói TCP với cờ SYN=1 cịn gói UDP, reject gói ICMP `port-unreachable` iptables-N REJECT_PORTSCAN iptables-A REJECT_PORTSCAN -p tcp -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=PORTSCAN:tcp a=REJECT " iptables-A REJECT_PORTSCAN -p udp -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=PORTSCAN:udp a=REJECT " iptables-A REJECT_PORTSCAN -p tcp -j REJECT reject-with tcp-reset iptables-A REJECT_PORTSCAN -p udp -j REJECT reject-with icmp-portunreachable Phát quét cổng Nmap iptables-N DETECT_NMAP iptables-A DETECT_NMAP -p tcp tcp-flags ALL FIN,URG,PSH -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS-PSH a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL ALL -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:XMAS-ALL a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL FIN -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:FIN a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags SYN,RST SYN,RST -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:SYN-RST a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags SYN,FIN SYN,FIN -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:SYN-FIN a=DROP " iptables-A DETECT_NMAP -p tcp tcp-flags ALL NONE -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=NMAP:NULL a=DROP " iptables-A DETECT_NMAP -j DROP iptables-A INPUT -i eth0 -p tcp ! syn -m state state NEW -j DETECT_NMAP Đối với gói TCP đến eth0 mở kết nối không đặt SYN=1 chuyển sang chain DETECT_NMAP Đây gói khơng hợp lệ qt cổng nmap kênh ngầm Chain DETECT_NMAP phát hầu hết kiểu quét Nmap tiến hành ghi nhật kí mức limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST Ví dụ để kiểm tra quét XMAS, bạn dùng tùy chọn tcp-flags ALL FIN,URG,PSH nghĩa cờ FIN, URG PSH bật, cờ khác bị tắt Các gói qua chain DETECT_NMAP sau bị DROP hết Chặn ngập lụt SYN Gói mở TCP với cờ SYN set hợp lệ khơng ngoại trừ khả gói SYN dùng để ngập lụt Vì vậy, dây bạn đẩy gói SYN cịn lại qua chain CHECK_SYNFLOOD để kiểm tra ngập lụt SYN sau: iptables-N CHECK_SYNFLOOD iptables-A CHECK_SYNFLOOD -m limit limit $SYN_LIMIT limit-burst $SYN_LIMIT_BURST -j RETURN iptables-A CHECK_SYNFLOOD -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=SYNFLOOD:warning a=DROP " iptables-A CHECK_SYNFLOOD -j DROP iptables-A INPUT -i eth0 -p tcp syn -j CHECK_SYNFLOOD 8: Giới hạn truy cập SSH cho admin SSH_IP="1.1.1.1" iptables -N SSH_ACCEPT iptables -A SSH_ACCEPT -m state state NEW -j LOG log-level $LOG_LEVEL log-prefix "fp=SSH:admin a=ACCEPT " iptables -A SSH_ACCEPT -j ACCEPT iptables -N SSH_DENIED iptables -A SSH_DENIED -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=SSH:attempt a=REJECT " iptables -A SSH_DENIED -p tcp -j REJECT reject-with tcp-reset for i in $SSH_IP; iptables -A INPUT -i eth0 -p tcp -s $i dport 22 -j SSH_ACCEPT done iptables -A INPUT -i eth0 -p tcp dport 22 -m state state NEW -j SSH_DENIED Giới hạn FTP cho web-master FTP_IP="2.2.2.2" iptables -N FTP_ACCEPT iptables -A FTP_ACCEPT -m state state NEW -j LOG log-level $LOG_LEVEL log-prefix "fp=FTP:webmaster a=ACCEPT " iptables -A FTP_ACCEPT -j ACCEPT iptables -N FTP_DENIED iptables -A FTP_DENIED -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=FTP:attempt a=REJECT " iptables -A FTP_DENIED -p tcp -j REJECT reject-with tcp-reset for i in $FTP_IP; iptables -A INPUT -i eth0 -p tcp -s $i dport 21 -j FTP_ACCEPT done iptables -A INPUT -i eth0 -p tcp dport 21 -m state state NEW -j FTP_DENIED Lọc TCP vào iptables -N TCP_INCOMING iptables -A TCP_INCOMING -p tcp dport 80 -j ACCEPT iptables -A TCP_INCOMING -p tcp -j REJECT_PORTSCAN iptables -A INPUT -i eth0 -p tcp -j TCP_INCOMING Lọc UDP vào chặn ngập lụt UDP iptables -N CHECK_UDPFLOOD iptables -A CHECK_UDPFLOOD -m limit limit $UDP_LIMIT limit-burst $UDP_LIMIT_BURST -j RETURN iptables -A CHECK_UDPFLOOD -m limit limit $LOG_LIMIT limit-burst $LOG_LIMIT_BURST -j LOG log-level $LOG_LEVEL log-prefix "fp=UDPFLOOD:warning a=DROP " iptables -A CHECK_UDPFLOOD -j DROP iptables -A INPUT -i eth0 -p udp -j CHECK_UDPFLOOD 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ả bị DoS tăng cường tốc độ cho máy chủ phục vụ web, bạn dùng cách tải cân (load-balacing) sau: Cách 1: chạy nhiều máy chủ phục vụ web địa IP Internet khác Ví dụ, ngồi máy chủ phục vụ web 1.2.3.4, bạn đầu tư thêm máy chủ phục vụ web 1.2.3.2, 1.2.3.3, 1.2.3.4, 1.2.3.5 Điểm yếu cách tốn nhiều địa IP Internet Cách 2: đặt máy chủ phục vụ web mạng DMZ Cách tiết kiệm nhiều địa IP bù lại bạn gateway Iptables 1.2.3.4 - 192.168.0.254 load nặng trước yêu cầu bạn đầu tư tiền cho đường truyền mạng từ gateway Internet Bạn dùng DNAT gateway 1.2.3.4 để chuyển tiếp gói liệu từ client đến máy chủ phục vụ web mạng DMZ mạng LAN sau: # iptables -t nat -A PREROUTING -i eth0 -p tcp dport 80 -j DNAT todestination 192.168.0.1-192.168.0.4 KẾT LUẬN Đồ án hoàn thành giúp cho người đọc có nhìn khái qt chức năng, phương thức hoạt động IPTABLEs LINUX Bao gồm cách cài đặt iptables, chế xử lý package iptables, Target Jumps, tham số dòng lệnh Iptables ứng dụng IPTABLES cho máy chủ phục vụ Web Ưu điểm IPTABLES IPTABLES đời cải tiến so với IPCHAINS như: tích hợp tốt với hạt nhân LiNUX, kiểm tra trạng thái gói, lọc packet dựa địa MAC Là tường lửa LINUX ứng dụng lọc gói mạnh tích hợp sẵn TÀI LIỆU THAM KHẢO [1] Nguyễn Thị Điệp Tiêu Đông Nhơn, Giáo trình Dịch vụ mạng Linux, Đại học Quốc Gia Thành phố Hồ Chí Minh 12/2005 [2] How To Set Up A Debian Linux Proxy Server by Debian's Web [3] Nguyễn Hồng Thái, Cài đặt Cấu hình iptables, Đại học Cơng nghệ Thành phố Hồ Chí Minh [4] Các website - http://blog.yume.vn/xem-blog/bao-cao-do-an-2-tim-hieu-firewalliptables.nguyenquandung.35A91C2B.html - ttp://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14 _:_Linux_Firewalls_Using_iptables ... đặt iptables, chế xử lý package iptables, Target Jumps, tham số dòng lệnh Iptables ứng dụng IPTABLES cho máy chủ phục vụ Web CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES Iptables gì? Iptables tường lửa. .. sách tường lửa bạn Đây những: Chuyển tiếp chuỗi: Bộ lọc gói liệu đến máy chủ bảo vệ tường lửa Nhập chuỗi: Bộ lọc gói tin cho tường lửa Đầu chuỗi: Bộ lọc gói có nguồn gốc từ tường lửa Bảng... PREROUTI NG Bộ lọc gói liệu đến máy chủ truy cập NIC tường lửa Bộ lọc gói đến tường lửa Bộ lọc gói khỏi tường lửa (gói liệu có nguồn gốc từ tường lửa) Thay đổi địa đích xảy trước định tuyến Tạo điều