微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ubuntu iptables防火墙上切换端口规则?

我有一个ubuntu服务器,它只允许通过iptables选择一组端口上的流量.其中一个认设置为REJECT的端口为53.

我需要定期打开端口53来运行acme-dns实例来验证来自LetsEncrypt的DNS-01挑战,然后在完成后关闭它.

有一种简单的方法可以自动化吗?我知道如何通过iptables -I轻松自动添加规则以在列表顶部插入udp流量的ACCEPT 53,但我知道如何禁用特定规则的唯一方法是列出所有活动规则的行号和按行号禁用特定规则.这需要我手动互动.

我需要删除该规则,而不是通过在它之前插入REJECT来撤消它,因为这将由cron作业运行,我不希望污染规则与一堆ACCEPT / REJECT切换相互撤消.

我能想到的唯一方法是编写一个脚本,按行号打印规则,分析它们,然后删除匹配规则.有没有办法用我不知道的iptables命令来做到这一点?

使用用户定义的链可以更轻松地管理规则.

创建一个链:

iptables -N acme-dns

在端口53的REJECT规则之前,使用此命令在iptables脚本中的正确位置运行此链:

iptables -A INPUT -j acme-dns

通常这条链是空的,没有任何影响.当需要访问acme-dns时,可以运行此命令(可能更精确,但这不是重点):

iptables -A acme-dns -p udp --dport 53 -j ACCEPT

当不再需要访问时,可以刷新链的内容.即使由于某种原因,多次添加了上一个命令,无论如何都将刷新所有条目:

iptables -F acme-dns

对于这个简单的案例,这就是所有需要的.对于涉及对值(端口,ips …)进行大量动态更改而非规则的复杂情况,设置匹配模块和ipset可以帮助实现性能和管理.

原文地址:https://www.jb51.cc/ubuntu/347778.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