Linux 防火墙是什么,你需要它吗?| Linux 中国( 四 )


[root@node1 ~]# iptables -nL --line-numbers # 查看防火墙规则,显示每条规则的行号
 
# -t 指定filter表;-A 指向INPUT链的最后一行追加一条规则;
# -p 指进入本机的数据包,是通过tcp协议进入的;-j 指对数据包的操作,ACCEPT 允许通过
[root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
 
# -I 将规则插入到INPUT链的最前面;
# -p 指定数据包通过的协议为udp协议;
# -j ACCEPT允许满足条件的数据包通过
[root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
 
# 在filter表的INPUT链中的,第二条规则的前面插入一条规则
# 允许icmp协议的数据包进入本机
[root@localhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
 
# 清除防火墙的filter表中,INPUT链中的第三条规则(清除其他特定的规则,修改链后的数字即可)
[root@localhost ~]# iptables -D INPUT 3
[root@localhost ~]# iptables -F // 清空filter过滤表中的防火墙规则,filter是默认表
[root@localhost ~]# iptables -t nat -F // 清空nat表中的所有规则,【地址转换表】
[root@localhost ~]# iptables -t mangle -F // 清空mangle表中的所有规则,【包标记表】
[root@localhost ~]# iptables -t raw-F // 清空raw表中的所有规则,【状态跟踪表】
 
4、iptables高匹配条件
设置默认规则
- 所有链的初始默认规则均为ACCEPT
- 通过-P可以重置默认规则
 
匹配条件(需要取反条件时,用叹号!)
通用匹配
- 可直接使用,不依赖于其他条件或扩展
- 包括网络协议、IP地址、网络接口等条件
协议匹配:-p 协议名
地址匹配:-s 源地址、-d 目的地址
接口地址:-i 收数据的网卡、-o 发数据的网卡
隐含匹配
- 要求以特定的协议匹配作为前提
- 包括端口、TCP标记、ICMP类型等条件
端口匹配:--sport 源端口、--dport 目标端口
ICMP类型匹配:--icmp-type ICMP类型
 
[root@localhost ~]# iptables -P FORWARD DROP // 将FORWARD的默认规则设置为DROP,丢弃所有数据包
#-s 当192.168.2.254的真机; -p 通过tcp协议;--dport 访问本机的22端口;
#-j 防火墙允许访问
【Linux 防火墙是什么,你需要它吗?| Linux 中国】#--dport 端口必须和协议组合起来使用,单独使用报错
#-p 协议可以单独使用,也可以和端口组合起来使用
[root@localhost ~]# iptables -A INPUT -s 192.168.2.254 -p tcp --dport 22 -j ACCEPT
 
*********从进站的角度,设置规则,本机可以ping其他主机,其他主机不可以ping本机********
#插入一条规则:想要实现禁止其他所有主机通过icmp协议ping本机,但本机可以ping通其他主机
[root@localhost ~]# iptables -I INPUT -p icmp -j REJECT
#其他主机ping本机时,通过icmp协议,发送过来的请求 echo-request,直接丢弃
[root@localhost ~]# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
 
#本机ping其他主机时,其他主机返回的数据包类型不是echo-request的,都接受
[root@localhost ~]# iptables -A INPUT -p icmp ! --icmp-type echo-request -j ACCEPT
 
#本机ping其他主机时,发送数据包的类型为 echo-request,防火墙通过,可以发送出去
[root@localhost ~]# iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p icmp ! --icmp-type echo-request -j DROP




推荐阅读