千家信息网

linux下软件防火墙iptables——规则的定义与删除是什么

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,了解linux下软件防火墙iptables--规则的定义与删除是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!准
千家信息网最后更新 2024年11月25日linux下软件防火墙iptables——规则的定义与删除是什么

了解linux下软件防火墙iptables--规则的定义与删除是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

准备工作

制定规则前,我们首先关闭firewalld服务、开启iptables服务,然后清除已有的规则。

# systemctl stop firewalld# systemctl start iptables# iptables -F# iptables -X# iptables -Z

新增规则链

关于iptables的添加规则链,选项非常繁多,下面我们看基本用法:

iptables [-t tables] -A|I 链名 [-i|o 网络接口] [-m state] [--state 数据包状态] \> [-p 网络协议]  [-s 源地址 --sport 端口范围] [-d 目标地址 --dport 端口范围] \> -j [ACCEPT|DROP|REJECT]

选项与参数:

  • -A|I 链名 A表示在已有规则后添加规则,而I则是在最前面插入规则

  • -i|o 网络接口 i表示数据包进入的那个网络接口,需要和INPUT或PREROUTING链配合使用;o表示数据包出去的那个接口,需和OUTPUT链配合使用

  • -p 网络协议 常见的有tcp、upd、icmp以及all

  • -m state 数据包的状态

  • --state 数据包状态 常见的状态有INVALID(无效的数据包)、ESTABLISHED(已经成功连接的状态)、NEW(新建立的数据包)、RELATED(新连接与现有连接相关联)

  • -s 源地址 地址可以是ip地址,如192.168.1.110 或网络地址192.168.1.0/24

  • -d 目的地址

  • -j 后面接操作,常见的有ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)

针对ip、网络、网卡接口的规则制定

下面,给出几个规则链案例。我们允许从192.168.1.110发来的数据、拒绝192.168.1.111发来的数据。

# iptables -A INPUT -s 192.168.1.110 -j ACCEPT# iptables -I INPUT -s 192.168.1.111 -j DROP# iptables -vnLChain INPUT (policy ACCEPT 33 packets, 3048 bytes) pkts bytes target     prot opt in     out     source               destination             0     0 DROP       all  --  *      *       192.168.1.111        0.0.0.0/0               0     0 ACCEPT     all  --  *      *       192.168.1.110        0.0.0.0/0           Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 18 packets, 1844 bytes) pkts bytes target     prot opt in     out     source               destination

允许192.168.1.0/24网络地址访问

# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT# iptables -vnLChain INPUT (policy ACCEPT 29 packets, 2328 bytes) pkts bytes target     prot opt in     out     source               destination             0     0 DROP       all  --  *      *       192.168.1.111        0.0.0.0/0               0     0 ACCEPT     all  --  *      *       192.168.1.110        0.0.0.0/0               0     0 ACCEPT     all  --  *      *       192.168.1.0/24       0.0.0.0/0           Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 15 packets, 1460 bytes) pkts bytes target     prot opt in     out     source               destination

思考一个问题,192.168.1.111的数据包是会被接受还是会拒绝。从INPUT第一条规则看是会被拒绝,但从最后一条看,会接受。答案是会被拒绝,当满足其中一条规则时,就不会再走下面的规则了,所以说规则链的顺序也是非常重要的。

继续看案例:只要是本地回环地址lo都允许

# iptables -A INPUT -i lo -j ACCEPT

针对端口的规则制定

将进入本地的21端口数据包都阻挡掉

# iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP

将1024至65534之间的端口都开放,可以用 端口号:端口号 来表示一段连续的端口号

# iptables -A INPUT -i eth0 -p tcp --dport 1024:65534 -j ACCEPT

下面来看两个个综合性的规则

本机的3306端口,不对192.168.1.0/24这个网络开放。

本机的ssh服务,不接受192.168.1.0/24这个网络的1024:65535端口的数据包

# iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3306 -j DROP# iptables -A INPUT -i etc0 -p tcp -s 192.168.1.0/24 \> --sport 1024:65535 --dport 22 -j DROP

针对数据包的连接状态的规则制定

数据包常见的状态有INVALID(无效的数据包)、ESTABLISHED(已经成功连接的状态)、NEW(新建立的数据包)、RELATED(新连接与现有连接相关联)。

针对ESTABLISHED以及RELATED状态的数据包全都接受,针对INVALID状态的数据包全部丢弃

# iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -m state --state INVALID -j DROP

删除规则链

删除规则链基本和添加规则链一致,只不过-A换成-D即可,下面我们一起来删除几条规则。

# iptables-save# Generated by iptables-save v1.4.21 on Sun Nov 15 22:36:41 2020*filter:INPUT ACCEPT [4:1920]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [16:1380]-A INPUT -s 192.168.1.111/32 -j DROP-A INPUT -s 192.168.1.110/32 -j ACCEPT-A INPUT -s 192.168.1.0/24 -j ACCEPT……# iptables -t filter -D INPUT -s 192.168.1.111/32 -j DROP# iptables -D INPUT -s 192.168.1.110/32 -j ACCEPT

注:以上关于iptables的设置只会保存到内存中去,重启服务后系统后,这些设置将消失。所以,只要不把自己阻挡在外情况下,请尽管练习吧

若想保存规则的话,请输入/usr/libexec/iptables/iptables.init save来保存。

感谢各位的阅读!看完上述内容,你们对linux下软件防火墙iptables--规则的定义与删除是什么大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

0