답변:
IPTables는 커널 수준에서 작동합니다. 일반적으로 이것은 응용 프로그램이나 프로세스에 대한 지식이 없음을 의미합니다. 대부분의 경우 다양한 패킷 헤더에서 얻는 것을 기반으로 만 필터링 할 수 있습니다.
그러나 host.allow / deny는 응용 프로그램 / 프로세스 수준에서 작동합니다. 시스템에서 실행중인 다양한 프로세스 또는 데몬에 대한 규칙을 만들 수 있습니다.
예를 들어 IPTables는 포트 22에서 필터링 할 수 있습니다. SSH는이 포트를 사용하도록 구성 할 수 있지만 일반적으로 사용되지만 다른 포트에 있도록 구성 할 수도 있습니다. IPTables는 어떤 포트에 있는지 알지 못하고 TCP 헤더의 포트에 대해서만 알고 있습니다. 그러나 openssh 데몬과 같은 특정 데몬에 대해 hosts.allow 파일을 구성 할 수 있습니다.
선택 해야하는 경우 일반적으로 최소 IPTable을 선택합니다. 나는 hosts.allow를 좋은 보너스로 본다. 데몬 수준이 더 쉬워 보인다고 생각했지만 IPTables는 패킷이 실제로 너무 멀어지기 전에 패킷을 차단합니다. 보안이 빠를수록 더 나은 것을 차단할 수 있습니다. 그러나 나는이 선택을 바꾸는 상황이 있다고 확신합니다.
iptables는 응용 프로그램에 도달하기 전에 액세스를 차단하는 반면 hosts.allow / hosts.deny는 PAM의 일부이며 응용 프로그램에서 PAM 검사를 구현하고 파일을 올바르게 처리해야합니다. 둘 다 유용하며 둘 다 제자리에 배치하는 것이 더 좋습니다.