Odpowiedzi:
IPTables działa na poziomie jądra. Ogólnie oznacza to, że nie ma wiedzy na temat aplikacji lub procesów. Może filtrować tylko na podstawie tego, co otrzymuje z różnych nagłówków pakietów.
Host.allow / deny działa jednak na poziomie aplikacji / procesu. Możesz tworzyć reguły dla różnych procesów lub demonów działających w systemie.
Na przykład IPTables może filtrować na porcie 22. SSH można skonfigurować tak, aby korzystał z tego portu i ogólnie tak jest, ale można go również skonfigurować na inny port. IPTables nie wie, na którym porcie jest włączony, wie tylko o porcie w nagłówku TCP. Pliki hosts.allow można jednak skonfigurować dla niektórych demonów, takich jak demon openssh.
Jeśli musisz wybrać, zazwyczaj wybrałbym co najmniej IPTables. Uważam hosts.allow za fajny bonus. Nawet sądziłem, że wydaje się, że poziomy demonów wydają się łatwiejsze. IPTables zablokuje pakiet, zanim będzie on naprawdę bardzo daleko. Dzięki bezpieczeństwu wcześniej można coś zablokować, tym lepiej. Jestem jednak pewien, że istnieją sytuacje, które zmieniają ten wybór.
iptables blokuje dostęp, zanim dotrze do aplikacji, podczas gdy hosts.allow / hosts.deny jest częścią PAM i wymaga od aplikacji wdrożenia kontroli PAM i prawidłowej obsługi pliku. Oba są przydatne, a posiadanie obu na miejscu jest jeszcze lepsze.