iptables是一个用于管理防火墙策略的命令,同时也是一个基于内核级别的防火墙服务,用户可以基于它对数据包进行过滤操作,拒绝掉危险的外部请求流量,保护内网的安全。iptables命令默认仅支持IPv4协议,如需支持IPv6协议,则需使用ip6tables命令。
语法格式:iptables 参数 对象
常用参数:
-A | 向规则链中追加条目 | -L | 显示规则链中的已有条目 | |
-c | 初始化包计数器和字节计数器 | -N | 创建新的用户自定义规则链 | |
-D | 从规则链中删除条目 | -o | 设置数据包离开本机时所使用的网络接口 | |
-E | 重命名指定的用户自定链 | -p | 设置要匹配数据包的协议类型 | |
-F | 清除规则链中的现有条目 | -P | 设置规则链中的默认目标策略 | |
-t | 设置要管理的表 | -R | 替换规则链中的指定条目 | |
-h | 显示帮助信息 | -s | 设置要匹配数据包的源IP地址 | |
-i | 设置数据包进入本机的网络接口 | -v | 显示执行过程详细信息 | |
-j | 设置要跳转的目标 | -X | 删除指定的用户自定链 | |
-I | 向规则链中插入条目 | -Z | 清空规则链中的包计数器和字节计数器 |
参考示例
显示当前防火墙策略中全部的过滤表信息:
[root@linuxcool ~]# iptables -L
显示当前防火墙策略中指定的NAT表信息:
[root@linuxcool ~]# iptables -L -t nat
禁止指定的远程主机访问本地全部的服务(通通禁止):
[root@linuxcool ~]# iptables -I INPUT -s 192.168.10.10 -j DROP
禁止指定的远程主机访问本地的某个端口,但允许访问其余端口:
[root@linuxcool ~]# iptables -I INPUT -s 192.168.10.10 -p tcp --dport 22 -j DROP