iptables-规则和常用匹配的管理

iptables-学习目录

1、什么是规则

数据包的过滤基于规则。而规则由匹配条件+动作组成

2、iptables命令介绍

2.1、语法

iptables [-t表名] 选项 [链名] [规则] [动作] ,操作规则时的考量点:
1)、要实现什么功能:判断添加到哪个表上;
2)、报文流经的路线:判断添加到哪个链上;

2.2、参数介绍

iptables,选项          含义                                示例
-t, --table           指定要操作的表(默认filter)         iptables -t filter
-A, --append          追加一条规则至链的末尾               iptables -t filter -A INPUT
-I, --insert          插入一条规则至链的顶部               iptables -t filter -I INPUT
-D, --delete          指定删除一条规则                     iptables -t filter -D INPUT 1
-R, --replace         替换选定链中的规则                   iptables -t filter -R INPUT
-S, --list-rules      打印选定链中的所有规则               iptables -t filter -S
-F, --flush           清空链中的所有规则                   iptables -t filter -F
-Z, --zero            将所有链中的数据包和字节计数器归零     iptables -t filter -Z
-N, --newchain        创建自定义名称规则链                 iptables -N New_Rules
-E, --renamechain     给自定义链修改名称                   iptables -E Old_Rules New_Rules
-X, --deletechain     删除自定义链                        iptables -X Rules_Name
-P, --policy          给链设定默认策略                     iptables -t filter -P DROP

3、iptables安装

yum install iptables-services -y
systemctl start iptables
systemctl enable iptables

4、规则管理

4.1、查询规则

]# iptables -t filter -L -n -v --line-numbers

-t  指定表明
-L 查看详情
-n 不反解
-v 详细信息
-line-numbers 显示规则编号

4.2、修改规则

4.2.1、需求

修改规则,拒绝其他任何主机 ping 通本机。

4.2.2、查询当前的规则

]# iptables -t filter  -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0    # 编号为2       
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
...

4.2.3、修改规则

iptables -t filter -R INPUT 2 -p icmp -j DROP

4.2.4、查询修改后规则

]# iptables -t filter  -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2    DROP       icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

4.3、删除规则

4.3.1、需求

删除icmp规则

4.3.2、方法一:根据规则的编号去删除规则

iptables -t filter -D INPUT 2

4.3.3、方法二:根据具体的匹配条件与动作删除规则

iptables -t filter -D  INPUT -p icmp -j DROP

4.4、添加规则

4.4.1、允许其他任何主机 ping 通本机

iptables -t filter -I INPUT -p icmp -j ACCEPT

4.5、保存规则

4.5.1、默认规则持久化保存位置

/etc/sysconfig/iptables

4.5.2、保存规则

iptables-save >/etc/sysconfig/iptables

4.6、恢复规则

iptables-restore </etc/sysconfig/iptables

5、iptables基本匹配

5.1、iptables匹配参数

条件参数                                    含义
[!] -p, --protocol protocol                 指明需要匹配的协议,如icmp、udp、tcp
[!] -s, --source address[/mask][,...]       指定匹配源地址,如有多个可以逗号分隔
[!] -d, --destinationaddress[/mask][,...]   指定匹配目标地址,如有多个可以逗号分隔
[!] --source-port,--sport port[:port]       指定源端口
[!] --destination-port,--dport port[:port]  指定目标端口
[!] -i, --in-interface name                 接收数据包的接口名称
[!] -o, --out-interface name                发送数据包的接口名称
-m, --match match                           执行需要使用的匹配项,属于扩展匹配
-j, --jump target                           执行匹配规则后的动作、ACCEPT、DROP、REJECT等

5.2、iptables匹配场景

5.2.1、仅允许 10.0.0.10 访问 10.0.0.200 服务器的 80 端口、其他地址全部拒绝

iptables -t filter -I INPUT -s 10.0.0.10 -d 10.0.0.200 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -d 10.0.0.200  -p tcp --dport 80 -j DROP

5.2.2、所有来访问本机的协议,属于TCP协议的我们通通都放行

iptables -t filter -I INPUT -p tcp -j ACCEPT
iptables -t filter -A INPUT -j DROP

5.2.3、凡是由本机发出的TCP协议报文,都允许出去,其他协议不行

iptables -I OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -j DROP

5.2.4、禁止其他主机从 eth0 像本机发送 ping 请求

iptables -t filter -i eth0 -p icmp -j DROP

5.2.5、允许从本机发送 ping 请求,其他任何协议都不允许

iptables -I OUTPUT -p icmp -j ACCEPT
iptables -I OUTPUT -j DROP

 

posted @ 2023-05-09 14:37  小粉优化大师  阅读(57)  评论(0编辑  收藏  举报