Iptables是管理Netfilter的唯一工具,Netfilter直接嵌入在Linux内核,没有守护进程,在OSI模型的第2、3、4层(数据链路层,网络层和应用层)插入策略。因为他只读取数据包头,不会给信息流量增加负担,也无需进行验证,因此过滤的速度非常快。
iptables一共有三张表和五条链
三张表分别是:filter nat mangle
filter 这个表主要执行数据包过滤。
NAT 主要进行网络地址转换。
mangle用于修改一些特殊的规则。
五条链分别是:prerouting input forward output postrouting
prerouting 刚到达的数据包
input 目标为本机的数据包
foward 需要通过本机进行转发的数据包
output 由本机产生需要向外转发的数据包
postrouting 即将离开的数据包
iptables 规则
iptables -t filter -A input -s 192.168.2.0 -j accept
解释:-t 指定表 -A添加一条规则 -j 对数据包的操作 还可以添加-dport目标端口 -p 协议
意味将来自192.168.2.0的input链包全部允许
注意:一般如果不指定表默认的就是对filter表进行操作
查看某个链或者表中的规则
iptables -L 也可以用-t指定表
注意,修改了iptables设置就必须重启iptables服务,重启的方法有两种:
/etc/init.d/iptables restart
service iptables restart
这样iptables才会生效
iptables -F 删除规则 删除filter表中所有的规则
iptables -t nat -F PORTROUTING 删除nat表中PORTROUTING链中的所有规则。
最常用的几条规则列出如下:
设置回环允许规则,没有这个规则好多服务不能启动:
iptables –A INPUT –i lo –j ACCETP 允许本地回环接口
iptables –A INPUT –p tcp --dport 20:21 –j ACCEPT 开放FTP的20、21端口
iptables –A INPUT –P tcp --dport 80 –j ACCEPT 开放http的80端口。
iptables –I INPUT –p tcp –dport 22 –j ACCEPT 开放SSH服务的22端口。
我们讲师曾经说过,iptables是表的容器,表示链的容器,链是规则的容器,之前还不太懂,现在是知道了这句话的意思。
转载于:https://blog.51cto.com/buertu/1360866