IPTables:僅允許 SSH 訪問,不允許任何其他進出

IPTables:僅允許 SSH 訪問,不允許任何其他進出

如何配置 IPTables 以便它能夠僅有的允許 SSH 進入,且不允許其他流量進入或出去

有人可以推薦任何安全預防措施嗎?

我有一台伺服器相信已成功從 GoDaddy 遷移,我相信不再使用。

但我想確定只是因為……你永遠不知道。 :)

請注意,這是來自 GoDaddy 的虛擬專用伺服器...這意味著沒有備份,而且幾乎沒有支援。

答案1

您只需將 INPUT 和 OUTPUT 鏈上的預設策略設為 DROP 即可。

要允許 SSH 進入,您需要以下命令:

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

最後兩個命令允許環回流量,因為某些應用程式需要這樣做才能正常運作。您可以使用選項限制來自特定 IP 的 SSH 存取-s source_ip

依上所示順序執行命令將導致目前 SSH 會話掛起。這是因為 iptables 指令立即生效。您需要在 shell 腳本中執行它們,以避免在遠端執行它們時失去連接到電腦的能力。

答案2

像這樣的事情:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP

相關內容