Çekirdeğin iptables'ı tamamen boşken ( iptables -F
), bu istediğinizi yapar:
# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
Bu, tüm LAN adreslerinin TCP bağlantı noktası 22 ile konuşmasına izin verildiğini, localhost'un aynı düşünceyi aldığını (evet, 127. * sadece 127.0.0.1 değil) ve bu ilk iki kurala uymayan diğer adreslerden gelen paketlerin belirsiz bir şekilde düştüğünü söylüyor bit kova . Sen kullanabilirsiniz REJECT
yerine DROP
aktif bir ret (TCP RST) isterseniz yerine TCP bağlantı noktası 22 paketleri için bir kara delik yapma.
LAN'ınız 192.168.0. * Bloğunu kullanmıyorsa, doğal olarak ilk satırdaki IP ve maskeyi LAN'ınızın IP şemasına uyacak şekilde değiştirmeniz gerekir.
Güvenlik duvarınızda zaten bazı kurallar yapılandırılmışsa, bu komutlar istediğinizi yapamayabilir. (Öğrenmek iptables -L
için kök olarak söyleyin .) Sık sık olan şey, mevcut kurallardan birinin filtrelemeye çalıştığınız paketleri almasıdır, böylece yeni kurallar eklemenin bir etkisi yoktur. Eğer kullanabilirsiniz ancak -I
yerine -A
ile iptables
yerine onları ekleme zincirinin ortasına yeni kurallar kesikler komuta, bu zincirler sistem açılışta doldurulan öğrenmek ve yeni kuralları her zaman yüklü olsun böylece bu süreci değiştirmek için genellikle iyidir doğru sipariş.
RHEL 7+
Son RHEL tipi sistemlerde, bunu yapmanın en iyi yolu kullanmak firewall-cmd
veya GUI eşdeğeri. Bu, işletim sisteminin firewalld
arka plan programına ne istediğinizi söyler iptables -L
.
RHEL 6 ve Daha Önce
Eski RHEL tipi sistemlerde, sipariş verirken güvenlik duvarı zincirlerini değiştirmenin en kolay yolu düzenlemektir /etc/sysconfig/iptables
. İşletim sisteminin GUI ve TUI güvenlik duvarı araçları oldukça basittir, bu nedenle daha karmaşık kurallar eklemeye başladığınızda, eski iyi yapılandırma dosyalarına geri dönmek daha iyidir. Bunu yapmaya başladığınızda, yapılandırmayı değiştirmek için işletim sisteminin güvenlik duvarı araçlarını kullanırsanız değişikliklerinizi kaybetme riskiniz olduğunu unutmayın, çünkü bunlar gibi el işi kurallarla nasıl başa çıkılacağını bilemeyebilir.
Bu dosyaya böyle bir şey ekleyin:
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -j DROP
Eklediğiniz yerde zor bit. --dport 22
Söz konusu dosyada bir satırın konuşulduğunu görürseniz , bunu yukarıdaki üç satırla değiştirin. Aksi takdirde, muhtemelen mevcut ilk satırın sonuna kadar gitmelidir -j ACCEPT
. Genel olarak, iptables'ın çalışma biçimine biraz aşina olmanız gerekir ; bu noktada doğru ekleme noktası açıktır.
Bu dosyayı kaydedin, ardından service iptables restart
güvenlik duvarı kurallarını yeniden yüklemeyi söyleyin . Düzenlemeleri yağla işaretlemeniz durumunda, konsola giriş yaparken bunu yaptığınızdan emin olun! SSH üzerinden oturum açarken kendinizi makinenizden kilitlemek istemezsiniz.
Yukarıdaki komutlara benzerlik tesadüf değildir. Bu dosyanın çoğu iptables
komutun argümanlarından oluşur . Yukarıdakilere göre farklılıklar, iptables
komutun bırakılması ve INPUT
zincir adının RHEL'e özel özel zincir haline gelmesidir RH-Firewall-1-INPUT
. (Dosyayı daha ayrıntılı olarak incelemeye özen gösterirseniz, dosyanın daha önce INPUT
zinciri yeniden adlandırdıkları dosyayı daha önce görürsünüz . Neden? Söyleyemedim.)