Https problemi



  • Merhaba arkadaşlar.

    Belki sizlerde karşılaşmışsınızdır, engelli siteler, kullanıcılar tarafından https yazılarak açılıyor. Örneğin; facebook. Hem site hemde kelime olarak engellediğim halde, başına https yazıldığında rahatça açılıyor.

    Bununla ilgili olarak nasıl bir çözüm önerebilirsiniz acaba ?



  • @GokhanSCN:

    Merhaba arkadaşlar.

    Belki sizlerde karşılaşmışsınızdır, engelli siteler, kullanıcılar tarafından https yazılarak açılıyor. Örneğin; facebook. Hem site hemde kelime olarak engellediğim halde, başına https yazıldığında rahatça açılıyor.

    Bununla ilgili olarak nasıl bir çözüm önerebilirsiniz acaba ?

    Merhaba,
    Problem değil aslında HTTPS protokolüne  block koyamazsın çünkü tünel açaraktan gidilmesi gereken yere yöneliyor ama bununla ilgili benim daha önceki yazılarımda belirtmiştim http://forum.pfsense.org/index.php/topic,24094.0.html

    demişizki fiii tarihindeki yorumumuzda ilk önce SquidGuard üzerinden Socials katagorisine DENY verdim sonra kelime bazında destinationda birtane rule oluşturdum  içerisinde facebook|facebookgiris|tr.facebook.com gibi kelimeler ve domainlar geçmekte bunların hepsine DENY verdim https://facebook.com adresine giriyor ok ama login olmaya çalıştığınız an SquidGuard daki Socials yada destination kısmındaki hazırladığımız rolümüz devreye girerek blockluyor hadi geçmiş olsun ;=)
    hatta HTTPS Block hakkında forumda geniş çapta ele alınmış senin başına gelen bir durum değil ben halende araştırmaktayım Squid Config dosyasını manuel her nekadar da editlesemde yemiyor :S bu dosyayıda manuel olarak editlemeden önce bi yedeğini al!
    bi bak istersen http://forum.pfsense.org/index.php/topic,11174.0.html

    Kolay gelsin



  • Üstad tamam söylediklerini yaptımda, adam face'e giriş yaptı, sayfa engellendi. Tekrar adres çubuğuna http olan yere hemen "s" ekliyor sayfa yine açılıyor :(



  • @GokhanSCN:

    Üstad tamam söylediklerini yaptımda, adam face'e giriş yaptı, sayfa engellendi. Tekrar adres çubuğuna http olan yere hemen "s" ekliyor sayfa yine açılıyor :(

    Bu durumla ilgili zaten en fazla bu şekilde Block koyabiliyorsun HTTPS çalışma mantığına baktığımızda Secure Tunnel açaraktan gidilmesi gereken yere yöneliyor yada bağlanıyor desek daha mantıklı. şimdi sen https bi şekilde block koydun diyelim eeee banka sitelerine girişlerde ne olacak? yani aslında olaya farklı yönden bakarsak https Hypertext Transfer Protocol Secure güvenli bölge anlamında squid bunun için blocklamayı göz ardı bile etmiyor aslında şöle bir kural yazabilsek protokol türü seçilip domain adı ve uzantısı manuel giriş yapılabilecek sonra block yada allow yetkisi yada redirector şeklinde kura yazabilinse ne ala :)



  • merhaba ben denemedim ama snort paketi ile yapılabilir diye düşünüyorum



  • pfsense squidguard aynı makine de ise çözemezsin bu ikiliyi ayırdığın zaman çözülür.



  • @vgumus:

    pfsense squidguard aynı makine de ise çözemezsin bu ikiliyi ayırdığın zaman çözülür.

    Merhaba,

    peki SquidGuard tek bir makine üzerinde rol olarak çalışacak hmmmm servis start olması için Squide ihtiyaç duyması gerekmezmi? Squid sadece kendi başına tek bir makine üzerinde çalışır amma SquidGuardı Squidsiz nasıl çalışacak?



  • Herkese merhaba,

    HTTPS protokolünün bloke edilemediğini görmeniz açınızdan şu kuralı ekleyin SquidGuard üzerinde Default kısmından Default destination kategorilerini açarak burdan sadece Default access [all] kategorisine DENY verin kuralı çalışır hale getirin SAVE / APPLY adres satırına http ile başlayan hangi site olursa olsun BLOCK lanıyor sorun yok ammmaa HTTPS ile başlayan bir site bulduğunuzda açıyor ;)



  • merhaba squid3+squidguard ile yaparsanız https://facebook.com engelliyor arkadaşlar



  • @efabilism:

    merhaba squid3+squidguard ile yaparsanız https://facebook.com engelliyor arkadaşlar

    Merhaba,

    makinemde zaten squid3 ve squidguard yuklu block koymuyor tek başına squid3 de denedim blocklamıyor



  • Deli olmak üzereyim ya, yok mu bunun bir çözümü?



  • Selamlar,
    İşin teorik kısmına bakınca ;
    https port 443 kullanarak istemci ile hedef arasında şifreli iletişim kuran bir uygulama katmanı. Hiç bir, içerik filtreleme sistemi (websense,juniper,checkpoint, ıvır zıvır) ve IDS/IPS (Snort,Mcafee) https trafiğinin içeriğini analiz edemez.

    Soruna pfSense tarafından bakınca:
    pfSense'de squid transparent modda çalıştığında pf yalnızca port 80 trafiğini squid'e yönlendiriyor.hedef portu 443 olan http istekleri zaten squid'e uğramıyor bu yüzden çeşitli taklalar atmanız beyhude.

    pfctl -sn | grep 80

    rdr on vr0 inet proto tcp from any to ! (vr0) port = http -> 127.0.0.1 port 80

    Çözüm;
    Squid'i non-transparent modda çalıştırın, kullanıcıların browser'ına proxy adresi girin (zahmetli olduğunu düşünüyorsanız otomotik proxy bul seçeneği kullanılabilinir) ve firewall'dan lan'dan wan'a giden hedef portu 80 ve 443  olan tcp trafiğini blocklayın.
    Bu durumda, istemcilerin https trafiği squid'e uğrayacaktır ve squid veya squidGuard ile facebook.com yasak dediğinizde https://facebook.com da blocklanmış olacaktır.

    Aşağıdaki örnek squidGuard logunda dikkatlice bakınız;

    tail -f /var/squidGuard/log/block.log | grep "192.168.5.205"

    2010-08-11 15:39:20 [58590] Request(coslat/blk_BL_sosyal_aglar/-) http://www.facebook.com/ 192.168.5.205/- - GET REDIREC
    2010-08-11 15:37:40 [58590] Request(pf/blk_BL_sosyal_aglar/-) www.facebook.com:443 192.168.5.205/- - CONNECT REDIRECT
    2010-08-11 15:37:44 [58590] Request(pf/blk_BL_sosyal_aglar/-) www.facebook.com:443 192.168.5.205/- - CONNECT REDIRECT

    Bir deneyin, daha teorik açıklama isterseniz enine boyuna tartışabiliriz : ))



  • @ozanus:

    Selamlar,
    İşin teorik kısmına bakınca ;
    https port 443 kullanarak istemci ile hedef arasında şifreli iletişim kuran bir uygulama katmanı. Hiç bir, içerik filtreleme sistemi (websense,juniper,checkpoint, ıvır zıvır) ve IDS/IPS (Snort,Mcafee) https trafiğinin içeriğini analiz edemez.

    Soruna pfSense tarafından bakınca:
    pfSense'de squid transparent modda çalıştığında pf yalnızca port 80 trafiğini squid'e yönlendiriyor.hedef portu 443 olan http istekleri zaten squid'e uğramıyor bu yüzden çeşitli taklalar atmanız beyhude.

    pfctl -sn | grep 80

    rdr on vr0 inet proto tcp from any to ! (vr0) port = http -> 127.0.0.1 port 80

    Çözüm;
    Squid'i non-transparent modda çalıştırın, kullanıcıların browser'ına proxy adresi girin (zahmetli olduğunu düşünüyorsanız otomotik proxy bul seçeneği kullanılabilinir) ve firewall'dan lan'dan wan'a giden hedef portu 80 ve 443  olan tcp trafiğini blocklayın.
    Bu durumda, istemcilerin https trafiği squid'e uğrayacaktır ve squid veya squidGuard ile facebook.com yasak dediğinizde https://facebook.com da blocklanmış olacaktır.

    Bir deneyin, daha teorik açıklama isterseniz enine boyuna tartışabiliriz : ))

    80/443 portlarını blockladınız
    banka siteleri https girişli bankalara nasıl bir kural yazılacak?



  • Herhangi bir kural yazılmayacak, test ettiniz mi ?



  • squid, pfsense kurallarının önünde çalışır aklınızda olsun.
    bu yüzden 443'e firewalldan kural ekleyerek blok koymanız, 443'ü squid de dinliyorsa bi işe yaramaz.
    bilgim teoriktir, pratikte hiç denemedim.



  • Özür dileyerek söylüyorum ama teorik dedikleriniz biraz sallama geldi;
    pf bir firewall, squid ise proxy. pf ile block koyduğunuz kurallar için squid hiç birşey yapamaz.

    pf ile hedef portu 443 olan tcp trafiğini block dediğinizde, yerel ağdaki bir istemci wan tarafındaki bir hedefin 443. portuna gönderdiği istekler pf tarafından engellenir.
    Fakat squid proxy hizmet veriyorsa, 443 isteklerini proxy devralır ve hedef ile istemci arasında bu trafiği yönetir.

    Bir örnekle açıklayayım;
    İstemci, squid proxy'e derki; ben https://google.com adresine ulaşmak istiyorum proxy'de eyvallah sen bekle ben bir koşu https://www.google.com u alıp geleyim der ve proxy hedef sunucuya gider sayfayı alır istemciye teslim eder.

    Bakınız lab network yapısı:
    istemci (IP:192.168.5.205 GW: 192.168.5.60) –- (192.168.5.60)pfSense(10.0.0.1)--- Internet (https://www.google.com)

    1-pfSense'de lan'dan hedef portu 443 ve 80 olan portlar yasak dedim;
    2-LAN subnetinde bulunan bir istemciden 443. portuna bir istekte bulunuyorum ;
    root@ubuntucuk:~# wget https://www.google.com
    –2010-08-13 10:48:30--  https://www.google.com/
    www.google.com çözümleniyor... 66.102.13.104, 66.102.13.105, 66.102.13.106, ...
    www.google.com[66.102.13.104]:443 bağlanılıyor… ^C

    pf loglarına bakıyorum;

    tcpdump -n -e -ttt -i pflog0

    tcpdump: WARNING: pflog0: no IPv4 address assigned
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on pflog0, link-type PFLOG (OpenBSD pflog file), capture size 96 bytes
    000000 rule 41/0(match): block in on em0: 192.168.5.205.42781 > 66.102.13.104.443:  tcp 40 [bad hdr length 0 - too short, < 20]
    3. 681677 rule 41/0(match): block in on em0: 192.168.5.205.42787 > 66.102.13.104.443: tcp 40 [bad hdr length 0 - too short, < 20]
    2. 995847 rule 41/0(match): block in on em0: 192.168.5.205.42787 > 66.102.13.104.443: tcp 40 [bad hdr length 0 - too short, < 20]
    ^C
    3 packets captured
    3 packets received by filter
    0 packets dropped by kernel

    Gördüğünüz gibi direkt 443 e yaptığım istekler pfSense tarafından blocklandı !

    Şimdi aynı isteği pfSense üzerinde kurulu squid'e ileticem ve squid aracılığı ile google.com a 443. porttan bağlanıcam;

    tail -f /var/squid/log/access.log

    1281687453.560  11378 192.168.5.205 TCP_MISS/200 8728 CONNECT www.google.com:443 - DIRECT/66.102.13.104 -
    1281687478.171    126 192.168.5.205 TCP_MISS/200 692 GET **http://**clients1.google.com.tr/complete/search? - DIRECT/66.102.13.101 text/javascript
    1281687478.429    120 192.168.5.205 TCP_MISS/200 694 GET http://clients1.google.com.tr/complete/search? - DIRECT/66.102.13.138 text/javascript
    1281687480.995   1396 192.168.5.205 TCP_MISS/200 5422 CONNECT mail.google.com:443 - DIRECT/66.102.13.18 -
    ^C
    TCP_MISS/200 ve hedefe ulaştım …

    pf loglarında bu trafiğin blocklandığına ait hiç bir kayıt göremezsiniz : ))

    Şimdi boş dediğiniz osi mosi leri göz önünde bulundurarak mümkünse test edin  : ))
    Eğer çok değerli teorik bilgilerinizle buna ikna olmadıysanız, bir video çekebilirim.
    Saygılar.



  • Selamlar,

    Başka bir yerde konusu açılmışken, buradaki konuyu resimli olarak güncellemek istedim.

    Facebook.com adresine ait ip adresleri tespit edilip (whois, nslookup komutları ile) aliase tanımlanır;

    Firewall'dan bu sunuculara 443. erişimleri engellenir;

    İstemciler, https://www.facebook.com adresine gitmek istediklerinde erişimleri engellenmiş olur. Bunu firewall loglarında görebilirsiniz;

    Aynen uygularsanız, sorununuz çözülmüş olur.

    Güvenli Günler
    Ozan UÇAR
    www.cehturkiye.com



  • kelime olarak facebook kelimesini yasaklasamayı denedinizmi



  • @efabilism:

    kelime olarak facebook kelimesini yasaklasamayı denedinizmi

    Siz denediniz mi ?



  • hocam cok guzel yazmıssınız ama facebook un bir suru ip si var ben baska bir fw da bu mantıkla denedim fakat kısa bir sure sonra o 60 lı bloktan baska bir ip ile yine cıkıyorlar



  • 1-) rule > aliases facebook diye bir obje tanımladım,  Taype bölümünü ise network(s) işaretledikten sonra 209.126.190.70 69.41.185.229 203.36.226.2 ipleri yazdım
    2-) tekrar rule >  Action bölümünü Block seçip Lan Prot TCP  Source *  Port * Destination facebook Port 443 Gateway * yaptığımda https ile facebook engellediğini gördüm. 2 haftadır deniyorum sonuç şuanlık başarılı gibi gözüküyor..



  • facebook gibi sitelerin dış ıp adreslerini bulup  buadresler için firewall rulesten bu adrese gidildiğinde 443 portunu kapat demen lazım bu şekilde çözülüyor. bununla ilgili  google da pfsensenin abc si adlı makaleyi indir. orada ayrıntılı olarak yazıyor.



  • merhabalar,

    sabit konularda upload olarak ekledim ben pfsense ABC sini oradan da alabilirsiniz.


Log in to reply