Apt-get programlarını indirmek için doğru iptables kuralı nedir?


12

Gibi bir şey yazdığımda sudo apt-get install firefox, her şey bana sorana kadar çalışır:

After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

Ardından hata mesajları görüntülenir: Failed to fetch: <URL>

Iptables kurallarım aşağıdaki gibidir:

-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Apt-get güncellemelerini indirmesine izin vermek için ne eklemeliyim? Teşekkürler

Yanıtlar:


17

apt-get neredeyse her zaman HTTP üzerinden indirilir ancak FTP de kullanabilir, bu nedenle kısa yanıt büyük olasılıkla giden HTTP bağlantılarına izin vermektir ... ve tabii ki DNS.

Şu anda sahip olduğunuz yapılandırma tüm giden ağ trafiğine izin vermiyor ( hiçbir oturum kurulamayacağından zincirde bulunan ESTABLISHEDkural OUTPUTetkili değildir). Diğer her şeye izin vermeyerek SADECE uygun güncellemelere izin vermeniz gerekiyor mu? iptablesURL'leri gerçekten yorumlayamayacak ve HTTP aktarımlarına seçici olarak izin vermeyeceği için, muhtemelen bu iş için yanlış araçtır. Bu iş için bir HTTP proxy sunucusu kullanmak istersiniz.

Apt-get indirmelerine izin verecek daha basit bir kurulum kullanabilirsiniz, ancak bunun aynı zamanda istediğiniz tüm diğer DNS ve HTTP bağlantılarına da izin verdiğini unutmayın.

iptables -F OUTPUT  # remove your existing OUTPUT rule which becomes redundant
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

APT kaynaklarınız 80 dışındaki bağlantı noktalarında HTTPS veya FTP kaynakları veya HTTP kaynakları içeriyorsa, bu bağlantı noktalarını da eklemeniz gerekir.

Ardından, dönüş trafiğine izin vermeniz gerekecektir. Bunu, kurulan herhangi bir bağlantıya izin veren bu tek kuralla yapabilirsiniz:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

(Bağlantı izlemeyi kullanırken gelen tüm bağlantılara izin vermek güvenlidir, çünkü yalnızca başka şekilde izin verdiğiniz bağlantılar KURULDU durumuna geçer.)


Merhaba, Cevabınız için teşekkürler. İşe yaradı, ancak bu ÇIKIŞ bağlantı noktalarını açmakla ilgili herhangi bir güvenlik sorunu olabileceğini düşünüyor musunuz? Teşekkürler
anthony01

1
Neredeyse tüm SOHO tarzı kutular da dahil olmak üzere çoğu güvenlik duvarı, sınırsız giden bağlantılara izin verir. İnsanların genellikle giden trafiği kısıtlama zorunluluğu yoktur. Ancak gereksinimlerinize bağlıdır. Mevcut kurulumunuz, söz konusu iş istasyonundaki kullanıcıların İnternet'te gezinmesini engelliyor. Yapmanız gereken buysa, bu iptables tabanlı çözümü kullanamazsınız çünkü web'e göz atmaya izin verilir.
Celada

Ve amaç web taramasını engellemekse, bu yanlış bir araçtır. Personelin web'e göz atmasını önlemek için tüm giden bağlantıları engellemek için NetFilter / IPTable'ları kullanmak, ceviz açmak için bir bazuka kullanmak gibidir. Yetkili kullanıcılar için işle ilgili göz atmaya izin verirken uygunsuz kullanım için oturum açacak şeffaf bir web proxy'sine ihtiyacınız vardır.
Magellan

Saatlerce arama yaptıktan sonra, bu cevap sonunda kendi yerel sunucumla ilgili sorunları çözmeme yardımcı oldu. Ne yaptığım önemli değil, ben bağlantı noktası 53 üzerinden DNS bağlantılarına açıkça izin verene kadar tüm giden trafik engellendi.
Soğan
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.