Diğer cevaplar, iptables -I
örneklerinde kullanıyor , ki bu da kullanmanız gereken şey değil.
iptables eşleşen ilk kuralı uygulayacaktır, bu yüzden kuralların sırası çok önemlidir. -I
"insert" komutudur ve verilen bir kuralın listede bulunabileceğini belirtmek için bir index parametresiyle birlikte kullanılmalıdır. -A
kuralı listenin sonuna ekleyecek olan "append" komutudur.
Bazı karışıklıklarda (belki de tümü) -I
bir index parametresi olmadan kullanmak , kuralı ilk dizine ekleyerek kuralı ilk dizine ekler. Bu senaryoda, çalıştırdığınız son komut iptables -I INPUT -s tcp 0.0.0.0/0 -j DROP
o zaman iptables ACCEPT
, zincirde daha sonra herhangi bir kuralınızın olup olmadığına bakılmaksızın iptables tüm trafiği bırakacaktır .
Aşağıda, yalnızca tek bir IP’den SSH’ye izin veren bir kural oluşturmanın bir örneği verilmiştir:
Kuralsız başlamak:
#> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Yeni bir "SSH'ye 1.2.3.4'ten izin ver" kuralı ekleyin:
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
Diğer tüm IP'lerden SSH'yi engelleyin:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
Şimdi INPUT zinciriniz şöyle görünecek:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Daha sonra, ikinci bir IP'yi beyaz listeye almanız gerekirse -I
, kara liste kuralından önce yerleştirmek için parametreyi kullanabilirsiniz .
#>iptables -I INPUT 2 -p tcp -s 4.3.2.1 --dport 22 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 4.3.2.1 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Bildirim o kullanarak -I INPUT 2
numaralı kural 2 gibi yeni bir kural eklemiş ve 3 numaralı BIRAKMA kuralı çarptı.
iptables
, hedef almak istemeniz durumunda patlama operatörü ile inversiyonu desteklediğine dikkat etmek önemlidirDROP
. Örnek:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP