Linux

編輯多個 iptables 規則

  • December 3, 2018

我正在使用 iptables 來允許某些 IP(使用者)允許特定埠。像這樣——

ACCEPT     tcp  --  1.2.3.4        anywhere             tcp dpts:4358:4362

因此,對於每個 IP 地址,我都有多個允許的埠範圍。

問題是一些使用者擁有動態 IP,我試圖讓他們註冊動態 dns 服務,但 iptables 會自動將該域解析為他們目前的 IP,所以現在我堅持使用裸 IP。

問題是,如何更新多個規則IP?在 notpad 中查找和替換之類的東西)

iptables只能將 IP 地址儲存在核心表中,這就是它在執行時將主機名解析為目前 IP 地址的原因。

處理 IP 地址更新的唯一方法是刪除舊規則並添加新規則。我建議將這些規則添加到單獨的表中,以便只需要清除和重新載入單獨的表。就像是:

設置:

iptables -N DYNUSERS
iptables -A INPUT -j DYNUSERS

建構 DYNUERS 表:

iptables -F DYNUSERS
iptables -A DYNUSERS -s dyndns1.example.com -p tcp --dport 4358:4362 -j ACCEPT
iptables -A DYNUSERS -s dyndns2.example.com -p tcp --dport 4358:4362 -j ACCEPT

當 IP 地址改變時,只需再次執行最後一部分。也許每隔一小時左右安排一次。

引用自:https://unix.stackexchange.com/questions/485669