当前位置:首页 > 技术知识 > 正文内容

Linux系统iptables配置持久化的技巧

maynowei8个月前 (08-23)技术知识66


前言

iptables是Linux系统传统的防火墙配置工具,在老版本的RHEL/Centos6及以前的版本默认安装有iptables-services服务可以方便的进行iptables配置持久化,能在系统启动时自动加载 iptables 规则。但是到了RHEL/Centos7及以后的版本中并没有默认安装该服务,而且默认使用的防火墙配置工具变成了firewalld或者xftables,在这种新版linux环境如果你还是用iptables,是没有办法实现配置的持久化(重启后配置会消失)。

本文主要分享在现代linux系统(采用systemd)中,通过systemd自定义服务实现iptables配置持久化的一个技巧。如果你的环境
RHEL/Centos7/Rockylinux/Almalinux、ubuntu22.04及以后等新版本的linux,同时还希望使用iptables这种传统防火墙管理工具,本文分享的内容就比较适合你;但如果你在新版linux环境使用的firewalld、ufw、nft等现代防火墙工具就可以略过此文。

配置思路

本文使用的环境是Centos 7

因在Centos 7系统环境里,iptables的规则配置都是在内存中保留,一旦重启系统规则配置就会丢失。如果希望在系统重启后规则仍然自动生效,可以按如下思路:

1. 将iptables规则手动保存在自定义的文本文件中。

2. 编写自定义的一个关于iptabls配置保存和自启动的systemd服务,该服务配置为开启自启动。

配置方法

先进行iptables规则的配置(关于iptables的规则请结合实际场景配置),比如我的系统配置了如下规则:

将iptables规则保存到root目录下的iptables.txt文件(文件名称请结合实际配置)

重点来了,本文的重点!开始我们的关于iptables规则持久化的systemd服务编写,在/usr/lib/systemd/system目录下创建名为iptables.service的文件(请注意,要是后缀.service的文件),自定义systemd服务的内容写入iptables.service文件。

请注意,如果你不更改规则保存文件名称,可以直接复制以下我编写的服务文件内容即可。

cat > /usr/lib/systemd/system/iptables.service << EOF

[Unit]

Description= iptables #描述服务名称

After=network.target #表示在网络服务启动后启动此服务

[Service]

Type=oneshot #服务类型为 oneshot,表示该服务是一次启动任务

ExecStart=/bin/bash -c '
/usr/sbin/iptables-restore < /root/iptables.txt' # 启动加载规则文件内容

ExecStop=/bin/bash -c '/usr/sbin/iptables-save > /root/iptables.txt' #关机或者重启时自动保存规则到文件

RemainAfterExit=yes #适配 oneshot 类型服务管理需求

[Install]

WantedBy=multi-user.target #多用户模式启动时会加载 iptables 服务

EOF


最后配置服务自启动及查看服务运行状态

systemctl enable iptables.service #配置服务开机自启动

systemctl start iptables.service #启动服务

systemctl status iptables.service #查看服务运行状态

通过定义的systemd服务,实现的功能就是在系统关机时自动保存iptables规则到文件;系统开机时会自动加载规则文件的规则到内存运行。这样就实现了通过systemd服务方式对iptables规则的关机自动保存和开机自动加载。

相关文章

真来了,iOS 16.6 beta 利用,隐藏 Dock 栏

昨天提到!iOS 16.5 kfd 漏洞可以隐藏 Dock 栏消息,现在已经确定 iOS 16.6 beta 内测也是支持使用 kfd 漏洞,当然!也是支持隐藏 Dock 栏,主要验证该系统是否可用。...

关于异步信号安全(下面关于异步电路危害的描述错误的是)

线程安全与重入以及异步信号安全的区别. 可重入一定是线程安全的,但是线程安全不一定是可重入的. 引用别人的博客中的话吧.如下: http://blog.csdn.net/xiaofei0859/art...

大量类加载器创建导致诡异FullGC(类的加载器有什么用)

“ 由 GC 问题带你全面了解 JDK8 Metaspace”01—现象最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。首先查看机器上的日志,有调用第三方接口...

Oracle标准化部署手册(oracle19c客户端)

很久之前写过一篇11g的windows安装手册, 这次是19c的windows安装手册,面向没有数据库安装部署经验的开发人员或想学习数据库的新手。希望能给想从事dba的入门人员小小的帮助。 毕竟每个高...

Oracle中泄露“天机”的TNS(在oracle中发出的下列查询)

数据库的安全是长期存在的问题。在目前大量的数据泄露事件以及漏洞面前,大家看到的大都是SQl注入、越权操作、缓冲区溢出等这些具体漏洞。往往却忽视了造成这些问题的前提,黑客想要入侵数据库一定会尝试获取数据...

Oracle又双叕开始严查JDK,连夜提桶跑路

哈佛商业报道了最近几起北美的JDK许可问题公司用了来源不明的JDK,怕蹲里面,连夜提桶跑路The company uses JDK from unknown sources, and is afrai...