ubuntu22.04 下 iptables规则保存,持久化保存规则

使用 iptables命令定义的规则,手动删除前,其生效期限为 kernel 存活期限,当系统重启之后,定义的规则会消失。

iptables持久化方案,如何让防火墙规则重启后依旧有效?

在这里插入图片描述

  • 推荐使用 iptables-persistent 工具:
#首先安装
apt install iptables-persistent
#保存当前设置的iptables防火墙规则,
/etc/init.d/netfilter-persistent save
#重新载入防火墙规则
netfilter-persistent reload
#保存的规则文件路径如下:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
  • 原理:iptalbes-persistent save 和 reload 脚本内调用的命令
    • netfilter-persistent save
    • netfilter-persistent reload
save_rules()
{
    if [ ! "${IPTABLES_SKIP_SAVE}x" = "yesx" ]; then
        touch /etc/iptables/rules.v4
        chmod 0640 /etc/iptables/rules.v4
        iptables-save > /etc/iptables/rules.v4
    fi
}

load_rules()
{
    if [ "${IPTABLES_RESTORE_NOFLUSH}x" = "yesx" ]; then
        NOFLUSH='--noflush'
    else
        NOFLUSH=''
    fi

 #load IPv4 rules
    if [ ! -f /etc/iptables/rules.v4 ]; then
        echo "Warning: skipping IPv4 (no rules to load)"
    else
        iptables-restore $NOFLUSH < /etc/iptables/rules.v4
    fi
}

命令行实现

1. 保存现有规则导出到文件:
iptables-save > /etc/iptables/rules.v4   
2. 加载保存的规则:	
iptables-restore < /etc/iptables/rules.v4
3. 实现开机自动加载规则:
 rocky: vim /etc/rc.d/rc.local  增加如下行:
 iptables-restore < /etc/iptables/rules.v4
ubuntu 中没有 rc.local文件,要自行在/etc目录下创建
vim /etc/rc.local
#
#有时候会因为依赖关系 ,无法成功开机加载配置。
#建议使用 service管理启动或使用上面的iptables-persistent 工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值