Answers:
IPTables在内核级别工作。通常,这意味着它不了解应用程序或流程。大多数情况下,它只能根据从各种数据包头中获得的内容进行过滤。
但是host.allow / deny在应用程序/进程级别上运行。您可以为系统上运行的各种进程或守护程序创建规则。
因此,例如IPTables可以在端口22上进行过滤。可以将SSH配置为使用此端口(通常为SSH),但也可以将其配置为位于其他端口上。IPTables不知道它在哪个端口上,它只知道TCP标头中的端口。但是,可以为某些守护程序(例如openssh守护程序)配置hosts.allow文件。
如果必须选择,我通常会选择最少的IPTables。我认为hosts.allow是一个不错的奖励。甚至以为守护进程级别似乎似乎更容易,IPTables会在数据包真正到达很远之前将其阻塞。有了安全性,您越早可以阻止某些事情越好。但是,我确定在某些情况下会更改此选择。