iptables是在数据包到主机后的第一层处理机制,我们可以根据数据包的属性(源IP,端口;目标IP,端口)进行筛选
iptables的3个通道
Chain INPUT (policy ACCEPT)(外部发给本机的数据包要经过的通道)
target prot opt source destination
Chain FORWARD (policy ACCEPT)(转发其他主机的数据包需要的通道,一般在nat转换,或主机做路由器时使用,一台主机要么是启用INPUT通道,要么启用 FORWARD通道 ) (/proc/sys/net/ipv4/ip_forward 0:不转发,1:转发)
target prot opt source destination
Chain OUTPUT (policy ACCEPT) (给别人的数据包)
iptables维护管理
增加一条规则
iptables -A INPUT -s 10.0.0.2 -p tcp --dport 22 -j DROP
iptables -A INPUT -s 10.0.0.2 -p tcp --dport 22 -j ACCEPT
查看所有规则
iptables -L
清空所有规则
iptables -F
删除一条记录
iptables -D INPUT -s 10.0.0.2 -p tcp --dport 22 -j DROP
iptables -P INPUT DROP 让所有INPUT都drop掉。如果你是通过ssh远程连接服务器,请慎用
不然你再也连不上你的主机了,可以先执行:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 先让22端口打开
常用参数说明:
-s 源IP
-d 目标ip
-p tcp|udp|icmp
--dport 目标端口 10:20 10到20端口
--sport 源端口
-j DROP|ACCEPT
! 非
-i eht0 从哪个网卡进去
-o eth0 从哪个网卡出去
iptables -A INPUT -s ! 10.0.0.2 -p tcp --dport 100:200 -j DROP
所有的增删动作最后会写到这个文件中
vim /etc/sysconfig/iptables