介绍
在本实验中,你将学习如何使用 iptables-save
命令在 Linux 系统上备份和恢复 iptables 防火墙规则。实验内容涵盖了 iptables-save
的用途和功能、如何备份和恢复防火墙规则,以及如何使用 Systemd 服务自动化这一过程。对于需要管理和维护防火墙配置的网络管理员和安全专业人员来说,这是一项非常有价值的技能。实验提供了实际示例和逐步指导,帮助你掌握 iptables-save
的使用,以满足你的网络和通信需求。
在本实验中,你将学习如何使用 iptables-save
命令在 Linux 系统上备份和恢复 iptables 防火墙规则。实验内容涵盖了 iptables-save
的用途和功能、如何备份和恢复防火墙规则,以及如何使用 Systemd 服务自动化这一过程。对于需要管理和维护防火墙配置的网络管理员和安全专业人员来说,这是一项非常有价值的技能。实验提供了实际示例和逐步指导,帮助你掌握 iptables-save
的使用,以满足你的网络和通信需求。
在这一步中,你将学习 iptables-save
命令的用途和功能。iptables-save
命令用于将当前 iptables 防火墙规则的状态保存到一个文件中,以便稍后恢复防火墙配置。
iptables-save
命令捕获当前 iptables 防火墙规则的状态,包括 filter、nat、mangle 和 raw 表。这使你可以轻松备份和恢复防火墙配置,这在以下场景中非常有用:
要使用 iptables-save
命令,只需在终端中运行以下命令:
sudo iptables-save
这将把当前的 iptables 防火墙规则输出到终端。你可以将此输出重定向到一个文件以进行备份:
sudo iptables-save > iptables-backup.rules
生成的 iptables-backup.rules
文件可以稍后使用 iptables-restore
命令来恢复防火墙配置。
示例输出:
## Generated by iptables-save v1.8.7 on Wed Apr 12 12:34:56 2023
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
## Completed on Wed Apr 12 12:34:56 2023
输出显示了当前的 iptables 防火墙规则,这些规则可以用于稍后恢复配置。
在这一步中,你将学习如何使用 iptables-save
和 iptables-restore
命令备份和恢复 iptables 防火墙规则。
首先,将当前的 iptables 防火墙规则备份到一个文件中:
sudo iptables-save > iptables-backup.rules
这将在当前目录下创建一个名为 iptables-backup.rules
的文件,其中包含当前的 iptables 防火墙配置。
要从备份文件中恢复防火墙规则,使用 iptables-restore
命令:
sudo iptables-restore < iptables-backup.rules
这将把存储在 iptables-backup.rules
文件中的防火墙规则应用到当前系统。
示例输出:
$ sudo iptables-restore < iptables-backup.rules
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere state INVALID
ACCEPT tcp -- anywhere anywhere tcp dpt:22
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
输出显示防火墙规则已成功从备份文件中恢复。
在这一步中,你将学习如何使用 Systemd 服务自动化 iptables 防火墙规则的备份。
首先,创建一个新的 Systemd 服务文件:
sudo nano /etc/systemd/system/iptables-save.service
将以下内容添加到文件中:
[Unit]
Description=Backup iptables firewall rules
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-save -f /etc/iptables/rules.v4
[Install]
WantedBy=multi-user.target
这个 Systemd 服务将运行 iptables-save
命令,并将防火墙规则保存到 /etc/iptables/rules.v4
文件中。
接下来,启用并启动 Systemd 服务:
sudo systemctl enable iptables-save.service
sudo systemctl start iptables-save.service
这将确保在系统启动时自动备份 iptables 防火墙规则。
要验证服务是否正常工作,可以检查服务的状态:
sudo systemctl status iptables-save.service
示例输出:
● iptables-save.service - Backup iptables firewall rules
Loaded: loaded (/etc/systemd/system/iptables-save.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2023-04-12 12:34:56 UTC; 1min 23s ago
Main PID: 12345 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 1071)
Memory: 0B
CGroup: /system.slice/iptables-save.service
Apr 12 12:34:56 labex systemd[1]: Started Backup iptables firewall rules.
服务应处于 "active (exited)" 状态,表示 iptables-save
命令已成功执行。
你还可以检查 /etc/iptables/rules.v4
文件的内容,以验证防火墙规则是否已保存:
cat /etc/iptables/rules.v4
这将显示当前的 iptables 防火墙配置。
在本实验中,你首先了解了 iptables-save
命令的用途和功能,该命令用于将当前 iptables 防火墙规则的状态保存到文件中。这使你可以轻松备份和恢复防火墙配置,这在将防火墙规则迁移到新系统、在系统重启或更新后恢复防火墙配置以及自动化防火墙规则的备份和恢复等场景中非常有用。接着,你学习了如何使用 iptables-save
和 iptables-restore
命令备份和恢复 iptables 防火墙规则。最后,你探索了如何使用 Systemd 服务自动化 iptables-save
命令,从而确保防火墙规则能够定期自动备份。