Iptables ile 80.443 dışındaki tüm bağlantı noktaları nasıl engellenir? [çiftleme]


15

Tüm bağlantı noktalarını (içeri ve dışarı) engellemek kolaydır, ancak "hariç" sözcüğü ile zordur. Bu koşulu karşılayan herhangi bir kural bilmiyorum.

Not: Bu sorunun yeni bir şey olmadığını biliyorum. Ama aslında, yardımcı olacak hiçbir şey bulamadım. Yani, lütfen bana yardım et!


TÜM bağlantı noktalarını kapatıp bir sonraki satırda tek bir bağlantı noktasını AÇAMAZ MISINIZ?
sinni800

Bunu yapıyorum: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P İLERİ DAMLA iptables -I INPUT -p tcp --dport 80 -j KABUL ------ Bu işe yaramıyor!
user71169

Yanıtlar:


25

İlk önce ! NOT sembolüdür.

iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 80,443 -j DROP

İkinci olarak, yazdığınız kurallar beklenen sonuçlara sahip olmayabilir. 80 numaralı bağlantı noktasındaki bağlantıya yanıt da dahil olmak üzere her şeyi bırakıyorsunuz. Bu nedenle, bir web sunucusu amacıyla bu bağlantıya bağlanamayacaksınız diyor.

Bu kurallar İLGİLİ ve KURULU bağlantılara izin verir, bu yüzden bir web sunucusunun çalışması gerekir, aslında ne yapmaya çalışıyorsanız.

iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
<insert further allowed list here>
iptables -A INPUT -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP

2
Olmamalı !böyle öncelenmelidir \!Bash kabuk kullanılması durumunda,?
Cristian Ciupitu

@CristianCiupitu Hayır, kaçmasına gerek yok. Tuhaf bir şeyler olabilir, ama bashımda kaçmam gerekmiyor.
cybernard

Bağlantılı paketleri görmek için "iptables -nvL" çıktısını kontrol ettim. İşe yarar, kurallarınız. Ancak bu portları kullanan bazı uygulamaları kullanmak dışında gerçekten işe yarayıp yaramadığını kontrol edemiyorum. Uygulama bağlantı noktası kullanması, yalnızca o bağlantı noktasını kullandığı anlamına gelmez. Herhangi bir kontrol önermek?
user71169

1
@ cybernard, evet, haklısın. Bir ovanın !kaçmasına gerek yoktur. Yanlış alarm için özür dilerim.
Cristian Ciupitu

3
@MohammadShahid Kurallar otomatik olarak kalıcı değildir, yeniden başlatılır ve gider ve giriş yapabilirsiniz. Bir ssh bağlantısı sürdürmek istiyorsanız, bağlantı noktaları listesine 22 eklemeniz gerekir.
cybernard

5
# Set the default policy of the INPUT chain to DROP
iptables -P INPUT DROP

# Accept incomming TCP connections from eth0 on port 80 and 443
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

Bu size ihtiyacınız olanı vermelidir


4
SSH ile bağlıysanız, 22 numaralı TCP bağlantı noktasını açmanız gerektiğini unutmayın
Maximilian Ast

Evet, SSH bağlantı noktanızı unutmayın, varsayılan politikayı bırakmadan önce muhtemelen SSH bağlantı noktanızı eklemeniz gerekir. ;)
James Little

3

Varsayılan eyleminizi DROP olarak ayarlayabilir ve ardından 80 ve 443'e izin vermek için istisna kuralları oluşturabilirsiniz, örneğin:

# Setting default policies:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Exceptions to default policy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT       # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT      # HTTPS

iptables bir eşleşme bulana kadar 'istisnalar' listesinden geçer. Daha sonra -jparametre tarafından belirtilen eylemi gerçekleştirecektir (bu durumda KABUL ET). Bir eşleşme bulamazsa, varsayılan politikaya geri döner ve paketi bırakır.

Not Bu geçici çözüm ile herhangi bir alt etki alanları kilitli olacağını. Örneğin, bu yöntemle www.mydomain.com üzerinde çalışmasını sağlayabilirsiniz, ancak alt alan adınızın www.sub.mydomain.com'un DNS hataları için açılmayacağını varsayalım.


İş olmalı ama değil. Çok kafam karıştı.
user71169

Ne işe yaramaz? Tüm gelen paketlere izin veriyor mu, yoksa yok mu? Sorunuzun çıktısını güncelleyebilir misiniz iptables -nvL?
mtak

Neden aşağı oy? Üretimde bu var, bu yüzden çalıştığından% 100 eminim.
mtak

Afedersiniz! Bu ben değilim, birisi bunu yaptı :)) Evet, eminim benim gibi ama işe yaramıyor. Bu yüzden soruyu sormam gerekiyor.
user71169

2
Bunu yapma ssh.
Ashesh
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.