https web sitelerini engellemek için iptables


9

Kuruluşumda facebook, twitter ve gmail gibi https ile çalışan birkaç web sitesini engellemek istiyorum. Kalamarın, daha yüksek yönetimden gelen emirlere göre burada kullanılması beklenmemektedir. Untangle Lite Paketini kullanabiliriz iptables.

Bunu yapmak için Squid'den başka bir seçenek var mı? Ayrıca iptablesbu tür trafiği engellemek için bazı kurallar gerçekten yararlı olacaktır.

Bunu buldum

iptables -t filter -I INPUT -m string --string facebook.com -j LOG --algo bm
iptables -t filter -I INPUT -m string --string facebook.com -j REJECT --algo bm

ancak https hala yerel makine dışındaki makinelerde çalışır.


2
kişisel hesap için https'den kaçınmanın iyi bir fikir olmadığını, şirket içinde kimlik çalmasına yol açabileceğini, tüm makinelere bir sertifika dağıtmanın ve ortada bir adam olarak hareket etmenin kim olduğunu kontrol etmenin çok daha iyi bir yol olacağını açıklamalısınız. Facebook a bağlanılıyor. Ayrıca emin değilim, ama artık https olmadan gmail bağlamak mümkün olmadığını düşünüyorum.
Kiwy

Tüm bu IP adreslerini nasıl aldığınızı öğrenebilir miyim pls
Jagadeesh

Yanıtlar:


12

URL'yi temel alarak eşleştirmek yerine sertifikanın içeriğine göre eşlemeyi deneyin.

iptables -t nat -I INPUT --sport 443 -m string \
                 --string www.facebook.com --algo bm -j REJECT

Parmak iziyle de eşleştirebilirsiniz, ancak hedef sertifikalarını değiştirir veya güncellerse kuralınızı geçersiz kılar.


Bu, html gövdesinde bile www.facebook.com ile eşleşen herhangi bir şeyi engelleyebilir, ancak bu yorum kutusunda böyle meşrudur. URL düzeyinde engellenebilir, ama ipadresi ne olacak?
Nikhil Mulley

@NikhilMulley: Hayır, yalnızca Facebook tarafından sunulan SSL sertifikasıyla eşleşecek. Diğer her şey şifrelenir ve görülemez.
bahamat

2
Bir bağlantının sadece ilk paketi nattabloya girer (ve nat tablosunda INPUT zinciri yoktur), sanırım filterorada demek istediniz. Ayrıca,
443'ün

Bu çözümü kullanan var mı? -p tcpKural eksik , bu yararlı bir şey gibi görünmüyor ..
ivanleoncz

10

Güvenlik duvarı, URL şifreli olduğundan istemcinin hangi HTTPS URL'lerine erişmeye çalıştığını kontrol edemez. Güvenlik duvarı yalnızca IP adreslerini kullanarak istemcinin hangi sitelere bağlandığını kontrol edebilir, ancak sitenin HTTP ve HTTPS sürümleri aynı URL'de ise (ve olmasa bile, IP adreslerinin büyük bir listesini tutmak için).

HTTPS'yi engellemenin tek gerçekçi yolu onu tamamen engellemektir. Tüm bağlantıların geçerli HTTP olması gerektiğinde ısrar edin (örneğin, istemci bir HTTPsatır göndererek başlar vb.). Bu sadece IPtables ile yapılamaz, Squid gibi gerçek bir protokol farkında proxy gerekir. (Untangle Lite'ın neler yapabileceğini bilmiyorum.)

Hemen hemen tüm HTTPS sunucuları bu bağlantı noktasında olduğundan, HTTPS trafiğinin çoğunu 443 numaralı bağlantı noktasına giden trafiği engelleyerek engelleyebilirsiniz. Veya beyaz liste yaklaşımını izleyerek, yalnızca 80 numaralı bağlantı noktasına (normal HTTP bağlantı noktası) giden trafiğe izin verin.

Farklı bir yaklaşım, tüm HTTP ve HTTPS bağlantılarını proxy yapmak olacaktır. Ardından URL'lerle eşleştirebilirsiniz. Bu, istemcilere ortadaki adam saldırısı yapılmasını gerektirir. Kendi sertifika yetkilinizi tüm istemci makinelere dağıtır ve orada bir güven kökü olarak kaydederseniz bunu yapabilirsiniz. Bu etik dışı kabul edilebilir.

