Iptables标准脚本构成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
[root@localhost~]# cat iptables.sh #!/bin/bash #this is a iptables rule script ####################变量定义#################### eth0="172.16.16.1" #外网接口地址 eth1="192.168.10.1" #内外接口地址 ip="192.168.10.0/24" #内网地址范围段 website="192.168.10.2" #发布的网站地址 mode="/sbin/modprobe" #modprobe命令的路径 ctl="/sbin/sysctl" #sysctl命令路径 ipt="/sbin/iptables" #iptables命令路径 ####################加载内核模块#################### $mode ip_tables $mode ip_conntrack $mode iptable_filter $mode iptable_mangle $mode iptable_nat $mode ipt_LOG $mode ipt_limit $mode ipt_state $mode ip_conntrack #必选模块 $mode ipt_iprange $mode xt_tcpudp $mode xt_multiport $mode xt_mac $mode ip_nat_ftp #可选模块 ####################调整PROC参数 #################### $ctl -w net.ipv4.ip_forward=1 > /dev/null #打开路由转发功能 $ctl -w net.ipv4.ip_default_ttl=128 > /dev/null #修改icmp响应超时 $ctl -w net.ipv4.icmp_echo_ignore_all=1 > /dev/null #拒绝响应icmp请求 $ctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null #拒绝响应icmp广播 $ctl -w net.ipv4.tcp_syncookies=1 > /dev/null #启用syn、cookie机制 $ctl -w net.ipv4.tcp_syn_retries=3 > /dev/null #最大syn请求重试次数 $ctl -w net.ipv4.tcp_synack_retries=3 > /dev/null #最大ack确认重试次数 $ctl -w net.ipv4.tcp_fin_timeout=60 > /dev/null #tcp连接确认重试次数 $ctl -w net.ipv4.tcp_max_syn_backlog=3200 > /dev/nullsyn #请求的队列长度 ####################默认规则定义#################### $ipt -t filter -F $ipt -t nat -F $ipt -t mangle -F $ipt -t raw -F #清空四个表中的所有规则 $ipt -P INPUT DROP $ipt -P FORWARD DROP $ipt -P OUTPUT DROP #设置filter表中的默认规则 ####################自定义规则定义#################### $ipt -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT $ipt -A OUTPUT-s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT $ipt -A INPUT -p icmp --icmp-type 0 -j ACCEPT $ipt -A INPUT -s 172.16.16.1 -d 192.168.10.1 -p tcp --dport 22 -j ACCPET $ipt -A OUTPUT -d 172.16.16.1 -p tcp --sport 22 -j ACCPET |