iptables学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables学习相关的知识,希望对你有一定的参考价值。

  iptables由4表、5链和用户在链内写入的各种规则所组成。(iptables(/etc/sysconfig/iptables  /sbin/iptables))

  1、表:容纳各种规则链;表是按照功能分的类,具体功能如下:
  (1)raw表:用来决定是否对数据包进行状态跟踪。(不常用)
  (2)mangle表:为数据包设置标记,有ACK、SYN、FIN、RST、PSH、URG等标记。(不常用)
  (3)nat表:修改数据包的IP地址、端口等信息。(网关型防火墙常用)
  (4)filter表:确定是否放行数据包。(常用)

  2、链:容纳各种防火墙规则;链是按照时机分的类。
  (1)input:处理入站请求包
  (2)output:处理出站包(就是响应、应答包)
  (3)forward:处理转发数据包,实现不同网段间的通信
  (4)prerouting:在包做路由选择之前应用此链的规则
  (5)postrouting:在数据包做路由选择之后应用此链的规则

    3、LOG:在/var/log/messages文件中记录日志信息,然后将包传给下一条规则,防火墙规则的"匹配即停止"对于log操作来说是一个特例,因为log只是一种辅助动作,并没有真正处理包。

    4、查询规则
     iptables -nL INPUT --line-number(以数字形式查看filter表INPUT链中的所有规则,并显示规则序号)
     iptables -t filter -L INPUT -vn  (以数字形式详细显示filter表INPUT链的规则)
   iptables -p icmp -h (查看ICMP类型)

    5、例子
     iptables -t filter -A INPUT -p tcp -j ACCEPT(在filter表的INPUT链中最后一个规则后面添加一个新的规则)

     iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT (在filter表INPUT链第二行插入规则,允许tcp的80端口通过)

     iptables -D INPUT 3(删除filter表中INPUT链的第三条规则)

     iptables -t raw -F(清空raw表中所有链内的规则)

     iptables -F OUTPUT(清空filter表output链内所有规则)

     iptables -A FORWARD ! -p icmp -j ACCEPT(除了icmp协议的数据包,别的协议的包都能转发)

     iptables -A INPUT -p tcp --dport 20:23 -j ACCEPT(一般是主机型防火墙设置的,我们电脑的20到23端口可以被访问)

     iptables -A INPUT -p icmp --icmp-type 8 -j DROP  (别人ping我主机的请求被丢弃,8代表请求)

   iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT (我ping别人时,回来的包被允许(一去一回才知道ping没ping通),0带表回来的icmp包)

   iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT(3也是代表请求,主机不可达,不常用)

     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)

     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 -A INPUT -p tcp -s ip1/32 --dport 22 -j ACCEPT  (允许SSH)

 

以上是关于iptables学习的主要内容,如果未能解决你的问题,请参考以下文章

python 机器学习有用的代码片段

学习笔记:python3,代码片段(2017)

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

PHP必用代码片段

iptables

Linux学习(二十八)iptables iptables规则语法