Відповіді:
IPTables працює на рівні ядра. Загалом це означає, що він не має знань про додатки чи процеси. Він може фільтрувати лише на основі того, що отримується з різних заголовків пакетів здебільшого.
Однак host.allow / deny працює на рівні програми / процесу. Ви можете створити правила для різних процесів або демонів, що працюють в системі.
Так, наприклад, IPTables може фільтрувати на порт 22. SSH може бути налаштований на використання цього порту і, як правило, є, але він також може бути налаштований на інший порт. IPTables не знає, на якому порті знаходиться, він знає лише про порт у заголовку TCP. Однак файли hosts.allow можуть бути налаштовані для певних демонів, таких як демон Opensh.
Якщо вам доведеться обрати, я б зазвичай вибрав мінімум IPTables. Я розглядаю господарів. Дозвольте приємний бонус. Навіть думав, що здається, що рівні демон демонструються простішими IPTables заблокує пакет, перш ніж він дійсно навіть заходить дуже далеко. Забезпечивши безпеку, тим раніше ви зможете заблокувати щось, тим краще. Однак я впевнений, що існують ситуації, які змінюють цей вибір.
iptables блокує доступ до того, як він потрапить у додаток, тоді як hosts.allow / hosts.deny є частиною PAM і вимагає, щоб програма реалізувала перевірку PAM і правильно обробляла файл. І те, і інше корисне, а обидва на місці ще краще.