Security
如何僅使用 IPTables 允許 SSH 和 SMTP?
我已經設置了一個樹莓派來定期向我發送電子郵件。由於它 24/7 全天候連接到網際網路,因此我需要正確設置 IPTables。
我想允許傳入 SSH 並允許電子郵件通過 SMTP 在埠 587 上發送出去。我想出了這個 IPTables 腳本,對嗎?如果不是,你能告訴我為什麼。謝謝。
sudo iptables -P INPUT DROP sudo iptables -P OUTPUT DROP sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT sudo iptables -A INPUT -p tcp --sport 587 -j ACCEPT
像這樣的 iptables 規則可以正常工作
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [1:156] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
第一個規則 DROP 預設所有傳入連接 第二個 DROP 預設所有轉發 第三個 ACCEPT 輸出,為什麼要接受?恕我直言,打開輸出連接不是太不安全,關閉它會使防火牆配置有點困難。
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
接受狀態為 RELATED 和已建立狀態的連接
剩下的很簡單
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
接受 22 tcp,接受 587 tcp 並禁止所有其他連接,您可以保存在文件中然後執行
iptables-restore < firewall.file
並與
nmap -sS
您的主機檢查