IPTables 仅允许本地主机访问

IPTables 仅允许本地主机访问

多年来,我一直在努力深入了解 iptables。每当我尝试阅读手册页时,我的眼睛就开始发呆。

我有一个服务,只想允许本地主机访问。

我应该用 Google 搜索哪些术语(或配置,如果有人愿意的话)才能仅允许本地主机访问给定端口?

答案1

如果您所说的服务指的是特定端口,那么以下两行应该有效。将“25”更改为您要限制的任何端口。

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

答案2

我建议:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

因为,自寻址数据包不一定以 127.0.0.1 作为其来源,但它们都从该lo接口“进入”。

现在,如果你真的想要理解,iptables你应该做的第一件事就是下载并打印解释表格关系的图表netfilter。这里有两个很棒的图表:

最后,多读一些iptablesHOWTO。实际的例子会帮助你快速上手 :)

答案3

我遇到了类似的问题。我配置了iptables拒绝来自除我特别想允许的端口之外的所有端口的传入请求。我没有允许 27107,因为我错误地推断 iptables 只会影响来自其他主机的流量,而且我不需要将这个 mongodb 实例暴露给外界。

我对 iptables 的理解有误。当我添加此规则时,它再次起作用:

-A INPUT -p tcp -m tcp -s localhost --dport 27017 -j ACCEPT

这告诉 netfilter 只要来自本地主机,就接受到端口 27017 的传入流量。

如果我想从其他主机(例如我的笔记本电脑)访问此 mongo 实例,我仍然可以使用IP隧道

相关内容