Ne yaparsanız yapın, kararlı kullanıcılar ortamınızın dışında bir proxy kuracak ve HTTP veya bunun gibi bir şey üzerinden IP çalıştıracaktır.

Sosyal bir problemi neredeyse hiç işe yaramayan teknik araçlarla düzeltmeye çalışıyorsunuz veya yönetimden aptalca bir gereksinimi uygulamak için elinizden geleni yapıyor gibi görünüyorsunuz (bu durumda, 443 numaralı bağlantı noktasını engellemeye devam edebilirim, belki sadece ne kadar işe yaramaz olursa olsun, işinizi yaptığınızı bildirmenize izin veren belirli IP'ler).


1
Checkpoint gibi profesyonel güvenlik duvarı, en son sürümde bir istemci sertifikası dağıtmadan https filtrelemesine izin verir, bunu nasıl başardıklarını bilmiyorum, ama işe yarıyor.
Kiwy

4

Bir seçeneği biliyorum.

Kullanılacak dahili DNS sunucularınız varsa, TLD bölge verilerinize etki alanlarını (dış bağlantılar kurmak istemediğiniz) çözen bazı statik başvuruları yalnızca 127.0.0.1'e getirin. Bu şekilde, ağınızdaki merkezi DNS'yi kullanan tüm ana bilgisayarlar (facebook.com/twitter.com per se) alan adlarını geri döngü adresine dönüştürerek hiçbir yere götürmez.

Ağınızın istemci makineleri çözümleyici yapılandırmasında tam yetkili denetime sahipseniz bu işe yarar. İş istasyonları / istemciler / etc / hosts veya /etc/resolv.conf dosyasını değiştirme / düzenleme izinlerine sahipse bu seçeneği atlayabilirler.


Bunun için +1. Bu, bu referansları /etc/hostsdosyaya ekleyerek yapılabilir . Örneğin:127.0.0.1 www.facebook.com

2
Daha medeni bir çözüm için, DNS A kayıtlarını (veya hosts / hosts.txt girişlerini), kullanıcının neden Facebook'a gönderilmediğini tam olarak açıklayan bir web sunucusuna sahip bir intranet ana bilgisayarına başvuracak şekilde ayarlayın. HTTPS çünkü amaçlanan ana bilgisayar adı (örn. Www.facebook.com) CN sertifikasıyla eşleşmiyor.
Alexios

@Alexios: OpenDNS bunun için harika bir çözüm.
Kevin M

@KevinM: teşekkürler, bunu bilmek faydalı. Bunu aklımda tutacağım (işte kendi küçük DNS çiftliğimiz olmasına rağmen)
Alexios

2

Bir seçenek ağ bloklarına giden kara delikleri karalamaktır: (Listelenen FB içindir)

ip route add blackhole 69.171.224.0/19
ip route add blackhole 74.119.76.0/22 
ip route add blackhole 204.15.20.0/22
ip route add blackhole 66.220.144.0/20
ip route add blackhole 69.63.176.0/20
ip route add blackhole 173.252.64.0/18

1
hayır değil, artık facebook twitter için ip listesini korumak için karmaşık ve hatta artık kendi ip aralığı aralıkları iletişim kurmayan google.
Kiwy

1

Düz içerik filtresi SSL sitesini engelleyemez.

Snort / suricata gibi saldırı koruma araçlarını kullanın .

Örnek IPS kuralı : Belirli bir IP adresi için SSL URL'lerini engellemek için.

drop ip any 443 -> 192.168.3.30 any (content:".facebook.com"; msg:"Simplewall Ssl block for User30 : Urls => .facebook.com " sid:26648513;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".fbcdn.net"; msg:"Simplewall Ssl block for User30 : Urls => .fbcdn.net " ;sid:11469443;rev:1;)

drop ip any 443 -> 192.168.3.30 any (content:".youtube.com"; msg:"Simplewall Ssl block for User30 : Urls => .youtube.com " ;sid:13989722;rev:1;)

Download Simplewall : Squid + Suricata IPS tarafından paylaşılan simplewall politika kurallarında.


0

Bunu İLERİ zincire koymalısınız, örn.

iptables -I FORWARD  -m string --string "facebook.com" \
                     --algo bm --from 1 --to 600 -j REJECT

Güvenlik duvarı hariç, ağdaki diğer sistemleri etkileyecektir.

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.