这些程序之间的相关性是什么?tcpd和inted/rinetd非常古老,但尽管如此,它们仍然存在于许多发行版中.为什么?此外,hosts.allow和hosts.deny与tcpd也有关联,但我注意到,即使tcpd未安装,也存在这些文件.(尝试使用dpkg命令还注意到hosts.allow/deny不对应于任何包).嗯..。一塌糊涂。谁帮我澄清?
谢谢
发布于 2020-02-18 17:09:34
传统的设置是使用inetd来打开侦听套接字,类似于systemd现在对套接字激活所做的事情,就在30年前。当连接出现时,inetd将无条件地启动守护进程。
对于一些基本的访问控制,您可以配置inetd来启动tcpd,而不是真正的服务器。该程序将根据hosts.allow和hosts.deny文件检查是否允许连接,如果允许,则执行真正的服务。
这比iptables或类似的基于主机的防火墙解决方案要早得多,所以它也适用于根本没有防火墙的堆栈,比如AmiTCP或迈阿密的AmigaOS。
另一个好处是,检查源地址的配置是服务启动的一部分,因此一旦配置完毕,就无法通过刷新防火墙规则来意外地公开服务。
缺点是端口最初是开放的,所以网络扫描会显示它,连接在建立之后立即关闭。
hosts.allow和hosts.deny文件不再提供,因为“缺失”文件意味着“允许所有连接”,因此这些文件单独形成有效的配置,仍然使用它们的人可能知道他们在做什么。
注意,当您使用tcpd进行访问控制时,您将失去inetd中的wait选项的好处,在该选项中,服务是通过侦听器套接字启动的,并负责在启动后接受进一步的连接(即,您只有多个并行连接的一个实例)。
没有udpd,因为验证UDP数据包的来源是不可能的。
https://unix.stackexchange.com/questions/568321
复制相似问题