码迷,mamicode.com
首页 > 其他好文 > 详细

iptables学习

时间:2017-03-10 23:48:57      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:转换   etc   ping   ssh   inpu   0.11   查看   pos   out   

  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学习

标签:转换   etc   ping   ssh   inpu   0.11   查看   pos   out   

原文地址:http://www.cnblogs.com/sprinng/p/6533555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!