IPTable'lar yalnızca localhost erişime izin verir


58

Iptables hakkında sağlam bir anlayış kazanmak için yıllar boyunca mücadele ettim. Adam sayfalarını okudum ve okuduğumda gözlerim sırlanmaya başladı.

Yalnızca yerel ev sahibinin erişebilmesine izin vermek istediğim bir hizmetim var.

Yalnızca yerel ana makinenin belirli bir bağlantı noktasına erişmesine izin vermek için hangi terimleri (veya biri kendini cömert hissediyorsa) yapılandırmalıyım?


2
Bu hizmet hangi bağlantı noktasında çalışıyor?
Bart De Vos

44344, onun içinde yazılı bir hizmettir
iptablessuck


@Art, onlar sadece onları anlamadım çünkü emmek :)
iptablessuck

@ iptablessuck aslında yapabildiğim gibi görünüyor. Ama ben :) eski haline döndürmek mümkün olacak emin değilim neden olmaz
Sanat Shayderov

Yanıtlar:


65

Servis tarafından belirli bir bağlantı noktasını kastediyorsanız, aşağıdaki iki satır çalışmalıdır. Kısıtlamaya çalıştığınız bağlantı noktasını "25" olarak değiştirin.

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

1
"Localhost'tan 25 numaralı bağlantı noktasına gelen herhangi bir şey kabul edilir" ve ikinci kural "25 numaralı bağlantı noktasına gelen herhangi bir şeyi bırak" der. İlk satır ilk olarak localhost'a izin verilerek işlenir ve ikinci satırda başka herhangi bir şey bırakılır. Evet?
iptablessuck

Bu doğru!
Hyppy

4
@Hyppy, bunu nasıl "geri alırsın"?
tester

10
@tester bu komutları tekrar yazın, ancak-A-D
pepoluan

1
@Astronaut yazın 'sudo hizmet iptables save' değişiklikleri kaydetmek için. sonra yeniden başlatın. 'sudo iptables -L' yazarak değişikliklerin kaydedilip kaydedilmediğini kontrol edebilirsiniz
Vinayak

30

Tavsiye ederim:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

Çünkü kendinden adresli paketlerin kaynağı olarak mutlaka 127.0.0.1 olması gerekmez, ancak hepsi loarayüzden 'girer' .

Şimdi, gerçekteniptables yapmanız gereken ilk şeyi anlamak istiyorsanız , netfiltertabloların ilişkilerini açıklayan iyi diyagramlar indirmek ve yazdırmaktır . İşte iki harika:

Sonunda, bir çok iptablesNASIL belgesini okuyun . Pratik örnekler, hızlı bir şekilde gerçekten hızlı bir şekilde başlamanıza yardımcı olur :)


ty! lobu komutları bu komutun son komutuyla kullandıktan sonra benim için ortaya çıkıyor cyberciti.biz/faq/howto-display-linux-iptables-loaded-rules iptables -L -v -n --line-numbers

2
@Gracchus Kullanmak iptables-save, çıktıyı bir dosyaya kaydetmek, vimveya ile düzenlemek emacsve kullanarak yeniden düzenlemek çok daha kolay buluyorumiptables-apply
pepoluan

Kullanım durumuna bağlı olarak, ikinci kuralın sessizce bırakma yerine açıkça reddetmesi gerektiğini düşünüyorum. En iyi uygulama olarak sessizce mi düşüyor? REJECT kullanımı güvenli midir?
Bay Doomsbuster

1
@ tech-pro Evet, REJECT kullanımı güvenlidir. Neyi başarmaya çalıştığınıza ve limanı kullanmaya çalışan insanlara karşı nazik olmak isteyip istemediğinize bağlı. REJECT, istemciye makinenin açık olduğunu ancak bağlantı noktasının kapalı olduğunu bildiren bir TCP RST paketi gönderir. İnsanların yasal olarak kullanmayı umabileceği bir limanı kapatıyorsanız, REJECT iyidir. Yalnızca port tarayıcıları beklerseniz DROP daha iyidir.
Yasa 29

1
@ x-yuri Örneğin, unboundönünde, DNS Önbelleği olarak çalıştırıyorum dnscrypt-proxy. unboundbağlar 127.0.53.1:53ve dnscrypt-proxybağlar 127.0.53.2:53. Bir uygulama FQDN'yi çözmek için bağlanmamış veya dnscrypt-proxy istediğinde, hangi kaynak adresin bağlanmamış / dnscrypt-proxy tarafından yanıtlanacağını tahmin edin?
pepoluan
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.