Linux
處理 iptables 初始化失敗的正確方法?
我正在
/etc/network/if-pre-up.d/iptables
使用 iptables-restore 通過初始化我的 iptables 規則。這很好用,但我有點擔心如果該腳本由於某種原因失敗(可能保存的 iptables 文件已損壞或其他原因)會發生什麼。如果腳本失敗,我想:
- 在沒有任何 iptables 規則的情況下啟動我的網路介面
- 啟動 OpenSSH 伺服器
- 但不是任何其他服務,如 Web 伺服器,……(並且可能停止執行實例)
有沒有一個很好的規範方法來做到這一點?進入較低
init
階段?- 我已經很久沒有這樣做了,而且我認為近年來關於 init 發生了很多變化(?) - 我應該降到哪個階段,OpenSSH 伺服器和我的網路介面仍然執行嗎?謝謝
克里斯
(在 Debian Lenny 上)
我從未嘗試過,但想到的另一個解決方案是將您的外部服務綁定到根本不可路由的內部 IP,即使環回也可能起作用。然後,作為您保存的 IP 表配置中的最後一條規則,設置本地服務的透明代理。
如果 IP 表沒有出現,你只是不連接你的服務。如果確實出現了,您的服務就會變得可用。
您離開此配置的唯一系統是 SSH,這樣您就可以進行帶外管理。
當然,您的服務日誌都會有錯誤的源 IP。不過,我想這將涵蓋那個角落案例。