两个保存了 iptables 规则的文件

两个保存了 iptables 规则的文件

我有 CentOs,这是我保存的所有规则 /etc/sysconfig/iptables。我想创建另一个包含规则的文件,该文件也将从 systemctl start iptables.service 加载。你知道我该怎么做吗?

也许我可以在“/etc/sysconfig/iptables”中做类似“include /etc/sysconfig/iptables2”的事情?

答案1

您可以创建一个加载第二个文件的 systemd 单元,并在您放置的单元依赖项中:

After=iptables.service

一旦启用,它将在启动时自动启动 iptables.service 。如果您想让它在每次重新启动服务时运行,您可以PartOf使用After

答案2

也许您可以有一个启动脚本并在其上恢复两个规则文件?

喜欢/etc/init.d/load-iptables-rules

#!/bin/sh
iptables-restore /etc/sysconfig/iptables
iptables-restore /etc/sysconfig/iptables2

答案3

  1. 您可以为此调整 iptables-service init 脚本

/usr/libexec/iptables/iptables.init

#!/bin/bash
#
# iptables  Start iptables firewall
#
# chkconfig: 2345 08 92
# description:  Starts, stops and saves iptables firewall
#
# config: /etc/sysconfig/iptables
# config: /etc/sysconfig/iptables-config
#
### BEGIN INIT INFO
# Provides: iptables
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop iptables firewall
# Description: Start, stop and save iptables firewall
### END INIT INFO

# Source function library.
. /etc/init.d/functions

IPTABLES=iptables
IPTABLES_DATA=/etc/sysconfig/$IPTABLES
IPTABLES_FALLBACK_DATA=${IPTABLES_DATA}.fallback
IPTABLES_CONFIG=/etc/sysconfig/${IPTABLES}-config
IPTABLES_CONFIG2=/etc/sysconfig/${IPTABLES}-config2  # your second iptables file
...
...
# Load firewall configuration.
[ -f "$IPTABLES_CONFIG" ] && . "$IPTABLES_CONFIG" && . "$IPTABLES_CONFIG2" # load your file
...
...
...
  1. 您也可以使用 cron 选项卡(禁用 iptables 服务)
@reboot iptables-restore /etc/sysconfig/iptables  
@reboot iptables-restore /etc/sysconfig/iptables2

相关内容