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

最后两个命令允许环回流量,因为某些应用程序需要它才能正常运行。您可以使用-s source_ip选项限制特定 IP 的 SSH 访问。

按上述顺序执行命令会导致当前 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

相关内容