buntu下保存iptables規則並開機自動加載的方法:
Saving iptables 保存設置
機器重啟後,iptables中的配置信息會被清空。您可以將這些配置保存下來,讓iptables在啟動時自動加載,省得每次都得重新輸入。iptables-save和iptables-restore 是用來保存和恢復設置的。
Configuration onstartup 開機自動加載配置
先將防火牆規則保存到/etc/iptables.up.rules文件中
# iptables-save > /etc/iptables.up.rules #需要sudo su - root切換用戶後執行,直接sudo cmd是不行的
Then modify the/etc/network/interfacesscript to apply the rulesautomatically (the bottom line is added)
然後修改腳本/etc/network/interfaces,使系統能自動應用這些規則(最後一行是我們手工添加的)。
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
當網絡接口關閉後,您可以讓iptables使用一套不同的規則集。
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-restore < /etc/iptables.down.rules
Tips 技巧
如果你經常手動編輯iptables
大多數人並不需要經常改變他們的防火牆規則,因此只要根據前面的介紹,建立起防火牆規則就可以了。但是如果您要經常修改防火牆規則,以使其更加完善,那麼您可能希望系統在每次重啟前將防火牆的設置保存下來。為此您可以在/etc/network/interfaces文件中添加一行:
pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-save > /etc/iptables.up.rules
The line "post-down iptables-save > /etc/iptables.up.rules"will save the rules to be used on the next boot.
"post-down iptables-save > /etc/iptables.up.rules"會將設置保存下來,以便下次啟動時使用。
Usingiptables-save/restore to test rules 使用iptables-save/restore測試規則
使用iptables-save和iptables-restore可以很方便地修改和測試防火牆規則。首先運行iptables-save將規則保存到一個文件,然後用編輯器編輯該文件。
# iptables-save > /etc/iptables.test.rules
# gedit /etc/iptables.test.rules
如果您根據前面的例子建立了防火牆規則,iptables-save將產生一個類似於如下內容的文件:
# Generated by iptables-save v1.3.1 on Sun Apr 2306:19:53 2006
*filter
:INPUT ACCEPT [368:102354]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [92952:20764374]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix"iptables denied: " --log-level 7
-A INPUT -j Drop
COMMIT
# Completed on Sun Apr 23 06:19:53 2006
文件內容其實就是各種iptables命令,只不過把命令名iptables省略了。您可以隨意對這個文件進行編輯,然後保存。接著使用以下命令測試修改後的規則:
# iptables-restore < /etc/iptables.test.rules
之前您如果沒有在/etc/network/interfaces文件中添加iptables-save命令,那麼測試之後,別忘了把您所作的修改保存起來。
# iptables-save > /etc/iptables.up.rules
補充:iptables防火牆規則的備份與恢復
首先,保存iptables規則到一個文件
# sudo iptables-save > /etc/iptables.up.rules
然後,修改 /etc/network/interfaces 腳本自動應用這些規則(末行是添加的)
sudo echo "pre-up iptables-restore < /etc/iptables.up.rules" >> /etc/network/interfaces
也可以准備一組規則來自動應用它:
首先,保存iptables規則到一個文件
# sudo iptables-save > /etc/iptables.up.rules
然後,修改 /etc/network/interfaces 腳本自動應用這些規則(末行是添加的)
sudo echo "pre-up iptables-restore < /etc/iptables.up.rules" >> /etc/network/interfaces
也可以准備一組規則來自動應用它:
sudo echo " pre-up iptables-restore < /etc/iptables.up.rules" >>/etc/network/interfaces
sudo echo "post-down iptables-restore < /etc/iptables.down.rules " >> /etc/network/interfaces
上述方法在 Ubuntu 12.04 已測試過,生效。
sudo echo " pre-up iptables-restore < /etc/iptables.up.rules" >>/etc/network/interfaces
sudo echo "post-down iptables-restore < /etc/iptables.down.rules " >> /etc/network/interfaces
上述方法在 Ubuntu 12.04 已測試過,生效。