Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 98 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
98
Dung lượng
3,35 MB
Nội dung
i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LƢU THỊ THANH HƢƠNG MỘT SỐ KỸ THUẬT LỌC GÓI TIN TRONG IP LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2015 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ii LỜI CAM ĐOAN Những kết nghiên cứu đƣợc trình bày luận văn hồn tồn trung thực, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn tồn chịu trách nhiệm trƣớc pháp luật Thái nguyên, ngày 20 tháng năm 2015 Tác giả luận văn Lưu Thị Thanh Hương Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iii LỜI CẢM ƠN Trƣớc hết xin gửi lời cảm ơn sâu sắc đến thầy hƣớng dẫn khoa học PGS.TS Nguyễn Văn Tam dẫn khoa học, định hƣớng nghiên cứu tận tình hƣớng dẫn tơi suốt q trình làm luận văn Tơi xin cảm ơn các Thầy viện Công Nghệ Thông Tin, Thầy, Cô giáo trƣờng Đại học Công Nghệ Thông Tin Truyền Thông - Đại học Thái Nguyên cung cấp cho kiến thức vô quý báu cần thiết suốt thời gian học tập trƣờng để tơi thực hoàn thành tốt đồ án chuyên ngành Tôi xin chân cảm ơn lãnh đạo, bạn đồng nghiệp trƣờng THPT Đồng Hỷ tạo điều kiện giúp đỡ công việc để yên tâm theo học Cuối cùng, tơi xin cảm ơn gia đình bạn bè, ngƣời ủng hộ động viên tơi, giúp tơi n tâm có tâm lý thuận lợi để nghiên cứu luận văn Tuy nhiên giới hạn mặt thời gian kiến thức nên đồ án chắn không tránh khỏi sai sót ngồi ý muốn Tơi mong nhận đƣợc thơng cảm đóng góp ý kiến thầy cô bạn Học viên Lƣu Thị Thanh Hƣơng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iv MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN iii MỤC LỤC iv BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT .vi DANH MỤC CÁC HÌNH VẼ viii DANH MỤC BẢNG .x MỞ ĐẦU .1 Chƣơng TỔNG QUAN VỀ AN TOÀN VÀ BẢO MẬT TRONG MẠNG IP 1.1 Các khái niệm 1.1.1 An toàn bảo mật gì? [11] 1.1.2 Các nguy gây an toàn [11] 1.2 Các kiểu công mạng IP [2] .4 1.2.1 Các kỹ thuật bắt thông tin .4 1.2.2 Tấn công xâm nhập mạng 1.2.3 Tấn công từ chối dịch vụ DoS, DdoS [6] 1.3 Các biện pháp bảo vệ an toàn mạng .10 1.3.1 An toàn trung chuyển (Transit Security) 10 1.3.1.1 Các mạng riêng ảo (VPN - Virtual Private Network) [11] 10 1.3.1.2 Giải pháp mật mã thông tin (Cryptography) [2] 11 1.3.2 Giải pháp kiểm soát lƣu lƣợng (Traffic Regulation) 17 1.3.2.1 Giải pháp phát phòng tránh xâm nhập [3] 17 1.3.2.2 Giải pháp kỹ thuật tƣờng lửa (Firewall technology) [5] 19 Chƣơng 27 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ v KỸ THUẬT LỌC GÓI TIN 27 2.1 Kỹ thuật lọc gói tin .27 2.2 Kỹ thuật lọc gói tin tĩnh 30 2.2.1 Giải thuật lọc gói tĩnh [4] 30 2.2.2 Lọc gói dựa tiêu đề TCP/UDP .33 2.2.3 Lọc gói dựa tiêu đề gói tin IP 37 2.2.4 Mặc định từ chối so với mặc định cho phép .40 2.3 Kỹ thuật lọc gói tin động 40 2.3.1 Giải thuật lọc gói tin động [4] 41 2.3.2 Theo dõi trạng thái 43 2.3.3 Lƣu giữ kiểm tra trạng thái 46 2.3.4 Theo dõi số trình tự TCP 46 2.3.5 Kiểm tra giao thức .47 2.4 Sự khác kỹ thuật lọc gói tin tĩnh kỹ thuật lọc gói tin động .48 Chƣơng 49 XÂY DỰNG THỬ NGHIỆM BỨC TƢỜNG LỬA 49 3.1 Phân tích tốn 49 3.1.1 Xây dựng sách lọc gói tin tĩnh 50 3.1.2 Xây dựng sách lọc gói tin động 51 3.2 Phân tích lựa chọn công cụ 51 * Hoạt động xử lý gói tin IP 53 3.3 Kết thử nghiệm thực thi chƣơng trình 56 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC 68 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ vi BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT ACK AH Acknowledgement Authentication Header Header xác thực đƣợc thêm vào sau header gói tin IP AES Advanced Encryption Standard Thuật tốn mã hóa khối DA Destination Address Địa IP đích DES Data Encryption Standard Thuật tốn mã hoá với 64 bit liệu 56 bit khoá DNS Domain Name System Hệ thống tên miền DoS Denial of Service Tấn công từ chối dịch vụ DDoS Distributed Denial of Service Tấn công từ chối dịch vụ phân tán DNAT Destination NAT ESP Encapsulated Security Payload Phƣơng thức đóng gói bảo vệ liệu ICMP Internet Control Message Protocol Sử dụng giao thức IP để truyền thông tin điều khiển lỗi mạng IP Internet Protocol (IPV4) Giao thức truyền mạng Internet IDS Intruction Detect System Hệ thống phát xâm nhập IOS Intruction IPX Internetwork packet Exchange Giao thức mạng LAN Local area network Mạng cục MAC Media Access Control Điều khiển truy cập NAT Network Address Translation Phƣơng thức chuyển đổi địa RSA Rivest Shamir Adleman RSA phƣơng thức mã hố cơng khai SA Security Association Địa IP nguồn SYN Synchronous SNMP Simple Network Management Protocol Tâp hợp giao thức SMTP Simple Mail Transfer Protocol Giao thức truyền tải thƣ tín UDP User Datagram Protocol Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ vii OSI Open Systems Interconnection Mơ hình tham chiếu kết nối hệ thống mở TCP Transmission Control Protocol Giao thức điều khiển truyền vận VPN Virtual Private Network Mạng riêng tổ chức nhƣng sử dụng đƣờng truyền công cộng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ viii DANH MỤC CÁC HÌNH VẼ Trang Tên hình Chương Hình 1.1 Kỹ thuật bắt gói tin thụ động Hình 1.2 Kỹ thuật Sniffers chủ động Hình 1.3 Kỹ thuật cơng kiểu Smurf Hình 1.4 Kỹ thuật cơng kiểu SYN flood HÌnh 1.5 Kỹ thuật cơng DdoS Hình 1.6 Kỹ thuật cơng DDoS, loại cơng DDoS Hình 1.7 Mạng riêng ảo 10 Hình 1.8 Sơ đồ thuật tốn mã hóa 12 Hình 1.9 Vị trí DES mạng 16 Hình 1.10 Bức tƣờng Lửa 18 Hình 1.11 Firewall lọc gói 19 Hình 1.12 Tƣờng lửa ứng dụng 21 Hình 1.13 tƣờng lửa nhiều tầng 22 Hình 1.14 Kiến trúc máy chủ trung gian 23 Hình 1.15 Kiến trúc máy chủ sàng lọc 23 Hình 1.16 Kiến trúc mạng sàng lọc 24 Hình 1.17 Mơ hình sử dụng nhiều Bastion Host 24 Hình 1.18 Kiến trúc ghép chung Router Router ngồi 25 Hình 1.19 Kiến trúc ghép chung Bastion Host Router ngồi 25 Chương Hình 2.1 Các luồng gói tin tƣờng lửa lọc gói 27 Hình 2.2 Lƣu đồ thuật tốn lọc gói tin tĩnh 29 Hình 2.3a Tiêu đề mảng tin TCP 30 Hình 2.3b Tiêu đề mảng tin UDP 31 Hình 2.4 Các cổng giao thức TCP 33 Hình 2.5 Quá trình bắt tay ba bƣớc giao thức TCP 33 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ix Hình 2.6 Tiêu đề gói tin IP 34 Hình 2.7 Lƣu đồ thuật tốn lọc gói tin động 38 Hình 2.8 Thơng điệp ICMP gói tin IP 41 Chương Hình 3.1 Sơ đồ kết nối mạng trƣờng học 47 Hình 3.2 Netfiter TPtable nhân Linux 49 Hình 3.3a, b Các sách luật lọc gói tin tĩnh 52 Hình 3.4 Các luật lọc gói tin tĩnh đƣợc cài đặt 53 Hình 3.5a, b Các sách luật lọc gói tin động 54, 55 Hình 3.6 Các luật lọc gói tin động đƣợc cài đặt 55 Hình 3.7 Các luật firewall đƣợc active bắt đầu thực thi HT 56 Hình 3.8 Giao diện chƣơng trình Quickly 58 Hình 3.9 Cấm truy cập Internet 60 Hình 3.10 Cho phép truy cập Internet 60 Hình 3.11 Luật chƣa đƣợc active 61 Hình 3.12 Luật đƣợc active 61 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ x DANH MỤC BẢNG Tên bảng Trang Bảng 2.1 Bảng dịch vụ tƣơng ứng với số cổng 32 Bảng 3.2 Miêu tả target mà IPtables thƣờng dùng 51 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 73 $IPTABLES -A INPUT -s $IPTABLES -A INPUT -p tcp -m tcp -m 10.16.17.128/25 -m state state NEW -j RULE_0 $IPTABLES -A RULE_0 -j LOG loglevel info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_0 -j ACCEPT # # Rule (global) multiport dports 21,80,443,143,98,25,22 m state state NEW -j Cid4178X3920.0 $IPTABLES -N RULE_2 $IPTABLES -A Cid4178X3920.0 -s 10.16.25.1 -j RULE_2 $IPTABLES -A Cid4178X3920.0 -s 10.16.25.2/31 -j RULE_2 $IPTABLES -A Cid4178X3920.0 -s # echo "Rule (global)" # $IPTABLES -N RULE_1 $IPTABLES -A INPUT -s 10.16.11.30/31 -m state state NEW -j RULE_1 $IPTABLES -A INPUT -s 10.16.11.32/27 -m state state NEW -j 10.16.25.4/30 -j RULE_2 $IPTABLES -A Cid4178X3920.0 10.16.25.8/29 -j RULE_2 $IPTABLES -A Cid4178X3920.0 10.16.25.16/28 -j RULE_2 $IPTABLES -A Cid4178X3920.0 10.16.25.32/27 -j RULE_2 $IPTABLES -A Cid4178X3920.0 10.16.25.64/26 -j RULE_2 RULE_1 $IPTABLES -A INPUT -s 10.16.11.64/26 -m state state NEW -j RULE_1 $IPTABLES -A INPUT -s 10.16.11.128/25 -m state state NEW -j RULE_1 $IPTABLES -A RULE_1 -j LOG log- $IPTABLES -A Cid4178X3920.0 -s 10.16.25.128/25 -j RULE_2 $IPTABLES -A RULE_2 -j LOG loglevel info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_2 -j ACCEPT # # Rule (global) level info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_1 -j ACCEPT # # Rule (global) # echo "Rule (global)" # $IPTABLES -N Cid4178X3920.0 $IPTABLES -A INPUT -p tcp -m tcp -sport 20 dport 1024:65535 -m state state NEW -j Cid4178X3920.0 # echo "Rule (global)" # $IPTABLES -N Cid4190X3920.0 $IPTABLES -A OUTPUT -p tcp -m tcp -dport 53 -m state state NEW -j Cid4190X3920.0 $IPTABLES -A OUTPUT -p udp -m udp dport 53 -m state state NEW -j Cid4190X3920.0 $IPTABLES -N RULE_3 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên -s -s -s -s http://www.lrc-tnu.edu.vn/ 74 $IPTABLES -A Cid4190X3920.0 -d 10.16.17.1 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.2/31 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.4/30 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.8/29 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.16/28 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.32/27 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.64/26 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.17.128/25 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.25.1 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.25.2/31 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.25.4/30 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.25.8/29 -j RULE_3 $IPTABLES -A Cid4190X3920.0 10.16.25.16/28 -j RULE_3 -d -d -d -d -d -d -d -d -d -d -d -d $IPTABLES -A Cid4190X3920.0 -d 10.16.25.32/27 -j RULE_3 $IPTABLES -A Cid4190X3920.0 -d 10.16.25.64/26 -j RULE_3 $IPTABLES -A Cid4190X3920.0 -d 10.16.25.128/25 -j RULE_3 $IPTABLES -A RULE_3 -j LOG loglevel info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_3 -j ACCEPT # # Rule (global) # echo "Rule (global)" # $IPTABLES -N Cid4202X3920.0 $IPTABLES -A OUTPUT -p tcp -m tcp -dport 53 -j Cid4202X3920.0 $IPTABLES -A OUTPUT -p udp -m udp dport 53 -j Cid4202X3920.0 $IPTABLES -N RULE_4 $IPTABLES -A Cid4202X3920.0 10.16.11.30/31 -j RULE_4 $IPTABLES -A Cid4202X3920.0 10.16.11.32/27 -j RULE_4 $IPTABLES -A Cid4202X3920.0 10.16.11.64/26 -j RULE_4 $IPTABLES -A Cid4202X3920.0 10.16.11.128/25 -j RULE_4 $IPTABLES -A RULE_4 -j LOG -d -d -d -d log- level info log-prefix "RULE REJECT " $IPTABLES -A RULE_4 -j REJECT # # Rule (global) # echo "Rule (global)" # $IPTABLES -N RULE_5 $IPTABLES -A OUTPUT -p tcp -m tcp d 10.16.2.1 dport 53 -j RULE_5 $IPTABLES -A OUTPUT -p udp -m udp -d 10.16.2.1 dport 53 -j RULE_5 $IPTABLES -A RULE_5 -j LOG loglevel info log-prefix "RULE DENY " $IPTABLES -A RULE_5 -j DROP # # Rule (global) # echo "Rule (global)" Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 75 # $IPTABLES -A Cid5964X3165.0 -s $IPTABLES -N RULE_6 $IPTABLES -A OUTPUT -p tcp -m tcp -sport 20 -d 192.168.1.1 dport 1024:65535 -m state state NEW -j RULE_6 $IPTABLES -A OUTPUT -p tcp -m tcp m multiport -d 192.168.1.1 dports 53,21,22 -m state state NEW -j RULE_6 10.16.17.64/26 -j RULE_7 $IPTABLES -A Cid5964X3165.0 -s 10.16.17.128/25 -j RULE_7 $IPTABLES -A RULE_7 -j LOG loglevel info log-prefix "RULE DENY " $IPTABLES -A RULE_7 -j DROP } $IPTABLES -A OUTPUT -p udp -m udp -d 192.168.1.1 dport 53 -m state state NEW -j RULE_6 $IPTABLES -A RULE_6 -j LOG loglevel info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_6 -j ACCEPT # # Rule (global) ip_forward() { : echo > /proc/sys/net/ipv4/ip_forward } # echo "Rule (global)" # $IPTABLES -N Cid5964X3165.0 $IPTABLES -A FORWARD -d 192.168.1.1 -j Cid5964X3165.0 $IPTABLES -N RULE_7 $IPTABLES -A Cid5964X3165.0 -s 10.16.17.1 -j RULE_7 $IPTABLES -A Cid5964X3165.0 10.16.17.2/31 -j RULE_7 $IPTABLES -A Cid5964X3165.0 10.16.17.4/30 -j RULE_7 $IPTABLES -A Cid5964X3165.0 10.16.17.8/29 -j RULE_7 $IPTABLES -A Cid5964X3165.0 10.16.17.16/28 -j RULE_7 $IPTABLES -A Cid5964X3165.0 10.16.17.32/27 -j RULE_7 reset_all() { : reset_iptables_v4 } block_action() { reset_all } stop_action() { reset_all $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT -s } -s -s -s -s check_iptables() { IP_TABLES="$1" [ ! -e $IP_TABLES ] && return 151 NF_TABLES=$(cat $IP_TABLES 2>/dev/null) [ -z "$NF_TABLES" ] && return 152 return } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 76 status_action() { load_modules "nat " check_iptables "/proc/net/ip_tables_names" ret_ipv4=$? check_iptables "/proc/net/ip6_tables_names" ret_ipv6=$? [ $ret_ipv4 -eq -o $ret_ipv6 -eq ] && return configure_interfaces verify_interfaces [ $ret_ipv4 -eq 151 -o $ret_ipv6 -eq 151 ] && { echo "iptables modules are not loaded" } [ $ret_ipv4 -eq 152 -o $ret_ipv6 -eq 152 ] && { echo "Firewall is not configured" } exit RETVAL=$? ;; } # See how we were called # For backwards compatibility missing argument is equivalent to 'start' cmd=$1 test -z "$cmd" && { reset_all script_body ip_forward epilog_commands stop) stop_action RETVAL=$? ;; status) status_action RETVAL=$? ;; block) block_action RETVAL=$? ;; cmd="start" } case "$cmd" in start) log "Activating firewall script generated Sat Apr 11:38:33 2015 by huong" check_tools prolog_commands check_run_time_address_table_files reload) $0 stop $0 start RETVAL=$? ;; interfaces) configure_interfaces RETVAL=$? ;; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 77 test_interfaces) FWBDEBUG="echo" configure_interfaces RETVAL=$? ;; *) echo "Usage $0 [start|stop|status|block|reload|interfaces|test_i nterfaces]" ;; esac exit $RETVAL Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 78 Phụ lục 2: Tập luật lọc gói tin động #!/bin/sh # DO NOT MODIFY ! # 11:50:39 2015 ICT by huong # files: * DinamicFW.fw ## Compiled for iptables (any version) ## This is a firewall protecting a host ( a server or a workstation) FWBDEBUG="" PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PAT H}" export PATH LSMOD="/sbin/lsmod" MODPROBE="/sbin/modprobe" IPTABLES="/sbin/iptables" IP6TABLES="/sbin/ip6tables" IPTABLES_RESTORE="/sbin/iptables- dev=$1 name=$2 af=$3 L=$($IP $af addr show dev $dev | sed -n '/inet/{s!.*inet6* !!;s!/.*!!p}' | sed 's/peer.*//') test -z "$L" && { eval "$name=''" return } eval "${name}_list=\"$L\"" } restore" IP6TABLES_RESTORE="/sbin/ip6tablesrestore" IP="/sbin/ip" IFCONFIG="/sbin/ifconfig" VCONFIG="/sbin/vconfig" BRCTL="/sbin/brctl" IFENSLAVE="/sbin/ifenslave" af=$3 L=$($IP route list proto kernel | grep $dev | grep -v default | sed 's! *$!!') test -z "$L" && { eval "$name=''" return } eval "${name}_list=\"$L\"" IPSET="/usr/sbin/ipset" LOGGER="/usr/bin/logger" log() { echo "$1" which "$LOGGER" >/dev/null 2>&1 && $LOGGER -p info "$1" } getnet_internal() { dev=$1 name=$2 } getaddr() { getaddr_internal $1 $2 "-4" } getaddr6() { getaddr_internal $1 $2 "-6" } getnet() { getInterfaceVarName() { getnet_internal $1 $2 "-4" echo $1 | sed 's/\./_/' } } getnet6() { getaddr_internal() { getnet_internal $1 $2 "-6" Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 79 } find_program $MODPROBE # function getinterfaces is used to process wildcard interfaces getinterfaces() { NAME=$1 $IP link show | grep ": $NAME" | while read L; OIFS=$IFS IFS=" :" find_program $IP set $L IFS=$OIFS echo $2 done } diff_intf() { func=$1 list1=$2 list2=$3 cmd=$4 for intf in $list1 echo $list2 | grep -q $intf || { # $vlan is absent in list $func $intf $cmd } done } find_program() { PGM=$1 which $PGM >/dev/null 2>&1 || { echo "\"$PGM\" not found" exit } } check_tools() { find_program which find_program $IPTABLES } reset_iptables_v4() { $IPTABLES -P OUTPUT DROP $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP cat /proc/net/ip_tables_names | while read table; $IPTABLES -t $table -L -n | while read c chain rest; if test "X$c" = "XChain" ; then $IPTABLES -t $table -F $chain fi done $IPTABLES -t $table -X done } reset_iptables_v6() { $IP6TABLES -P OUTPUT DROP $IP6TABLES -P INPUT DROP $IP6TABLES -P FORWARD DROP cat /proc/net/ip6_tables_names | while read table; $IP6TABLES -t $table -L -n | while read c chain rest; if test "X$c" = "XChain" ; then $IP6TABLES -t $table -F $chain fi done $IP6TABLES -t $table -X done } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 80 P2P_INTERFACE_WARNING="" missing_address() { address=$1 cmd=$2 oldIFS=$IFS IFS="@" set $address addr=$1 interface=$2 IFS=$oldIFS test "$cmd" = "del" && { echo "# Removing ip address: $interface $addr" $FWBDEBUG $IP addr $cmd $addr dev $interface || exit } $FWBDEBUG $IP link set $interface up } $IP addr show dev $interface | grep -q POINTOPOINT && { test -z list_addresses_by_scope() { interface=$1 scope=$2 ignore_list=$3 $IP addr ls dev $interface | \ awk -v IGNORED="$ignore_list" -v SCOPE="$scope" \ "$P2P_INTERFACE_WARNING" && echo "Warning: Can not update address of interface $interface fwbuilder can not manage addresses of point-to-point interfaces yet" P2P_INTERFACE_WARNING="yes" return } 'BEGIN { split(IGNORED,ignored_arr); for (a in ignored_arr) {ignored_dict[ignored_arr[a]]=1;} } (/inet |inet6 / && $0 ~ SCOPE && !($2 in ignored_dict)) {print $2;}' | \ while read addr; test "$cmd" = "add" && { echo "# Adding ip address: $interface $addr" echo $addr | grep -q ':' && { $FWBDEBUG $IP addr $cmd $addr dev $interface } || { $FWBDEBUG $IP addr $cmd $addr broadcast + dev $interface } } echo "${addr}@$interface" done | sort } update_addresses_of_interface() { ignore_list=$2 set $1 interface=$1 shift FWB_ADDRS=$( Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 81 for addr in $*; clear_addresses_except_known_interfaces() echo "${addr}@$interface" done | sort { ) CURRENT_ADDRS_ALL_SCOPES="" CURRENT_ADDRS_GLOBAL_SCOPE=" " $IP link show dev $interface >/dev/null 2>&1 && { CURRENT_ADDRS_ALL_SCOPES=$(list _addresses_by_scope $interface 'scope *' "$ignore_list") CURRENT_ADDRS_GLOBAL_SCOPE=$ (list_addresses_by_scope $interface 'scope global' "$ignore_list") } || { echo "# Interface $interface does not exist" # Stop the script if we are not in test mode test -z "$FWBDEBUG" && exit $IP link show | sed 's/://g' | awk -v IGNORED="$*" \ 'BEGIN { split(IGNORED,ignored_arr); for (a in ignored_arr) {ignored_dict[ignored_arr[a]]=1;} } (/state/ && !($2 in ignored_dict)) {print $2;}' | \ while read intf; echo "# Removing addresses not configured in fwbuilder from interface $intf" $FWBDEBUG $IP addr flush dev $intf scope global $FWBDEBUG $IP link set $intf down done } check_file() { test -r "$2" || { echo "Can not find file $2 referenced by address table object $1" exit } } } diff_intf missing_address "$FWB_ADDRS" "$CURRENT_ADDRS_ALL_SCOPES" add diff_intf missing_address "$CURRENT_ADDRS_GLOBAL_SCOPE" "$FWB_ADDRS" del } check_run_time_address_table_files() { : } load_modules() { : OPTS=$1 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 82 MODULES_DIR="/lib/modules/`uname r`/kernel/net/" MODULES=$(find $MODULES_DIR name '*conntrack*' \! -name '*ipv6*'|sed -e 's/^.*\///' -e 's/\([^\.]\)\ */\1/') echo $OPTS | grep -q nat && { MODULES="$MODULES $(find $MODULES_DIR -name '*nat*'|sed -e 's/^.*\///' -e 's/\([^\.]\)\ */\1/')" epilog_commands() { echo "Running epilog script" } echo $OPTS | grep -q ipv6 && { MODULES="$MODULES $(find $MODULES_DIR -name nf_conntrack_ipv6|sed -e 's/^.*\///' -e 's/\([^\.]\)\ */\1/')" } for module in $MODULES; if $LSMOD | grep ${module} } >/dev/null; then continue; fi $MODPROBE ${module} || exit done } verify_interfaces() { : echo "Verifying interfaces: eth0 lo" for i in eth0 lo ; $IP link show "$i" > /dev/null 2>&1 || { log "Interface $i does not exist" exit } done } prolog_commands() { echo "Running prolog script" } run_epilog_and_exit() { epilog_commands exit $1 configure_interfaces() { : # Configure interfaces update_addresses_of_interface "lo 127.0.0.1/8" "" getaddr eth0 i_eth0 getaddr6 eth0 i_eth0_v6 getnet eth0 i_eth0_network getnet6 eth0 i_eth0_v6_network } script_body() { # ================ IPv4 # ================ Table 'filter', automatic rules # accept established sessions $IPTABLES -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state -state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m state -state ESTABLISHED,RELATED -j ACCEPT } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 83 # ================ Table 'filter', rule # set Policy # # Rule (eth0) # echo "Rule (eth0)" # # anti spoofing rule $IPTABLES -N In_RULE_0 # SSH Access to the host; useful ICMP # types; ping request $IPTABLES -N Cid4169X2512.0 for i_eth0 in $i_eth0_list test -n "$i_eth0" && $IPTABLES -A OUTPUT -d $i_eth0 -m state state NEW -j Cid4169X2512.0 for i_eth0 in $i_eth0_list test -n "$i_eth0" && $IPTABLES -A INPUT -i eth0 -s $i_eth0 -m state state NEW -j In_RULE_0 done for i_eth0 in $i_eth0_list test -n "$i_eth0" && $IPTABLES -A done $IPTABLES -A Cid4169X2512.0 -p icmp -m icmp icmp-type -j ACCEPT $IPTABLES -A Cid4169X2512.0 -p icmp -m icmp icmp-type 0/0 -j ACCEPT $IPTABLES -A Cid4169X2512.0 -p icmp -m icmp icmp-type 8/0 -j ACCEPT $IPTABLES -A Cid4169X2512.0 -p icmp -m icmp icmp-type 11/0 -j ACCEPT FORWARD -i eth0 -s $i_eth0 -m state -state NEW -j In_RULE_0 done $IPTABLES -A In_RULE_0 -j LOG -log-level info log-prefix "RULE -DENY " $IPTABLES -A In_RULE_0 -j DROP # $IPTABLES -A Cid4169X2512.0 -p icmp -m icmp icmp-type 11/1 -j ACCEPT $IPTABLES -A Cid4169X2512.0 -p tcp m tcp -m multiport dports 21,80,443,143,110,25,22 -j ACCEPT $IPTABLES -A INPUT -p icmp -m icmp icmp-type -m state state NEW -j ACCEPT # Rule (lo) # echo "Rule (lo)" # $IPTABLES -A INPUT -i lo -m state -state NEW -j ACCEPT $IPTABLES -A OUTPUT -o lo -m state state NEW -j ACCEPT # # Rule (global) # echo "Rule (global)" $IPTABLES -A INPUT -p icmp -m icmp icmp-type 0/0 -m state state NEW -j ACCEPT $IPTABLES -A INPUT -p icmp -m icmp icmp-type 8/0 -m state state NEW -j ACCEPT $IPTABLES -A INPUT -p icmp -m icmp icmp-type 11/0 -m state state NEW -j ACCEPT $IPTABLES -A INPUT -p icmp -m icmp icmp-type 11/1 -m state state NEW -j ACCEPT Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 84 $IPTABLES -A INPUT -p tcp -m tcp -m multiport dports 21,80,443,143,110,25,22 -m state state NEW -j ACCEPT # # Rule (global) # echo "Rule (global)" # for i_eth0 in $i_eth0_list : echo > /proc/sys/net/ipv4/ip_forward } reset_all() { : reset_iptables_v4 } test -n "$i_eth0" && $IPTABLES -A OUTPUT -p tcp -m tcp -d $i_eth0 -j REJECT reject-with tcp-reset done $IPTABLES -A INPUT -p tcp -m tcp -j REJECT reject-with tcp-reset for i_eth0 in $i_eth0_list block_action() { reset_all } test -n "$i_eth0" && $IPTABLES -A OUTPUT -d $i_eth0 -j REJECT done $IPTABLES -A INPUT -j REJECT # # Rule (global) # echo "Rule (global)" } # $IPTABLES -N RULE_4 $IPTABLES -A OUTPUT -d 123.30.145.24 -m state state NEW -j RULE_4 $IPTABLES -A RULE_4 -j LOG loglevel info log-prefix "RULE ACCEPT " $IPTABLES -A RULE_4 -j ACCEPT } stop_action() { reset_all $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT check_iptables() { IP_TABLES="$1" [ ! -e $IP_TABLES ] && return 151 NF_TABLES=$(cat $IP_TABLES 2>/dev/null) [ -z "$NF_TABLES" ] && return 152 return } status_action() { check_iptables "/proc/net/ip_tables_names" ret_ipv4=$? check_iptables "/proc/net/ip6_tables_names" ret_ipv6=$? [ $ret_ipv4 -eq -o $ret_ipv6 -eq ] && return ip_forward() { Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 85 [ $ret_ipv4 -eq 151 -o $ret_ipv6 -eq 151 ] && { echo "iptables modules are not loaded" } [ $ret_ipv4 -eq 152 -o $ret_ipv6 -eq 152 ] && { echo "Firewall is not configured" } exit RETVAL=$? ;; stop) stop_action RETVAL=$? ;; status) } # See how we were called # For backwards compatibility missing argument is equivalent to 'start' cmd=$1 test -z "$cmd" && { cmd="start" } case "$cmd" in start) log "Activating firewall script generated Sat Apr 11:50:39 2015 by huong" check_tools status_action RETVAL=$? ;; block) block_action RETVAL=$? ;; reload) $0 stop $0 start RETVAL=$? ;; interfaces) configure_interfaces prolog_commands check_run_time_address_table_files load_modules " " configure_interfaces verify_interfaces RETVAL=$? ;; reset_all test_interfaces) FWBDEBUG="echo" configure_interfaces RETVAL=$? ;; script_body ip_forward epilog_commands *) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 86 echo "Usage $0 [start|stop|status|block|reload|interfaces|test_i nterfaces]" ;; esac exit $RETV Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ... xử lý gói tin IP modul lọc gói tin Modul đƣợc xây dựng dựa kỹ thuật lọc gói Kỹ thuật lọc gói bao gồm kỹ thuật lọc tĩnh kỹ thuật lọc gói động Khái niệm lọc gói đƣợc dùng chung cho việc lọc dựa... bày có chọn lọc khái niệm tƣờng lửa kỹ thuật lọc gói tin, sử dụng hai kỹ thuật lọc gói tin tĩnh lọc gói tin động Thứ ba: Đƣa tốn xây dựng phần mềm thử nghiệm cho toán lọc gói tin IP với tƣờng... luồng gói tin tƣờng lửa lọc gói Hình cho thấy luồng gói tin di chuyển qua BTL lọc gói q trình xử lý gói tin (Proc IP) đƣợc thực tầng mạng Việc xử lý gói tin BTL đƣợc thực phần mềm xử lý gói tin IP