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

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

Google应该使用什么术语(或配置,如果有人感到慷慨)仅允许localhost主机访问给定端口?

评论

此服务在哪个端口上运行?

44344,它是内部编写的服务

我想暂时更改“ iptablesrules”的昵称,但我不能

@Art,它们只会吸,因为我不理解它们:)

@iptablessuck实际上看起来像我可以。但我不会因为我不确定是否可以将其改回:)

#1 楼

如果通过服务表示特定端口,则以下两行应该起作用。将“ 25”更改为要限制的端口。

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


评论


“从本地主机到端口25的所有内容都接受”,第二条规则为“将任何东西丢弃到端口25”。第一行首先处理,允许本地主机,其他任何内容将被第二行删除。是?

–iptablessuck
2011年3月14日14:49在

没错!

–亢奋
2011年3月14日下午14:51

@Hyppy,您将如何“撤消”此操作?

–测试人员
13年8月17日在2:28

@tester再次键入这些命令,但将-A替换为-D

– pepoluan
13年8月25日在17:14

@宇航员键入“ sudo service iptables save”以保存更改。然后重启。您可以通过键入“ sudo iptables -L”来检查是否保存了更改

– Vinayak
17年1月13日在7:03



#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表之间关系的好的图表。这是两个很棒的工具:



http://en.m.wikipedia.org/wiki?search=iptables-非常复杂,但是很有趣

http://vinojdavis.blogspot.com/2010/04/packet-flow-diagrams.html-上图更容易理解,尽管不完整

最后,阅读iptables HOWTO的很多。实际示例将帮助您快速掌握最新信息:)

评论


ty!在将这些命令与该链接的最后一个命令一起使用后,lo为我显示了cyberciti.biz/faq/howto-display-linux-iptables-loaded-rules iptables -L -v -n --line-numbers

–user144330
13年8月25日在3:01

@Gracchus我发现使用iptables-save更加容易,将输出保存到文件中,使用vim或emacs对其进行编辑,然后使用iptables-apply重新导入编辑后的文件

– pepoluan
13年8月25日在17:16

我认为,根据用例,第二条规则应明确拒绝,而不是默默放弃。作为最佳实践,它会无声地掉下来吗? REJECT使用安全吗?

– Doomsbuster先生
2015年12月31日下午5:25

@ tech-pro是的,REJECT可以安全使用。这取决于您要完成的工作,以及您是否想对尝试使用该端口的人保持礼貌。 REJECT将发送回TCP RST数据包,告诉客户端计算机已启动,但端口已关闭。如果要关闭人们可能合理使用的端口,则REJECT很好。如果您只希望端口扫描程序,那么DROP会更好。

–法律29
16 Jan 5 '16在7:17



@ x-yuri例如,我在dnscrypt-proxy前面以DNS缓存的形式无限运行。 unbound绑定到127.0.53.1:53,而dnscrypt-proxy绑定到127.0.53.2:53。当应用程序请求unbound或dnscrypt-proxy解析FQDN时,请猜测unbound / dnscrypt-proxy将响应哪个源地址?

– pepoluan
18年4月1日在8:50