我有 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
- 您可以为此调整 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
...
...
...
- 您也可以使用 cron 选项卡(禁用 iptables 服务)
@reboot iptables-restore /etc/sysconfig/iptables @reboot iptables-restore /etc/sysconfig/iptables2