一、IPtables的实质
iptables其实不是真正的防火墙,我们可以将它理解成一个客户端代理,通过这个代理,我们将安全的设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,即netfilter。
所以,netfilter才是防火墙真正的安全框架,它位于内核空间中。 而iptables只是一个命令行工具,位于用户空间中,我们利用这个工具操作真正的框架。
netfilter/iptables 组成Linux平台下的包过滤防火墙,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
二、iptables基础
iptables是按照规则来办事的,规则就是网络管理员预定义的条件,当数据包的头符合一定的条件时,便会依照对应的规则处理这个数据包。这些规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目标地址、传输协议(如TCP、UDP、ICMP等)和
服务类型(如HTTP、FTP、SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如:放行(accept)、拒绝(reject)和丢弃(drop)等。
三、查看、添加和删除规则的基本命令
1.查看filter表
iptables -L -n --line-number //--line-number可以显示规则序号,在删除的时候比较方便
2.删除iptables规则
iptables -D INPUT 3 //删除input的第3条规则
iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则
iptables -F INPUT //清空 filter表INPUT所有规则
iptables -F //清空所有规则
iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则
3.添加iptables规则
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口
iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT //只允许127.0.0.1访问6379端口
iptables -A INPUT -p TCP --dport 6379 -j REJECT //其他ip访问6379端口全部拒绝