太长了;博士 如何在 Centos 7 上保留我的 iptables?
根据Centos 5 文档当服务重新启动或停止时,我应该能够保留我的 iptables。我可以确认曾经是这样的情况,如果我没记错的话,那是很久以前在 Centos 7 上的情况了。
service iptables save
现在,除非我手动调用该命令,否则我无法保存任何 iptables 更改。
但是,由于我确实想保存计数器(即使用情况),我需要确保重新启动时保留最新的计数器。
我的/etc/sysconfig/iptables-config
看起来像这样:
IPTABLES_MODULES=""
IPTABLES_MODULES_UNLOAD="yes"
IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"
IPTABLES_SAVE_COUNTER="yes"
IPTABLES_STATUS_NUMERIC="yes"
IPTABLES_STATUS_VERBOSE="no"
IPTABLES_STATUS_LINENUMBERS="yes"
我用:yum info iptables iptables-services xtables-addons
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.coreix.net
* epel: epel.mirror.wearetriple.com
* extras: mirrors.coreix.net
* updates: mirrors.coreix.net
Installed Packages
Name : iptables
Arch : x86_64
Version : 1.4.21
Release : 18.0.1.el7.centos
Size : 1.5 M
Repo : installed
From repo : base
Summary : Tools for managing Linux kernel packet filtering capabilities
URL : http://www.netfilter.org/
License : GPLv2
Description : The iptables utility controls the network packet filtering code in the
: Linux kernel. If you need to set up firewalls and/or IP masquerading,
: you should install this package.
Name : iptables-services
Arch : x86_64
Version : 1.4.21
Release : 18.0.1.el7.centos
Size : 25 k
Repo : installed
From repo : base
Summary : iptables and ip6tables services for iptables
URL : http://www.netfilter.org/
License : GPLv2
Description : iptables services for IPv4 and IPv6
:
: This package provides the services iptables and ip6tables that have been split
: out of the base package since they are not active by default anymore.
Name : xtables-addons
Arch : x86_64
Version : 2.12
Release : 1.el7.lux
Size : 294 k
Repo : installed
From repo : lux
Summary : Extensions targets and matches for iptables
URL : http://xtables-addons.sourceforge.net
License : GPLv2 and LGPLv2
Description : Xtables-addons provides extra modules for iptables not present in the kernel,
: and is the successor of patch-o-matic. Extensions includes new targets like
: TEE, TARPIT, CHAOS, or modules like geoip, ipset, and account.
:
: This package provides the userspace libraries for iptables to use extensions
: in the xtables-addons-kmod package. You must also install the
: xtables-addons-kmod package.
更新#1:
我发现该iptables-config
文件非常严格,单个空格会破坏它,错误的空格会让解析器完全忽略它。重新安装并使用原始文件。
现在我面临的问题是类似的。service iptables stop
现在做节省。重新启动或关闭不是。
更新#2:
第一个问题肯定是iptables-config
文件。删除所有 iptables 相关文件/etc/sysconfig
并重新安装可以快速修复该问题。
但是,由于权限问题,iptables 似乎无法保存。
更新#3:
我错过了更改安全级别,而我通常会这样做。下面的命令禁用高级安全性并允许我保存在 iptables 中。
setenforce 0
它正在工作!
答案1
centos7 使用firewalld 作为 iptables 的前端。请点击此链接了解如何使用它:https://www.linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos
答案2
事实证明,一系列问题导致我的 iptables 无法保存,或者无法加载,或者保存并加载然后加载其他内容。
根据我的更新,我的主要问题是:
/etc/sysconfig/iptables-config
格式错误
/etc/sysconfig/iptables-config
是非常严格的。额外的空格会破坏命令或导致它完全忽略该命令。我重新安装了该软件包并编辑了该文件(删除后),以确保它是正确的。
IE
service iptables stop
yum -y install iptables iptables-services
rm -rf /etc/sysconfig/ipt*
yum -y reinstall iptables iptables-services
然后编辑该文件。
nano /etc/sysconfig/iptables-config
- 禁用强制执行(安全选项)
SELinux 强制执行已启用,并且不允许进行保存。我通过执行“停止”看到了这一点service iptables stop
,并注意到它无法保存在service iptables status -l
.然后我暂时禁用 SELinux 强制,setenforce 0
它允许我保存它们。我不推荐将此作为解决方案,您可能会找到更好的解决方案(禁用安全行为并不好)。
如何永久禁用:
nano /etc/sysconfig/selinux
然后将指令更改SELinux=enforcing
为SELinux=disabled
.
答案3
今天在 CentOS 7.8 中这仍然是一个问题。 这里是错误报告。
您可以禁用 SELinux,但这不是一个很好的解决方案。
在问题在上游得到解决之前,您可以使用以下步骤将自定义策略模块添加到 SELinux 中:
- 启用 SELinux 后,保存 iptables 几次,这将为以后的命令创建 SELinux 日志:
# /usr/libexec/iptables/iptables.init save
- 安装 ausearch 和 semodule 的软件包:
# yum install audit policycoreutils
- (可选)查看 SELinux 错误:
# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -i|tail -55
- 根据 chmod 的错误创建自定义 SELinux 策略模块,并将其导入 SELinux:
# ausearch -c 'chmod' --raw | audit2allow -M iptables_save_chmod
# semodule -i iptables_save_chmod.pp
参考