这些程序之间有何关联?
tcpd和意向/里内特非常古老,但尽管如此,它们仍然存在于许多发行版中......为什么?并且hosts.allow
和hosts.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
的好处,其中服务使用侦听器套接字启动,并负责在启动后接受进一步的连接(即,您只有一个用于多个并行连接的实例) )。wait
inetd
没有udpd
,因为验证 UDP 数据包的来源是不可能的。