pfSense Proxy Server – Squid ve SquidGuard Kurulumu
pfSense kurulumumuzu ve pfSense hotspot yapılandırmamızı yaptık. Şimdi sırada Linux/Unix sistemler için geliştirilmiş olan Squid ve SquidGuard kurulumu var. Squid yazılımı HTTP, HTTPS ve FTP gibi web servislerine ait trafiği üzerine alarak proxy’lik (vekillik) yapar. Web sayfalarına olan erişimleri kontrol etmek ve yönetmek için kullanılır. Ayrıca cache özelliği ile kullanıcı sayısı fazla olan ağlarda performans açısından avantaj sağlamaktadır. Cache çalışma mantığına kabaca değinecek olursak kullanıcı ilk kez milliyet.com.tr’ye gittiğinde verileri direkt olarak sunucudan çekerken daha sonraki ziyaretlerinde siteye ait ilgili bilgiler proxy’nin deposundan sunulur. Bu senaryoyu tek istemci olarak değil de yüzlerce hatta binlerce istemcinin olduğu bir ağ yapısında hayal ettiğimizde performans açısından büyük destek sağlayacaktır.
Kurulum:
Squid ve SquidGuard yazılımlarına kolayca pfSense paket yöneticisinden indirebilirsiniz.
System > Package Manager > Available Packages yolunu takip ederek ilgili paket kurulumlarını yapabilirsiniz. Paketlerin kurulumu bitene kadar lütfen sayfadan ayrılmayın ya da sayfayı yenilemeyiniz.
Sertifika Otoritesi Oluşturma (CA):
Squid ve SquidGuard yapılandırma ayarlarına geçmeden önce SSL Inspection için pfSense üzerinde bulunan Certificate Manager alanından bir adet sertifika otoritesi (CA) oluşturacağız. CA oluşturmamızın asıl nedeni, HTTPS trafiğini inspect ederek HTTPS trafiğine ait logları düzgün bir şekilde almak. Aksi takdirde sadece HTTP trafiğine ait logları topluyor olacağız ki bu bizim için yeterli olmayacaktır.
System > Certificate > ManagerCAs yolunu izliyoruz. Sağ aşağı köşede bulunan + Add butonu ile CA yapılandırmamıza başlıyoruz:
Daha sonra karşımıza gelen ekranda aşağıdakine benzer biçimde bilgileri giriyoruz ve Save butonu ile onaylıyoruz.
pfSense üzerinde 10 yıllık geçerlilik süresi olan CA oluşturmuş olduk. Artık Squid yapılandırmasına geçebiliriz.
Squid Yapılandırma:
Squid yapılandırmasını yapabilmek için öncelikle Package > Proxy Server: Cache Management > Local Cache alanına gitmemiz ve sayfanın en altında bulunan Save butonuna basarak ayarları kaydetmemiz gerekmektedir. Yoksa pfSense, Squid yapılandırmasına müsaade etmeyecektir.
Squid ile alakalı yapılandırma ayarlarını
- Squid General Settings
- Transparent Proxy Settings
- SSL Man In the Middle Filtering
- Logging Settings
- Headers Handling, Language and Other Customizations
olmak üzere 5 bölüm olarak ele alacağız.
Package > Proxy Server: General Settings > General yolunu izliyoruz ve aşağıdaki ekran görüntülerine göre yapılandırmamızı yapıp kayıt ediyoruz.
Burada özellikle unutulmaması gereken şey, SSL Man In the Middle Filtering kısmında bulunan CA açılır penceresinde önceden oluşturmuş olduğumuz CA’yı seçmek olacaktır.
Squid yapılandırmamız tamamlanmış bulunmaktadır. Yapılandırmada herhangi bir sorun olup olmadığını anlamak için aşağıdaki komut ile access.log’u tail komutu ile izliyorum. Bu arada bazı sitelere ve servislere bağlanarak trafik oluşturuyorum.
tail -f /var/squid/logs/access.log
Test:
Görüleceği üzere yapılan yapılan web bağlantılarına ait logları görebiliyoruz. Örnek çıktımız aşağıdaki gibidir:
1606255390.913 60804 10.61.61.7 TCP_TUNNEL/200 9461 CONNECT www.yarininsuyu.com:443 - ORIGINAL_DST/18.192.223.105 - 1606255390.961 60182 10.61.61.7 TCP_TUNNEL/200 10812 CONNECT medya.ilan.gov.tr:443 - ORIGINAL_DST/163.171.216.87 - 1606255391.161 60301 10.61.61.7 TCP_TUNNEL/200 4756 CONNECT match.adsrvr.org:443 - ORIGINAL_DST/52.17.171.52 - 1606255391.215 60591 10.61.61.7 TCP_TUNNEL/200 6295 CONNECT aa.agkn.com:443 - ORIGINAL_DST/52.28.42.15 - 1606255392.200 60175 10.61.61.7 TCP_TUNNEL/200 39123 CONNECT code.jquery.com:443 - ORIGINAL_DST/209.197.3.24 - 1606255393.945 135017 10.61.61.7 TCP_TUNNEL/200 6754 CONNECT adserver-us.adtech.advertising.com:443 - ORIGINAL_DST/152.199.21.89 - 1606255395.310 60175 10.61.61.7 TCP_TUNNEL/200 383 CONNECT maxcdn.bootstrapcdn.com:443 - ORIGINAL_DST/209.197.3.15 - 1606255395.330 65461 10.61.61.7 TCP_TUNNEL/200 4703 CONNECT speeddials.opera.com:443 - ORIGINAL_DST/107.167.110.211 - 1606255397.566 60274 10.61.61.7 TCP_TUNNEL/200 6140 CONNECT pixel.advertising.com:443 - ORIGINAL_DST/3.124.119.192 - 1606255397.660 65302 10.61.61.7 TCP_TUNNEL/200 96254 CONNECT connect.facebook.net:443 - ORIGINAL_DST/31.13.69.13 - 1606255398.903 66063 10.61.61.7 TCP_TUNNEL/200 984 CONNECT www.facebook.com:443 - ORIGINAL_DST/31.13.69.35 - 1606255399.871 29743 10.61.61.7 TCP_TUNNEL/200 4655 CONNECT af.opera.com:443 - ORIGINAL_DST/107.167.110.216 -
SquidGuard Yapılandırma:
Package > Proxy filter SquidGuard: General settings > General settings yolunu takip ediyoruz.
SquidGuard ile alakalı yapılandırma ayarlarını
- General Options
- LDAP Options
- Service options
- Logging options
- Miscellaneous
- Blacklist options
olmak üzere 6 bölüm olarak ele alacağız.
Öncelikle General Options kısmında bulunan Check this option to enable squidGuard kutucuğu işaretlenmeli ve Apply butonuna basarak SquidGuard service state: STARTED. konumuna getirilmeli ondan sonra aşağıdaki yapılandırma ayarlarına geçilmelidir.
SquidGuard Blacklist kısmında kullandığımız adresi aşağıdaki code snippet içerisinden kopyalayabilirsiniz. Bu adres bize SquidGuard tarafında kullanabileceğimiz hazır kategori bazlı kurallar sunmaktadır. İsteğimize göre enable ya da disable edebiliriz.
http://www.shallalist.de/Downloads/shallalist.tar.gz (geçerli değil) http://www.squidguard.org/Downloads/squidGuard-1.3.tar.gz (güncel link) Aşağıdaki adımları güncel adrese göre uygulayınız.
Bu adresi yazmak yeterli olmuyor Package > SquidGuard > Blacklists yolunu izleyerek pfSense’e ilgili paketi indiriyoruz.
Son olarak Package > Proxy filter SquidGuard: Common Access Control List (ACL) > Common ACL kısmında hangi web kategorilerine erişim izni verilip verilmeyeceği ayarlanabilir.
Bu loglar 3rd party bir SIEM yazılımına gönderilip erişim ile alakalı raporlar oluşturulabilir. Örn: GrayLog.
Evet bu yazımda Squid ve SquidGuard kurulumu ve yapılandırmasından bahsetmiş oldum, artık misafir kullanıcılarımız için yapılandırmasını yapmış olduğumuz hotspot ile beraber 5651 sayılı kanuna odaklanabiliriz. Bir sonraki yazım DHCP ve bağlantı trafiğine ait logların hash’ini alıp imzalanması hakkında olacaktır.
Stay Tuned!