當前位置: 首頁>>技術問答>>正文


如何使一組特定的iptables規則永久化?

, , , , ,

問題描述

是否有”best practice”或標準使一些iptables規則永久化?我的意思是:自動應用於係統重啟?

我正在使用VPS與Ubuntu Server 10.04 LTS(Lucid Lynx)。

謝謝。

大編輯:我不希望任何規則被保留(如iptables-persistent包)。我隻想重新加載我自己的特定集…如果最終通過運行iptables添加其他規則,這些應該被丟棄……

最佳解決辦法

最簡單的方法是使用iptables-saveiptables-restore將currently-defined iptables規則保存到文件中並(重新)加載它們(例如,重啟時)。

所以,舉個例子,你會跑

sudo iptables-save | sudo tee /etc/iptables.conf

將當前的iptables規則保存到/etc/iptables.conf,然後在/etc/rc.local中插入這些行:

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf

次佳解決辦法

對此進行快速更新,因為您現在可能正在使用12.04,事情會更好。

iptables-persistent包現在解決了這個問題。安裝,

sudo apt-get install iptables-persistent

安裝軟件包時定義的規則將保存並在每個後續引導時使用。加載的新規則在重新啟動時被丟棄。

如果您確實需要更改配置文件(一旦安裝了iptables-persistent),則分別為ipv4和ipv6 iptables為/etc/iptables/rules.v4/etc/iptables/rules.v6

第三種解決辦法

優於/etc/rc.local是在保存iptable規則後在/etc/network/interfaces中添加一行,就像這樣

post-up iptables-restore < /etc/iptables.up.rules

或者將文件放在/etc/network/if-down.d//etc/network/if-post-down.d//etc/network/if-pre-up.d//etc/network/if-up.d/中。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/2513.html,未經允許,請勿轉載。