Squid3 Yapılandırması ve "https" içerik filtrelemesi
-
Herkezin facebook u https ten giriyorlar vb. konularla bir dünya kural oluşturarak aşmaya çalıştığı sorunları artık kolay bir şekilde "https filtreleme" ile açacağız
Öncelikle konuya başlamadan önce kullandığım paketleri yazıyorum
squid3
squidGuard-squid3bunun dışında işin zor kısmı diyebileceğimz bir yapılandırma var bu wpad.dat,wpad.da,proxy.pac ve wpad.dat%00 dosyalarının oluşturularak tarayıcıların proxy sunucumuzu otomatik olarak algılamasını sağlamak.
tarayıcı ayarlarını 1. resime bakarak ayarlayalım.
wpad.dat,wpad.da,proxy.pac ve wpad.dat%00 dosyalarının yapılandırması kod içinde verdim. herhangi bir metin düzenleme yazılımı ile bu dosyaları oluşturup içeriğini aynı olarak kaydediniz. (ip kısmına kendi pfsense proxy adresini ve portunuzu giriniz)function FindProxyForURL(url,host) { return "PROXY 10.50.2.1:3128"; }
Şimdi bu dosyalarımızı oluşturduktan sonra sistemde tanımlı bir web sunucusuna ihtiyacımız var. (pfsense kendisi bir web sunucusu barındırır yalnız pfsense ye port yapılandırması ile bağlanıyorsanız bu ayarlar çalışmıyor yani pfsense ye 10.50.2.1:5151 gibi bir web arayüzü ile bağlanıyorsanız sorun yaşarsınız web arayüzü giriş ekranını 80 portu olması şart.)
oluşturduğumuz 4 dosyayı web sunucumuzun "www" klasörü içine aktarıp dosyaların chmod ayarlarını "755" yapıyoruz.
işlemimiz bittikten sonra Services > DNS Forwarder kısmından yerel web sunucumuza proxy ayarlarını otomatik algılayabilmesi için "Host Overrides" kuralı ekliyoruz (not:domain override kuralı eklemeyin)
resim 2 den ayrıntıları görebilirsiniz.captive portal kullanıyorsanız Allowed Hostnames kısmına dns forward için eklediğiniz host adını girmelisiniz. örn: wpad.firewall.default (not: son düzeltmelerle squid3 e eklenen "Patch captive portal" özelliği ile bu kısma gerek kalmayabilir)
daha sonra sistemimiz çalışıyor mu diye tüm tarayıcıları kapatıp yeniden bir tarayıcı açıyoruz ve adres satırımıza "http://wpad.firewall.default/wpad.dat" yazıyoruz. (not: firewall.default sizin dns forward kısmına yazdığınız host adı olacak)
ekranda indirme sayfası ile wpad.dat dosyamızı indirmemizi istiyorsa çalışıyor demektir.şimdi herkezin 80 ve 443 portunu kullanarak internete çıkmasını engellememiz lazım ki tarayıcının ayarları proxy algılama (ilk anlattığım ayarlar) açık olmazsa internete çıkışı mümkün kılmayalım.
resim 3 den kuralı nasıl eklediğimi görebilirsiniz.bu ayarımız da bittikten sonra squid ayarlarını resim 4 de görüldüğü gibi ayarlayın resimlerde ufak açıklamalar mevcut ihtiyacınıza göre yapılandırın.
sonra squidguard için uyguladığınız facebook filitresi https de de çalışacaktırNOT resim 4 2. cevapta eklendi.
güncelleme : Transperant mod ince ayarla kullanılabiliniyor ;
Eğer squid 3 ü transperant modda çalıştırmanız gerekiyorsa 80 portunu engellediğiniz gibi birde 443 portuna engel kuralı yazarak kullanılabilnir, eğer 443 portunu kapatmazsanız bağzı uyanık bilgisayar kullanıcıları tarayıcıdan otomatik proxy algılama ayarlarını kapatarak https sitelere erişim yapabilir.proxy ayarları otomatik algılama ayarlı olduğu müddetçe https sitelere erişimde sorun yaşanmıyor banka siteleri ile test ettim.
**Güncelleme: Yapılan ayarlar 2.3.2 Sürümü ile test edilmiştir ve sorunsuz çalışmaktadır. "Reverse proxy ayarları yapmanıza gerek yoktur."Detaylı wpad ayarları için google den yardım alabilirsiniz
Kendi kullandığım konfigrasyonun bir kısmını örnek olarak veriyorum.**
function FindProxyForURL(url,host) { if (isInNet(myIpAddress(), "192.168.2.10", "255.255.255.255")) return "DIRECT"; if (shExpMatch(url, "*.tarimpersonel.gov.tr")) return "DIRECT"; if (shExpMatch(url, "*.gkgm.gov.tr")) return "DIRECT"; if (shExpMatch(url, "http://192.168.2.1*")) {return "DIRECT";} if (shExpMatch(url, "https://192.168.2.1*")) {return "DIRECT";} else return "PROXY 192.168.2.1:3128"; } ```     
-
Resim 4 için boyut sorunu olduğundan bu cevabı yazıyorum.
-
Merhabalar,
Emeğinize sağlık, deneme fırsatım olmadı. Acaba Transparent Mod 'da çalışmıyor mu?
Saygılar,
-
@MuratRaci:
Merhabalar,
Emeğinize sağlık, deneme fırsatım olmadı. Acaba Transparent Mod 'da çalışmıyor mu?
Saygılar,
zaten transparent mod yüzünden oluşan açığı kapatmak için wpad.dat,wpad.da,proxy.pac ve wpad.dat%00 dosyalarını oluşturuyoruz.
bu sayede kullanıcılar tarayıcı ayarları ile oynamadan (chrome ve i.e için geçerli) mecburen proxy den geçmek zorunda kalıyorlar. -
hocam konu ile fazla alakalı değil ama sqiuid ile squid3 ün farkı nedir tam olarak ? teşekkürler
-
önemli güncelleme wpad.dat%00 adında dosya oluşturup kodu içine yazın ve www dosyasına bu dosyayı da ekleyin aksi taktirde safari (ios) cihazlar internete bağlanamıyor.
-
hem wpad.dat
hem de wpad.dat%00 adında mı olacak dosyalar.yoksa sadece wpad.dat%00 yetiyor mu?
-
@MuratRaci:
hem wpad.dat
hem de wpad.dat%00 adında mı olacak dosyalar.yoksa sadece wpad.dat%00 yetiyor mu?
hem wpad.dat hemde wpad.dat%00 olacak
toplamda 4 tane dosya atacaksınız www klasörüne.ve önemli not: captive portal da bağzı problemler yaşıyorum yönlendirme yapmıyor mobil cihazlarda sayfa açılmıyor ama play store çalışıyor (android için) bu tür sorunları aşabilmek için marcelloc a pm attım bakalım ne diyecek.
-
güncelleme : Transperant mod ince ayarla kullanılabiliniyor ;
Eğer squid 3 ü transperant modda çalıştırmanız gerekiyorsa 80 portunu engellediğiniz gibi birde 443 portuna engel kuralı yazarak kullanılabilnir, eğer 443 portunu kapatmazsanız bağzı uyanık bilgisayar kullanıcıları tarayıcıdan otomatik proxy algılama ayarlarını kapatarak https sitelere erişim yapabilir.proxy ayarları otomatik algılama ayarlı olduğu müddetçe https sitelere erişimde sorun yaşanmıyor banka siteleri ile test ettim.
-
@MuratRaci:
hem wpad.dat
hem de wpad.dat%00 adında mı olacak dosyalar.yoksa sadece wpad.dat%00 yetiyor mu?
hem wpad.dat hemde wpad.dat%00 olacak
toplamda 4 tane dosya atacaksınız www klasörüne.ve önemli not: captive portal da bağzı problemler yaşıyorum yönlendirme yapmıyor mobil cihazlarda sayfa açılmıyor ama play store çalışıyor (android için) bu tür sorunları aşabilmek için marcelloc a pm attım bakalım ne diyecek.
Bu yöntem DHCP üzerinden web tarayıclara Proxy dağıtma temeline dayanıyor. Web tarayıcıya proxy girildiğinde tüm trafik aslında pfSense ve istemci arasında gerçekleştiği için http / https fark etmeksizin filtreleme yapılabiliyor. Bazı web tarayıcıları ( ismi laım değil adının başharfi I ) ayarları almamak konusunda inat edebiliyorlar. wpad dosyasını wpad.da olarak arayan web tarayıcıları olabiliyor…
Captiveportal tarafında karşılama ekranı görüntülemek için hedef pfSense olmayan bağlantıların arasına giriliyor. Siz proxy yazdığınızda ise tüm bağlantılarınız pfSense ve sizin aranızda olduğundan araya karşılama ekranı getirilemiyor. Yine daha önce bahsi gecen proxy ayarı girerek squid çalıştıran captiveportal bypass sorunu aynı şekilde pfSensin doğrudan kendisine gelen bağlantılara izin vermesi ve kullanıcının proxy ayarı girmesiyle ortaya çıkıyordu. Proxy ayarı yaptığınızda captiveportalı bypass ediyorsunuz otomatik olarak...
Transparan olarak squid kullandığınızda istemcilerin hedefi gerçek siteler oluyor. Bu durumda captiveportal araya girip karşılama ekranını gösterebiliyor. Bu seferde https bağlantılara karşılama ekranı gelmiyor ve https bağlantılar doğrudan yakalanıp squid'e aktarılamıyor. SSL Bump ile Squidin gelen https bağlantıyı karşılaması sağlanabiliyor ancak bu kez istemciler sertifika hataları almaya başlıyorlar. Zira squid istemcinin gitmek istediği adresi doğru bir şekilde yakalayıp o adres için imzalanmış sahte sertifikayı transparan modda üretemiyor... Her siteye sabit bir sertifika kullanmak ise sürekli sertifika hatalarına ve banka siteleri gibi sitelerin düzgün şekilde çalışmamasına neden oluyor... Squid transparan modda dinamik sertifika üretinceye kadar https filtreleme ve captiveportalın bir arada kullanılabilmesi çok mümkün durmuyor... HTTPS filtrelemek veya Captiveportal kullanmak arasında bir seçim yapmamız gerekiyor malesef :(
Bu konularla epeyce cebelleştim ancak bir çözüm bulamadım :(
Saygılarımla...
-
Bu yöntem DHCP üzerinden web tarayıclara Proxy dağıtma temeline dayanıyor. Web tarayıcıya proxy girildiğinde tüm trafik aslında pfSense ve istemci arasında gerçekleştiği için http / https fark etmeksizin filtreleme yapılabiliyor. Bazı web tarayıcıları ( ismi laım değil adının başharfi I ) ayarları almamak konusunda inat edebiliyorlar. wpad dosyasını wpad.da olarak arayan web tarayıcıları olabiliyor…
Captiveportal tarafında karşılama ekranı görüntülemek için hedef pfSense olmayan bağlantıların arasına giriliyor. Siz proxy yazdığınızda ise tüm bağlantılarınız pfSense ve sizin aranızda olduğundan araya karşılama ekranı getirilemiyor. Yine daha önce bahsi gecen proxy ayarı girerek squid çalıştıran captiveportal bypass sorunu aynı şekilde pfSensin doğrudan kendisine gelen bağlantılara izin vermesi ve kullanıcının proxy ayarı girmesiyle ortaya çıkıyordu. Proxy ayarı yaptığınızda captiveportalı bypass ediyorsunuz otomatik olarak...
Transparan olarak squid kullandığınızda istemcilerin hedefi gerçek siteler oluyor. Bu durumda captiveportal araya girip karşılama ekranını gösterebiliyor. Bu seferde https bağlantılara karşılama ekranı gelmiyor ve https bağlantılar doğrudan yakalanıp squid'e aktarılamıyor. SSL Bump ile Squidin gelen https bağlantıyı karşılaması sağlanabiliyor ancak bu kez istemciler sertifika hataları almaya başlıyorlar. Zira squid istemcinin gitmek istediği adresi doğru bir şekilde yakalayıp o adres için imzalanmış sahte sertifikayı transparan modda üretemiyor... Her siteye sabit bir sertifika kullanmak ise sürekli sertifika hatalarına ve banka siteleri gibi sitelerin düzgün şekilde çalışmamasına neden oluyor... Squid transparan modda dinamik sertifika üretinceye kadar https filtreleme ve captiveportalın bir arada kullanılabilmesi çok mümkün durmuyor... HTTPS filtrelemek veya Captiveportal kullanmak arasında bir seçim yapmamız gerekiyor malesef :(
Bu konularla epeyce cebelleştim ancak bir çözüm bulamadım :(
Saygılarımla...
şu anki sistemimde captive portal 2. bir interface de çalışıyor transperant modda https e tek bir engel kuralı yazdım tüm tarayıcılar aktif olarak çalışıyor tek sorun şu tarayıcı captive portaldan auth sonrası https sitelere girmiyor tarayıcıyı kapatıp açmak gerekiyor (ama bu cep telefonu (android de) işe yaramadı.
-
@seker
Sizin bahsettiğiniz "full content filtering"
Bununla ilgili hem transparent hem de non transparent modda çalışması için squid3 ve squidguard/dansguardian kodu üzerinde şu an yabancı bir arkadaş çalışmasını bitirmek üzere.
Bugünlerde ya detayları forum üzerinden post eder ya da bahsi geçen paketlere güncelleme gelir.
Ben de takipteyim :)not : Aynen dediğinizi gibi dinamik sertifika üretimi konusunu çözmüş durumda.
-
Peki şu an bizde squid+squidguard kurulu. Bu durumda önce squidi kaldırıp squid3 mü kurmamız gerekli?
-
Evet
Ama onda bi sıkıntı çıkmıyor zaten.
Eski squidin ayarları aynen yeniye geçti bende. Ek olarak birşey yapmadım. -
Evet
Ama onda bi sıkıntı çıkmıyor zaten.
Eski squidin ayarları aynen yeniye geçti bende. Ek olarak birşey yapmadım.eğer hizmet başlatılamazsa eski cache klasörünü silmek gerekebiliyor sadece.
-
@technical eline sağlık. Vakit bulup bende test edemedim ama artık squid3'e geçme vaktimiz geldi bence de..
-
Tüm ortamlarda test edilebildi mi?
browser ve işletim sistemlerinin default ayarlada ikenwindows üzerinde;
chrome, firefox, yandex, operalinux üzerinde;
chrome, firefox vs.ios üzerinde kendine ait browserler ile,
android üzerinde populer browserler ile,
bada üzerinde ,,,
gibi hangilerinde denendi hangilerinde denenmedi nelerde başarılı nelerde değil?
Bilgi paylaşabilirmisiniz?
Her işlerim sistemi ve her browser default ayarlarda ilekn wpad kullanabiliyor mu? -
Tüm ortamlarda test edilebildi mi?
browser ve işletim sistemlerinin default ayarlada ikenwindows üzerinde;
chrome, firefox, yandex, operalinux üzerinde;
chrome, firefox vs.ios üzerinde kendine ait browserler ile,
android üzerinde populer browserler ile,
bada üzerinde ,,,
gibi hangilerinde denendi hangilerinde denenmedi nelerde başarılı nelerde değil?
Bilgi paylaşabilirmisiniz?
Her işlerim sistemi ve her browser default ayarlarda ilekn wpad kullanabiliyor mu?şu an browserler ile cebelleşiyorum çözünce konuyu güncellicem zaten malesef android için wpad algılaması yok. ayrıca ios da da el ile yapılandırmak gerekiyor. saçmalık ötesi durumlar malesef.
-
Merhaba;
Pfsense'de sıkıntı olan bir konuya çözüm bulunmuş gibi görünüyor. Denemelere başladım fakat şöyle bir sorunum var. www klasörü mevcut değil. web sunucu kurulum esnasında mı kuruluyor.
İyi günler
-
Merhaba;
Pfsense'de sıkıntı olan bir konuya çözüm bulunmuş gibi görünüyor. Denemelere başladım fakat şöyle bir sorunum var. www klasörü mevcut değil. web sunucu kurulum esnasında mı kuruluyor.
İyi günler
pfsense zaten bir web sunucusu barındırıyor dikkat edilmesi gereken şey pfsense arayüzüne giriş te port kullanılmaması, yani wpad uygulaması için 80 portundan giriş alabilmek gerekiyor.