Yanıtlar:
IPTables Çekirdek düzeyinde çalışır. Genel olarak bu, uygulama veya süreç bilgisine sahip olmadığı anlamına gelir. Yalnızca, çoğunlukla çeşitli paket başlıklarından elde ettiklerine göre filtreleyebilir.
Ancak host.allow / reddet, uygulama / işlem düzeyinde çalışır. Sistemde çalışan çeşitli işlemler veya arka plan süreçleri için kurallar oluşturabilirsiniz.
Örneğin, IPTable'lar 22 numaralı bağlantı noktasında filtre uygulayabilir. SSH, bu bağlantı noktasını kullanacak şekilde yapılandırılabilir ve genel olarak, ancak farklı bir bağlantı noktasında olacak şekilde de yapılandırılabilir. IPTables hangi portta olduğunu bilmiyor, sadece TCP başlığındaki portu biliyor. Ancak hosts.allow dosyaları, openssh arka plan programı gibi belirli arka plan programları için yapılandırılabilir.
Seçmeniz gerekiyorsa, genellikle minimum IPTable'ları tercih ederim. Ben hosts.allow güzel bir bonus olarak görüyorum. Daha daemon seviyelerinin daha kolay göründüğünü düşündüğümde bile IPTables paketi gerçekten çok ileri gitmeden engelleyecektir. Güvenlik ile bir şeyi daha çabuk engelleyebilirsiniz. Ancak, eminim ki bu seçimi değiştiren durumlar vardır.
iptables, uygulamaya ulaşmadan önce erişimi engeller, oysa hosts.allow / hosts.deny PAM'nin bir parçasıdır ve uygulamanın PAM kontrolünü gerçekleştirmesini ve dosyayı doğru şekilde işlemesini gerektirir. Her ikisi de faydalıdır ve her ikisinin de yerinde olması daha iyidir.