Iptables: Belirli bir porttan sadece bir ipin girmesine nasıl izin verilir?


Yanıtlar:


48

Bir astar:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

Daha şık bir çözüm:

iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777

Bunu OUTPUT'a da eklemem gerekip gerekmediğini biliyor musunuz?
Anonim12345

@ Camran: Daha spesifik olmanız gerekir. Bu özel durumda, değiştirmek eğer INPUTile OUTPUTsize bazı paketler sunucusunun kendisi (ve / iletilen yönlendirilirler değil) bazı adresleri kullanılarak gönderilen engelleyecektir. Bazı belirli arayüzlere bağlanan programları engellemek istemiyorsanız, bunun mantıklı olduğundan şüpheliyim.
Cristian Ciupitu

1
Unutmayın, kaynaklarınızı aşağıdaki gibi bir zincirde de belirtebilirsiniz:--src 1.2.3.4/30
deed02392

Daha sonra zincire izin verilen yeni bir IP'yi nasıl eklerim? Önce DROP'u çıkarmam, sonra yeni kullanıcıyı girip DROP'u tekrar takmam gerekir mi yoksa daha iyi bir çözüm var mı?
maddo7

2
@Matthias:iptables -I xxx --src 7.8.9.10 -j ACCEPT
Cristian Ciupitu

0

İşte CentOS sistemlerimden birinden bir örnek (adres gizlenmiş):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT

centos'ta, bu yapılandırmayı kalıcı kılacak yer neresi? (ubuntu'da, /etc/network/if-up.d/anyfile dosyasını kullanabiliriz)
Kokizzu

CentOS üzerinde öyle: service iptables save.
Martin Zeitler

0

IP tablosunu yapılandırmak için shorewall kullanıyorum. Bir ana bilgisayardan 123 numaralı bağlantı noktasına kabul etmek gibi bir kural kullanın.

KABUL NET: 192.0.2.1 $ FW tcp 1234

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.