LINUX高级应用之IPTABLES 实例分析

#------------------------------- ACCEPT IP -------------------------------
iptables -F  
#首先我们知道 -F 是清除的意思,所以第一条的作用就是把 FILTRE TABLE 的所有链的规则都清空
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#在 FILTER TABLE 的 INPUT 链 匹配源地址是172.20.20.1的主机,状态分别是NEW,ESTABLISHED,RELATED 的都放行。
iptables -A INPUT -s 127.0.0.1/32 -m state --state NEW,ESTABLISHED -j ACCEPT
#这个也是同理,只不过是源地址发生了改变。
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
#我们发现多了几个选项,-p 指定协议,-m 指定模块,multiport模块的作用就是可以连续匹配多各不相邻的端口号。完整的意思就是源地址是172.20.20.1的主机,状态分别是NEW,ESTABLISHED,RELATED的,TCP协议,目的端口分别为123 和 110 的数据包都可以通过。
iptables -A INPUT -s 172.20.22.0/24 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
#这条语句也是一样的。
iptables -A INPUT -s 172.20.1.69/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 172.20.33.173/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
#iptables -A INPUT -s 172.20.1.249/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 172.18.185.88/25 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 172.18.218.88/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 172.18.205.88/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT

#iptables -A INPUT -s 172.20.9.187 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 1230,110 -j ACCEPT
#iptables -A INPUT -s 172.20.12.157 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 1230,110 -j ACCEPT

#-------------------------------- DROP IP --------------------------------
#这里我要说一下默认策略的问题,默认策略通过 -P DROP 来指定,系统默认是ACCEPT。由于系统默认是放行,我为了达到限制的目的,所以就要在最后加上一条规则 DROP 掉没经过允许就访问我的123和110端口的人。
iptables -A INPUT -s 0/0 -m state --state NEW -p tcp -m multiport --dport 123,110 -j DROP
#这句意思为源地址是0/0的 NEW状态的的TCP数据包都禁止访问我的123和110端口。
#iptables -A INPUT -s ! 172.20.89.0/24 -m state --state NEW -p tcp -m multiport --dport 1230,110 -j DROP
#“!”号的意思 取反。就是除了172.20.89.0这个IP段的地址都DROP。
#-------------------------------NAT IP--------------------------------------
#以下操作是在 NAT TABLE 里面完成的。请大家注意。
#还有在 NAT TABLE 里面我门常做的动作有 SNAT 和 DNAT 分别叫源地址转换和目的地址转换。我们学校就是用SNAT来实现,提供我们学生访问户联网的共享。
iptables -t nat -F
iptables -t nat -A PREROUTING -d 192.168.102.55 -p tcp --dport 90 -j DNAT --to 172.20.11.1:800
#-A PREROUTING 指定在路由前做的。完整的意思是在 NAT TABLE 的路由前处理,目的地为192.168.102.55 的 目的端口为90的我们做DNAT处理,给他转向到172.20.11.1:800那里去。
iptables -t nat -A POSTROUTING -d 172.20.11.1 -j SNAT --to 192.168.102.55
#-A POSTROUTING 路由后。意思为在 NAT TABLE 的路由后处理,凡是目的地为 172.20.11.1 的,我们都给他做SNAT转换,把源地址改写成 192.168.102.55 。
#iptables -t nat -A PREROUTING -s 0/0 -p tcp --dport 9065 -j DNAT --to 172.20.77.252
#同理
#iptables -t nat -A POSTROUTING -s 0/0 -p tcp --dport 9065 -j SNAT --to 192.168.102.55
#同理
#iptables -t nat -A PREROUTING -s 172.20.23.1 -d 192.168.102.12 -p tcp --dport 25 -j DNAT --to 192.168.102.12:22
#同理
#------------------------------------------------------------------------

你可能感兴趣的:(路由交换技术基础,linux,input,tcp,table,filter)