Linux iptables-save 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何使用 iptables-save 命令在 Linux 系统上备份和恢复 iptables 防火墙规则。实验内容涵盖了 iptables-save 的用途和功能、如何备份和恢复防火墙规则,以及如何使用 Systemd 服务自动化这一过程。对于需要管理和维护防火墙配置的网络管理员和安全专业人员来说,这是一项非常有价值的技能。实验提供了实际示例和逐步指导,帮助你掌握 iptables-save 的使用,以满足你的网络和通信需求。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") subgraph Lab Skills linux/cat -.-> lab-422745{{"Linux iptables-save 命令实战示例"}} linux/sudo -.-> lab-422745{{"Linux iptables-save 命令实战示例"}} end

了解 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 防火墙规则

在这一步中,你将学习如何使用 iptables-saveiptables-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-save

在这一步中,你将学习如何使用 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-saveiptables-restore 命令备份和恢复 iptables 防火墙规则。最后,你探索了如何使用 Systemd 服务自动化 iptables-save 命令,从而确保防火墙规则能够定期自动备份。

Linux 命令速查表