iptables设置访问规则

1、简介app

iptables是一个很强大的设置防火墙的工具,可使用它来限制全部对本机的访问,容许特定的主机、特定的端口才能访问本机,还能设置那些协议可以访问本机。总之,很强大,也很简单。tcp

2、filter chain原理简述工具

在开始以前,先看一下iptables的filter chain是如何工做的:spa

 

注释:当Input进来以后,先经过first chain,若是符合直接本机接收;不符合传给second chain,依次到最后一个chain,着了third不必定是最后的chain,在最后chain都不符合就将包丢弃,符合的交给下层处理。code

3、综合例子blog

经过下面的例子进行说明:ip

 

按箭头顺序来讲明:get

  1. 查看当前iptables配置好了的规则的命令。
  2. 拒绝全部的INPUT(访问),这里说明任何外来的主机都不能访问本机。

命令及详解:table

iptables -P INPUT DROP原理

#      -P:--policy(策略),chain target(过滤目标),全部的输入(INPUT)就是要过滤的目标。

#      DROP:表示丢弃全部输入的数据包,不接受任何数据请求(拒绝全部访问),这个全部是相对的,在咱们规则以内定义接收仍是接收的。

  1. 指向两行数据,这里表示容许192.168.1.113这个ip地址访问。

命令及详解:

iptables -A INPUT -p tcp -s 192.168.1.113 -j ACCEPT

iptables -A INPUT -p udp -s 192.168.1.113 -j ACCEPT

#       -A:--append chain,添加一条过滤规则,这里是INPUT,还有OUTPUT、FORWARD。

#       -p:--protocol,代表协议。例如tcp、udp,icmp

#       -s:--source,源地址。接ip地址

#       -j:--jump target,当这条规则符合时,直接跳转到目标,再也不进行下一条chain。目标有:ACCEPT、DROP、FORWARD、QUEUE

  1. 表示容许icmp协议type=8,code=0的访问,即ping。

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT

这里只是在icmp协议后面指定那个type和code

  1. 表示容许icmp协议type=11,code=0的访问,即traceroute。

iptables -A INPUT -p icmp --icmp-type 11 -s 0/0 -j ACCEPT

这里只是在icmp协议后面指定那个type和code

  1. 表示能够转发数据包
  2. 表示能够发送数据包

4、其余使用

l  删除某条规则:当须要删除某条规则时,有2种方法:

  1. 根据列表序号来删除。规则是有一个序号的,经过:

iptables -L -n -line-number

来查看序号,不过本人尝试了并没成功。知道序号以后经过:

iptables -D ”number“ 来删除

  1. 根据规则内容来删除。使用

iptables -S

来查看规则

 

而后经过:

iptables -D “content  -A这类不须要写” 来删除,例如:

iptables -D INPUT -s 192.168.1.113/32 -p tcp -j ACCEPT      来删除本条规则

l  指定端口

经过 –dport “port” 来指定端口

l  保存规则

iptables-save

能够将规则保存到一个文件中,例如:

iptables-save /etc/iptables.rules

保存好以后去网卡文件(/etc/network/interface)中指定

 

相关文章
相关标签/搜索