Http ve Https kısıtlamasında Firefox Çalışmıyor (Diğer taryıcılar çalışıyor)



  • Aslında bu yazı uzun bir belge ve ardından soru oldu.
    Vakit ayırıp okuyanlara şimdiden teşekkürler.

    Bu kılavuzda kullanılan sürüm ve paketler:

    • pfSense 2.4.3-RELASE (amd64)

    • Squid paketi kurulu

    • SquidGuard paketi kurulu

    • Nano paketi kurulu

    • LAN: 10.10.10.1/24

    • Hostname: pfSense (Pfsense > General Setup)

    • Domain: localdomain (Pfsense > General Setup)

    Önemli Not:
    Güvenlik nedenleriyle “HTTPS” üzerinden “webGUI” kullanılmaktadır. Bununla birlikte bu şekilde kullanıldığında “squidguard” altındaki “sgerror.php” ile ilgili sorunlar olabiliyor (ama bu göz ardı edilebilir).
    “System > Advanced” adımlarını takip ederk “Admin Access” sekmesinin açılmasını sağlayın ve bu alanda aşağıdaki gibi değişikliklerinizi yapın:

    • webConfigurator

    • Protocol: HTTPS

    • WebGUI redirect: Seçili

    Genel Hazırlıklar

    “System > General Setup”

    • DNS Server Settings

    • DNS Servers: 1.1.1.1

    • DNS Servers: 1.0.0.1

    • Disable DNS Forwarder: Seçili Değil

    “Disable DNS Forwarder -DNS İleticiyi Devre Dışı Bırak" seçeneğinin işaretini kaldırın. Bu seçeneğin işaretinin kaldırılmasının nedeni: “WPAD” özelliklerini DNS üzerinden herhangi bir tarayıcıya ulaştırmak için bu hizmeti kullanacağız.

    “System > Advanced > Admin Access”

    PfSense sisteminize bağlanmak için “SSH” seçeneğini aktifleştirin.

    • Secure Shell

    • Secure Shell Server: Seçili

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    “System > Cert. Manager

    Squid'in “Man-In-The-Middle'da” kullanımı için yeni bir sertifika (CA) ekleyin. Bunun için “System > Cert. Manger” adımlarını takip ederek açılan “CAs” sekmesindeyken “Add” düğmesine tıklayın. Açılan sayfada ayarlarınızı kendinize göre aşağıdaki gibi yapın:

    • Descriptive name: AyhemCA (Sertifikanız (CA) için bir ad belirleyin. Bu isim istemciler tarafından görünecektir.)

    • Method: Create an internal Certificate Authority

    • Key length (bits): 2048 (Maksimum uyumluluk için 2048 önerilir)

    • Digest Algorithm: 256 (SHA256 veya üstü bir değer kullanın)

    • Lifetime (days): 3650 (10 yıl olarak ayarlayın)

    • Country Code: TR

    • State or Province: Yenimahalle

    • City: Ankara

    • Organization: Lena

    • Email Address: ersan73@gmail.com

    • Common Name: ayhem-ca

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    “Services > DNS Resolver”

    Varsayılan olarak “PfSense” sisteminiz bu hizmeti aktifleştirir. Bu hizmeti devre dışı bırakın çünkü bu hizmeti “DNS Forwarder - DNS İletici” üzerinden yapılandıracağız.

    • General DNS Resolver Options

    • Enable: Seçili Değil

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu ve ardından yapılan değişikliklerin uygulanması için ise “Apply Changes” komutunu verin.

    Önemli Not: PfSense sistemini baştan başlattığımda “DNS Resolver” bir kez kendiliğinden aktif oldu. Nedenini bulamadım. Eğer “pfsense” sisteminizi baştan başlatırsanız lütfen bu alanın pasif olduğunu kontrol etmeyi unutmayın.

    “Services > DNS Forwarder”

    • General DNS Forwarder Options

    • Enable: Seçili

    • DNS Query Forwarding:  Query DNS servers sequentially: Seçili

    • Interface: LAN

    • Strick binding: Seçili

    “Custom options” alanına aşağıdaki satırları ekleyin (IP adresi sizde Lan adresinize göre değişebilir):

    dhcp-option=252,http://10.10.10.1/proxy.pac
    dhcp-option=252,http://10.10.10.1/wpad.dat
    dhcp-option=252,http://10.10.10.1/wpad.da 
    

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    Yine “DNS Forwarder” sayfasında “Host Overrides” grubunu kullanarak bir ev sahibi ekleyin. Bunun için “Host Overrides” grubundaki “Add” düğmesine tıklayın. Açılan sayfada aşağıdaki gibi değişikliklerinizi yapın:

    • Host = wpad

    • Domain = localdomain (System > General Setup > System > Domain alanındaki ad)

    • IP Address = 10.10.10.1 (LAN adresinizin IP adresi)

    • Description: wpad

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu ve ardından yapılan değişikliklerin uygulanması için ise “Apply Changes” komutunu verin.

    “Services > DHCP Server”

    “DHCP Server” sayfadaki “LAN” sekmesine geçiş yapın.

    • Servers

    • DNS Server:  10.10.10.1 (ad çözünürlüğü pfSense tarafından kontrol edilecektir)

    • Additional BOOTP/DHCP Options: Bu alanda ayarlarınızı aşağıdaki gibi yapın:

    • 252  -  text  -  http://10.10.10.1/wpad.dat

    • 252  -  text  -  http:// 10.10.10.1/wpad.da

    • 252  -  text  -  http:// 10.10.10.1/proxy.pac

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    PfSense sisteminize örneğin “Putty” ile giriş yapın. Komut satırına giriş yapmak için klavyeden “8” yazıp “Enter” tuşuna basın.

    Resmi olmayan depoyu etkinleştirin:

    Örneğimizde kullandığımız “pfsense” 64 bit ve “2.4.x” sürümüdür. Bu yüzden resmi olmayan depoyu eklemek için aşağıdaki komutu verin:

    2.4.X 64 bits

    fetch -q -o /usr/local/etc/pkg/repos/Unofficial.conf https://raw.githubusercontent.com/marcelloc/Unofficial-pfSense-packages/master/Unofficial.24.conf 
    

    Depoyu güncellemek için aşağıdaki komutu verin:

    pkg update -f 
    

    Not: Kullanmış olduğunuz “pfsense” sürümüne göre yukarıdaki depo adresi farklı olabilir. Daha detaylı depo adres bilgileri için: “https://forum.pfsense.org/index.php?topic=118346.0” adresine bakın.

    Şimdi “WPAD” paketi “Package Manager > Available Packages” paket yöneticisi alanında indirilmek üzere görüntülenecektir. “WPAD” paketinin kurulumunu yapın.

    Bu paket NGINX'in ikinci örneğini, WPAD dosyalarını ve ilgili dizinleri oluşturur.

    “Services – WPAD”

    “Services – WPAD” adımlarını takip ederek “Files” sayfasının açılmasını sağlayın. Açılan bu sayfada “Add” düğmesine tıklayın ve aşağıdaki gibi ayarlarınız yapın:

    • Listening Settings

    • Enable this wpad: Seçili

    • Listen Interface(s): LAN

    • Listen port: 80

    • Max process: 5

    • Description: wpad

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin. Oluşturduğunuz “wpad” dosyasının karşısındaki “Edit this item” düğmesine tıklayın. Açılan alanda “Script Contents” grubunda aşağıdaki gibi değişikliğinizi yapın:

    return "PROXY 192.168.1.1:3128";
    

    Bu satırı aşağıdaki gibi değiştirin

    return "PROXY 10.10.10.1:3128";
    

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    Önemli Not: Domain adınız farklı ise aşağıdaki işlemleri yapın:

    Örneğin “putty” ile yine “pfsense” siteminize bağlanıp “8” komutu ile terminal ekranına geçiş yapın. Gerekli düzenlemeleri yapmak için aşağıdaki komutu verin:

    nano /usr/local/etc/nginx/nginx-wpad0.conf
    

    Açılan dosyada aşağıdaki satırı bulun:

    server_name wpad.localdomain
    

    Bu satırı aşağıdaki gibi domain adınızla değiştirin. Örneğin domain adınız “mydomain.com” ise

    server_name wpad.mydomain.com 
    

    Kontrol edin

    Bu işlemler yapıldıktan sonra “wpad” sisteminin çalışıp çalışmadığını kontrol edin. Bunun için “LAN” ağınızda bulunan bir tarayıcıyı açıp adres satırına aşağıdaki adresleri yazıp kontrol yapın:

    Tarayıcınız dosyaları indirmek için size soruyorsa veya içeriği web sayfasında sunuyorsa her şey çalışıyor demektir. Artık bu ortamınız “squid” ve “squid ayarlarını” almaya hazır demektir.

    Şimdi gerekli son hazırlıkları yapıp istediğiniz kısıtlama veya serbest bırakmaları yapabilirsiniz.

    “Services > Squid Proxy Server”

    Squid ayarlarını aktifleştirmek için ilk önce “Local Cache” sekmesini yapılandırmanız gerektiğini unutmayın.
    Local Cache Sekmesi

    • Squid Hard Disk Cache Settings

    • Hard Disk Cache Size: Sabit diskinizin ne kadar alanının ayrılacağını belirleyin

    • Squid Memery Cache Settings

    • Memory Cache Size: Kullanılacak ram miktarını belirleyin

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    General Sekmesi

    • Squid General Settings

    • Enable Squid Proxy: Seçili

    • Resolve DNS IPv4 First: Seçili

    • Transparent Proxy Settings

    • Transparent HTTP Proxy: SEÇİLİ DEĞİL

    • SSL Man In the Middle Filtering

    • HTTPS/SSL Interception: Seçili

    • SSL Proxy Port: 3128

    • CA: AyhemCA (Başlangıçta oluşturduğunuz sertifikayı seçin)

    • SSL Certificate Deamon Children: 25

    • Remote Cert Checks: “Accept remote server certificate with erros”

    • Certificate Adapt: İki seçeneğide seçin:

    • Sets the “Not After” (setValidAfter)

    • Sets the “Not Before” (setValidBefore)

    Şimdi sıra gizlilik özelliğini ayarlamak için en altta bulunan “Show Advanced Options” düğmesine tıklayarak gelişmiş ayarları yapabileceğiniz alanın açılmasını sağlayın. Açılan bu alanda aşağıdaki değişiklikleri yapın:

    • Integrations: Bu alana aşağıdaki kodu ekleyin
    ssl_bump none all
    

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    “Services > SquidGuard Proxy Filter”

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    “Target categories” sekmesine geçiş yapın. Yeni kategori eklemek için “Add” düğmesine tıklayın ve açılan sayfada aşağıdaki gibi ayarlarınızı yapın:

    • General Options

    • Name: Engel_Listesi

    • Domain List: facebook.com ersanyildirim.com

    • Redirect mode: int error page (enter error message)

    • Redirect: Bu siteye erisim engellenmistir.

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    Blacklist

    Şimdi “Blacklist” sekmesine geçiş yapın. “Shallalist” sayfasından kara listeyi indirmek için “Download” düğmesine tıklayın. İndirme işlemi bitmeden başka bir işlem yapmayın.

    Common ACL

    “Target Rules List” başlığının yanındaki “+” düğmesine tıklayarak listenin açılmasını sağlayın. Açılan bu listede “Target categories” sekmesinde oluşturduğunuz “Engel_Listesi” seçeneğini görmeniz gerekir. Bu seçeneği bulduktan sonra “access” değerini “deny” yapın. Ayrıca şu anda hiçbir internet sitesine istemcileriniz giremeyecektir. Bunun için yine bu alandaki “Default Access [all]”  “access” değerini “ALLOW” yapın.

    • [Engel_Listesi] = deny

    • Default Access [all]  = allow

    İhtiyacınıza göre diğer seçenekleri de buradan tanımlayın.

    Yaptığınız değişiklikleri kaydetmek için “Save” komutunu verin.

    Yaptığınız değişikliklerin uygulanması için “General settings” sekmesindeki “Apply” düğmesine muhakkak tıklayın.

    Sayfaları test edin

    İstemcilerden farklı sitelere ve yasakladığınız sitelere giriş yaparak test edin.
    Notlar:

    • Sertifikaları istemcilere kurmanın gerekli olmayacağını unutmayın.

    • Proxy'yi tarayıcıya kaydetmek gerekli olmayacaktır (“Ayarları otomatik olarak ayarla” seçeneğinin işaretlenmiş olarak bırakılması yeterli olacaktır)

    Herhangi bir tarayıcı, Chrome, Internet Explorer, Microsoft Edge, Opera, Firefox vb. tarayıcılar için çalışıp çalışmadığını kontrol edin.

    Kaynak: https://forum.pfsense.org/index.php?topic=118346.0

    Sorun:

    Firefox tarayıcı haricinde kullandığım tüm tarayıcılar web filtresine takıldı sadece “Firefox” etkilenmedi.

    İstemciler için örneğin Windows 10 altında Proxy sunucu ayarlarını aşağıdaki gibi ayarladığımda:

    • Ana sunucu:

    • Yerel ağınız için bir Proxy sunucu kullanın

    • Adres: 10.10.10.1

    • B.Nok: 3128

    “Firefox” tarayıcı standart kurulumda Proxy ayarları otomatik olarak “Sistem vekil sunucu ayarlarını kullan” seçeneği ile gelmektedir. Bu durumda “Proxy sunucuyu” yukarıdaki gibi ayarladığımda web filtresine takılmakta ve “Firefox” ile de yasaklanan sitelere girilmemektedir.

    Diğer bir yol ise

    Proxy sunucu sadece “Ayarları otomatik olarak algıla” seçili

    “Firefox” altında “Seçenekler > Genel – Ağ vekil sunucusu > Ayarlar…” adımlarını takip edin. Açılan “Bağlantı Ayarları” penceresinde aşağıdaki değişiklikleri yapın:

    • İnternete erişmek için vekil sunucuları yapılandır

    • Bu ağın vekil sunucu ayarlarını kendiliğinden tanı

    Bu durumda “Firefox” tarayıcısı da kısıtlamalara takılmaktadır.

    Kullandığım ağda 105 tane istemci olduğu için bütün Firefox ayarlarını yapmak imkansızdır. Ayrıca biraz araştırma yapıp birçok kişinin bu ayarları değiştireceği aşikardır.

    Bu durumda Proxy ayarları “Ayarları otomatik algıla” ve Firefox tarayıcısının Proxy ayarları ilk kurulduğunda kalacak şekilde nasıl etkilenmesini sağlayabilirim?



  • Buradaki videoların işinize yarayacağını düşünüyorum.
    Http: https://youtu.be/w5VAmGw8VQI
    Https: https://youtu.be/83aNp6GgHNY



  • @testkullanicisi:

    Buradaki videoların işinize yarayacağını düşünüyorum.
    Http: https://youtu.be/w5VAmGw8VQI
    Https: https://youtu.be/83aNp6GgHNY

    yabancı forumlarda da tartışıldı
    alias ile https engellemek stabil değil.
    wpad zaten iyi bir çözüm alias ile engelleme videosu paylaşmanız tuhaf olmuş.