网络通讯 · 2022年02月20日 0

iptables命令 – 内核包过滤与NAT管理工具

iptables命令是linux系统中在用户空间中运行的运来配置内核防火墙的工具。它可以设置,维护和检查linux内核中的ipv4包过滤规则和管理网络地址转换(NAT)。 ipatbles命令仅仅是用户空间的linux内核防火墙管理工具,真正的功能实现是由linux内核模块实现的。在配置服务器策略前必须加载相应的内核模块。在linux的2.6内核中仅支持ipatbles。 ipatbles命令仅支持ipv4,如果使用的IP协议是ipv6则需要使用专门的管理工具ip6tables。 **语法格式:** iptables [参数] **常用参数:** | -t<表> | 指定要操纵的表 | | -------------- | -------------------------------------------------------- | | -A | 向规则链中追加条目 | | -D | 从规则链中删除条目 | | -I | 向规则链中插入条目 | | -R | 替换规则链中的相应条目 | | -L | 显示规则链中的已有条目 | | -F | 清除规则链中的现有条目。不改变规则链的默认目标策略 | | -Z | 清空规则链中的数据包计数器和字节计数器 | | -N | 创建新的用户自定义规则链 | | -P | 定义规则链中的默认目标(策略) | | -h | 显示帮助信息 | | -p<协议> | 指定要匹配的数据包的协议类型 | | -s<源地址> | 指定要匹配的数据包的源IP地址 | | -j<目标> | 指定要跳转的目标 | | -i<网络接口> | 指定数据包进入本机的网络接口 | | -o<网络接口> | 指定数据包离开本机做使用的网络接口 | | -c<包计数> | 在执行插入、追加和替换操作时初始化包计数器和字节计数器 | **参考实例** 显示内核当前的filter表: ``` [root@anycode ~]# iptables -L ``` 显示内核当前的nat表: ``` [root@anycode ~]# iptables -L -t nat ``` 禁止本机对192.168.20.20地址的访问: ``` [root@anycode ~]# iptables -t filter -A OUTPUT -d 192.168.20.20 -j DROP ``` 显示filter表的OUTPUT链: ``` [root@anycode ~]# iptables -L OUTPUT -t filter ```