Jawaban:
IPTables berfungsi di level Kernel. Secara umum ini berarti ia tidak memiliki pengetahuan tentang aplikasi atau proses. Itu hanya dapat menyaring berdasarkan apa yang didapatnya dari berbagai header paket untuk sebagian besar.
Namun host.allow / deny beroperasi pada level aplikasi / proses. Anda dapat membuat aturan untuk berbagai proses atau daemon yang berjalan pada sistem.
Jadi misalnya IPTables dapat memfilter pada port 22. SSH dapat dikonfigurasikan untuk menggunakan port ini dan umumnya demikian, tetapi juga dapat dikonfigurasi untuk berada pada port yang berbeda. IPTables tidak tahu port mana yang aktif, ia hanya tahu tentang port di header TCP. Namun file hosts.allow dapat dikonfigurasi untuk daemon tertentu seperti daemon openssh.
Jika Anda harus memilih, saya biasanya akan memilih IPTables minimum. Saya melihat hosts.allow sebagai bonus yang bagus. Bahkan mengira sepertinya tingkat daemon nampak lebih mudah IPTable akan memblokir paket sebelum benar-benar bahkan menjadi sangat jauh. Dengan keamanan semakin cepat Anda dapat memblokir sesuatu yang lebih baik. Namun, saya yakin ada beberapa situasi yang mengubah pilihan ini.
iptables memblokir akses sebelum mencapai aplikasi, sedangkan hosts.allow / hosts.deny adalah bagian dari PAM dan membutuhkan aplikasi untuk mengimplementasikan pemeriksaan PAM dan menangani file dengan benar. Keduanya bermanfaat, dan memiliki keduanya lebih baik.