萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 利用 iptables 實現異機備份與恢復完整教學

在 Linux 系統中,iptables 防火牆規則的異機備份與恢復是維運常見需求。本文以「主控機」(生產環境)與「備份機」(災備環境)為例,完整說明如何透過排程自動同步防火牆規則,並在故障時快速切換。

環境說明

  • iptables 設定檔位置:/etc/sysconfig/iptables
  • 主控機 IP:202.105.135.52(聯通線路)、183.62.178.91(移動線路)
  • 備份機 IP:183.62.178.85(聯通對應)、58.250.56.154(移動對應)

主控機端設定

  1. 建立備份目錄與腳本目錄:
mkdir -p /bak/iptables/
mkdir /root/script/
  1. 建立備份腳本 /root/script/backup.sh:
#!/bin/bash
cp /etc/sysconfig/iptables /bak/iptables/iptables_$(date +%Y%m%d%H)
  1. 設定 crontab 定時任務(每小時 10 分執行備份,每 10 分鐘校時):
*/10 * * * * /usr/sbin/ntpdate 210.72.145.44
10 * * * * sh /root/script/backup.sh

備份機端設定

  1. 建立分線路備份目錄:
mkdir -p /bak/iptables/{lt,yd}
mkdir /root/script/
  1. 建立聯通線路 SCP 期望腳本 /root/script/scp_lt.sh:
#!/usr/bin/expect -f
set password gst
spawn scp -P 22 root@202.105.135.52:/etc/sysconfig/iptables /bak/iptables/lt/iptables
set timeout 300
expect "root@202.105.135.52's password:"
send "$password\r"
set timeout 300
send "exit\r"
expect eof
  1. 建立移動線路 SCP 期望腳本 /root/script/scp_yd.sh(IP 替換為 183.62.178.91)。
  2. 建立主備份腳本 /root/script/backup.sh,整合下載、IP 替換、套用規則:
#!/bin/bash
expect /root/script/scp_lt.sh
expect /root/script/scp_yd.sh

# 將主控機 IP 替換為備份機對應 IP
sed -i 's/202.105.135.52/183.62.178.85/g' /bak/iptables/lt/iptables
sed -i 's/58.251.49.18/58.250.56.154/g' /bak/iptables/lt/iptables

# 套用規則並存檔
cp /bak/iptables/lt/iptables /etc/sysconfig/iptables
/etc/init.d/iptables restart
/etc/init.d/iptables save

# 歸檔備份
mv /bak/iptables/lt/iptables /bak/iptables/lt/iptables_$(date +%Y%m%d%H)
mv /bak/iptables/yd/iptables /bak/iptables/yd/iptables_$(date +%Y%m%d%H)
  1. 重要:首次執行前需手動 SSH 登入主控機一次,接受 RSA 公鑰,否則 expect 腳本會失敗。
  2. 設定 crontab(每小時 20 分執行):
*/10 * * * * /usr/sbin/ntpdate 210.72.145.44
20 * * * * sh /root/script/backup.sh

圖示說明

iptables 異機備份架構圖

補充說明

除異機備份外,iptables 亦可直接開啟/關閉防火牆功能。生產環境建議搭配版本控制(如 Git)管理規則歷史,並定期演練恢復流程,確保災備有效性。

copyright © 萬盛學電腦網 all rights reserved