整理的Linux的IPtables资料,目前工作中基本用不到,记录一下。
iptables常用命令
1 2 3 4 5 6 7 8
| iptables -A 追加一条防火墙规则至链的末尾位置 iptables -I 插入一条防火墙规则至链的开头 iptables -L 查看iptables所有规则 iptables -n 以数字形式显示地址,端口等信息 iptables - -line-numbers 查看规则时,显示规则的行号 iptables -D 删除链内指定序号(或内容)的一条规则 iptables -F 清空所有规则 iptables -P 为指定链设置默认规则
|
iptables框架
iptables的4个表
1 2 3 4
| nat表(地址转换表) filter表(数据过滤表) raw表(状态跟踪表) mangle表(包标记表)
|
iptables的5个链
1 2 3 4 5
| INPUT链(入站规则) OUTPUT链(出站规则) FORWARD链(转发规则) PREROUTING链(路由前规则) POSTROUTING链(路由后规则)
|
iptables语法格式
1 2 3 4 5 6 7 8 9 10 11 12
| iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作] //注意事项与规律: //可以不指定表,默认为filter表 //可以不指定链,默认为对应表的所有链 //如果没有找到匹配条件,则执行防火墙默认规则 //选项/链名/目标操作用大写字母,其余都小写 ************************************************** //目标操作: // ACCEPT:允许通过/放行 // DROP:直接丢弃,不给出任何回应 // REJECT:拒绝通过,必要时会给出提示 // LOG:记录日志,然后传给下一条规则
|
示例
创建
1 2 3 4 5 6
| [root@localhost~]# iptables -t filter -A INPUT -p tcp -j ACCEPT //追加规则至filter表中的INPUT链的末尾,允许任何人使用TCP协议访问本机 [root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT //插入规则至filter表中的INPUT链的开头,允许任何人使用UDP协议访问本机 [root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT //插入规则至filter表中的INPUT链的第2行,允许任何人使用ICMP协议访问本机
|
查看
1 2 3 4 5 6 7 8 9 10
| [root@localhost ~]# iptables -nL INPUT //仅查看INPUT链的规则 target prot opt source destination ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 [root@localhost ~]# iptables -L INPUT --line-numbers //查看规则,显示行号 num target prot opt source destination 1 ACCEPT udp -- anywhere anywhere 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT tcp -- anywhere anywhere
|
删除
1 2 3 4 5 6 7 8 9 10 11
| [root@localhost ~]# iptables -D INPUT 3 //删除filter表中INPUT链的第3条规则 [root@localhost ~]# iptables -nL INPUT //查看规则,确认是否删除 [root@localhost ~]# iptables -F //清空filter表中所有链的防火墙规则 [root@localhost ~]# iptables -t nat -F //清空nat表中所有链的防火墙规则 [root@localhost ~]# iptables -t mangle -F //清空mangle表中所有链的防火墙规则 [root@localhost ~]# iptables -t raw -F //清空raw表中所有链的防火墙规则
|
设置默认
1
| [root@localhost ~]# iptables -t filter -P INPUT DROP
|
iptables防火墙过滤与转发
过滤条件
- 协议匹配 -p 协议名称
- 地址匹配 -s 源地址 -d 目标地址
- 接口匹配 -i 接受数据的网卡 -o 发送数据的网卡
- 端口匹配 - -sport 源端口号 –dport 目标端口号
- ICMP类型匹配 - -icmp-type ICMP 类型