防火墙功能:保护、隔离
iptables框架: 4表5链
状态跟踪表 raw | 包标记表mangle | 数据过滤表 filter | 地址转换表 net |
---|---|---|---|
PREROUTING链 路由前规则 | PREROUTING链 路由前规则 | INPUT链 入站规则 | PREROUTING链 路由前规则 |
OUTPUT链 出站规则 | POSTROUTING链 路由后规则 | OUTPUT链 出站规则 | POSTROUTING链 路由后规则 |
INPUT链 入站规则 | FORWORD链 转发规则 | OUTPUT链 出站规则 | |
OUTPUT链 出站规则 | |||
FORWORD链 转发规则 |
命令格式:iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
# 常用选项
#添加规则
-A #追加一条防火墙规则至链的结尾
-I #插入一条防火墙规则至链的开头
#查看规则
-L #查看iptables的所有规则
-n #以数字形式显示地址、端口等的信息
--line-numbers #查看规则时显示规则的行号
#删除规则
-D #删除链内指定的序号(或者内容)的一条规则
-F #清空所有规则
#默认规则
-p #为指定的链设置默认规则
#目标操作
ACCEPT: 允许通过/放行
DROP: 直接丢弃,不给出任何回应
REJECT: 拒绝通过
LOG: 记录日志,然后传给下一规则
#注意事项
1.可以不指定表,默认为filter数据过滤表
2.如果没有找到匹配的条件,则执行iptables的默认规则
3.选项、链名和目标操作用大写字母,其余的用小写
#拒绝icmp访问(禁ping)
[root@xnj50 ~]# iptables -t filter -I INPUT -p icmp -j REJECT
#查看规则
[root@xnj50 ~]# iptables -t filter -L -n --line-numbers
#删除一条规则
[root@xnj50 ~]# iptables -t filter -D INPUT 1
#清空所有规则
[root@xnj50 ~]# iptables -F
#清空一张表的规则
[root@xnj50 ~]# iptables -t nat -F
[root@xnj50 ~]# iptables -t filter -F
#为filter表INPUT链添加规则,允许任何人使用TCP协议访问本机
[root@xnj50 ~]# iptables -t filter -I INPUT -p tcp -j ACCEPT
#为filter表INPUT链添加规则至第一行,允许任何人使用UDP协议访问本机
[root@xnj50 ~]# iptables -t filter -I INPUT -p udp -j ACCEPT
#为filter表INPUT链添加规则至第二行,允许任何人使用ICMP协议访问本机
[root@xnj50 ~]# iptables -t filter -I INPUT 2 -p icmp -j ACCEPT
#查看所有规则
[root@xnj50 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
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
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#查看INPUT链规则
[root@xnj50 ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
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