TCPWrappers仍在使用?

根据我目前的理解,tcpwrappers可以通过inetd或xinetd使用。 最近我被告知,inetd / xinetd是在早些时候更高效地使用硬件,因此现在很less见到。

我的问题是,如果tcpwrappers现在也被认为是过时的技术。 如果是的话,他们的替代品是什么?

tcpwrappers最初是作为一个独立的程序来实现的,它将检查hosts.allow和hosts.deny。 如果连接通过,那么所需的守护进程将开始运行一个请求。 inetd的configuration将被configuration为以守护程序的程序和选项作为参数运行tcpd包装。

xinted是一个扩展的inetd。 是比旧的inetd有更多的configuration选项。 内置了echo,chargen,time,daytime,discard等琐碎的服务。 许多经常运行的守护进程可以从xinetd运行。 这通常在服务很less使用时完成。 这限制了需要运行的进程的数量,而以较慢的启动时间为代价。 可以这种方式运行的服务包括邮件服务器,vnc,apache和许多其他的守护进程。

inetd执行与xinetd相同的任务,但是每个服务都有简单的一行configuration。 这限制了configuration的能力,但简化了自动configuration。 可以自动configurationinetd的安装过程可能无法对xinetd执行相同的操作。 现在许多网站select使用xinetd而不是inetd。

包装代码已经被制作成一个库,并且经常与守护进程链接,这些守护进程总是在运行。 这些守护进程将使用库来检查传入连接,然后再使用它们。 这允许在防火墙中不能可靠地实现的基于名称的限制。 这包括一些基于DNS的检查。 通常使用库build立的守护进程之一是xinetd。

在某些端口上不断运行的服务。 inetd等类似的存储内存的原因是因为它们并不需要守护进程一直运行,只是按需求运行。 现在,按需守护进程非常罕见。

像Apache,MySQL和Tomcat的东西都保持运行,并听他们指定的端口。 有些甚至启动新的进程来处理每个连接,其他人只是在同一个进程中处理它。 每次连接启动时不需要加载一堆代码,build立特定连接的代价比使用类似inetd的进程的代价要小。

你对TCPwrappers和[x] inetd都是错误的。

tcpwrappers可以通过inetd或xinetd使用

是的 – 但是您可以将它们与任何networking守护进程一起使用 – 只是在构build应用程序时使用不同的lib。

inetd / xinetd在早些时候已经存在以便更有效地使用硬件,因此现在很less见到

通过[x] inetd运行的服务没有真正的运行,与独立的守护进程相比一直是非常有效的 – 它们的区别在于代码更简单,并且只在连接时映射到内存中。

今天依然如此 – 如果你正在运行一个专门的networking服务器,那么如果只有一个用户每天连接几次来收集从cron作业生成的邮件,那么保持守护进程就没有多less意义。 或者当您需要在无头机器上进行远程GUI访问时启动VNC服务器。

关于tcpwrappers的好处之一是,与基于内核的防火墙相比,它们使脚本复杂的响应非常简单。

inetd / xinetd在人们在每台机器上运行大量远程访问服务的时代就已经存在 – 包括诸如时间/date/费用等等。现在,由于互联网更加恶意,并且对使用这些东西的潜力有了更高的认识要启动DDOS攻击,大多数机器将运行非常less的服务器(很less应该运行除SSH以外的其他任何东西),特定的机器用于诸如DNS,SMTP等。因此,实现这种协议的新守护进程通常具有包装在里面做了。

此外,可以使用防火墙function来提供tcpd / udpd过去所做的大部分function。

本质上,TCP-Wrappers为通过“超级服务器”调用的服务所做的工作可以通过状态防火墙来替代(对于其他进程和“超级服务器”),在大多数现代Linux安装中通过iptables / netfilter对于基本的function,无状态的防火墙规则也可以)。