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