tcpd、inetd/rinetd 和 iptables

tcpd、inetd/rinetd 和 iptables

这些程序之间有何关联? tcpd意向/里内特非常古老,但尽管如此,它们仍然存在于许多发行版中......为什么?并且hosts.allowhosts.deny之间也存在相关性tcpd但我注意到这些文件即使在tcpd未安装...(尝试使用命令包装袋还注意到,hosts.allow/deny不对应于没有包)...好吧..一团糟。谁帮我澄清一下?

谢谢

答案1

传统的设置是用于inetd打开侦听套接字,类似于 systemd 现在对套接字激活所做的事情,而距此只有三十年了。inetd当连接到来时将无条件启动守护进程。

对于一些基本的访问控制,您可以配置inetd为启动tcpd而不是真正的服务器。该程序将根据hosts.allow和文件检查是否允许连接hosts.deny,如果是,则执行真正的服务。

这比基于主机的防火墙解决方案要早得多iptables或类似,因此它也可以在根本没有防火墙的堆栈上工作,例如 AmigaOS 上的 AmiTCP 或 Miami。

另一个好处是检查源地址的配置是服务启动的一部分,因此一旦配置完毕,就无法通过刷新防火墙规则来意外暴露服务。

缺点是端口最初是打开的,因此网络扫描会显示它,并且连接在建立后立即关闭。

hosts.allow和文件hosts.deny不再提供,因为“丢失”文件意味着“允许所有连接”,因此这些文件本身形成有效的配置,并且仍在使用它们的任何人可能都知道它们在做什么。

请注意,当您用于访问控制时,您将失去中选项tcpd的好处,其中服务使用侦听器套接字启动,并负责在启动后接受进一步的连接(即,您只有一个用于多个并行连接的实例) )。waitinetd

没有udpd,因为验证 UDP 数据包的来源是不可能的。

相关内容