Hlavní navigace

Firewall pfSense: webová proxy se Squid

Lukáš Malý

V dnešním díle si povíme o web proxy ve firewallu pfSense. Popíšeme si postup instalace, dále si pak popíšeme základní konfiguraci a zapneme antivirovou kontrolu. Závěrem se zaměříme na možnosti logování squidu skrze syslog.

Doba čtení: 4 minuty

Úvodem je nutné připomenout, že výchozí instalace pfSense nedisponuje funkcionalitou web proxy. Pro zprovoznění je nutné doinstalovat oficiální balíček squid. K dispozici je i odlehčená verze Lightsquid a squidGuard. V tomto díle seriálu o pfSense se zaměříme hlavně na balíček squid a zprovozníme jej v základním nastavení.

Instalace balíčků Squid

Instalaci provedeme pomocí menu System / Package Manager / Available Packages, kde vyhledáme squid. Dále pak klikněte na zelené tlačítko install. Balíček pfSense-pkg-squid má několik závislostí, např. openldap-client a squid_radius_auth pro externí autentizaci web proxy. Dále pak free antivirus clamav spolu s c-icap. ICAP je Internet Content Adaptation Protocol nápomocný pro filtrování obsahu za účelem hledání virů a jiné havěti.

pfSense install Squid package

pfSense install Squid Detail

pfSense Squid menu

Po instalaci se v menu Services objeví dvě nové volby – Squid Proxy ServerSquid Reverse Proxy.

Nově instalovaný balíček má následující závislosti. Zajímavé jsou i závislosti těchto balíčků, což podrobněji můžete prozkoumat na konzoli routeru. Dle závislostí je jasné, že konfigurovatelnost web proxy squid je velmi široká.

pkg info -d pfSense-pkg-squid-0.4.43_1
pfSense-pkg-squid-0.4.43_1:
    squidclamav-6.16
    squid_radius_auth-1.10
    squid-3.5.27_3
    c-icap-modules-0.4.5

Konfigurace

Provádíme v menu Services / Squid Proxy Server. Hlavní menu je rozděleno do několika dílčích podmenu. Veškeré změny nastavené ve web formulářích se po uložení zapíší do souboru /usr/local/etc/squid/squid.conf, případně do dílčích souborů dalších aplikací. V dokumentaci projektu můžeme nalézt konkrétní návody.

Seznam podmenu

  • Package / Proxy Server: General Settings / General
  • Package / Proxy Server: Remote Proxy Settings / Remote Cache
  • Package / Proxy Server: Cache Management / Local Cache
  • Package / Proxy Server: Antivirus / Antivirus
  • Package / Proxy Server: Access Control / ACLs
  • Package / Proxy Server: Traffic Management / Traffic Mgmt
  • Package / Proxy Server: Authentication / Authentication
  • Package / Proxy Server: Local Users / Users
  • Package / Squid / Monitor
  • Package / Proxy Server: XMLRPC Sync / Sync

Ukázková konfigurace bude zaměřena na zapnutí squid bez autentizace z povolené LAN sítě. Dále pak zapneme kontrolu obsahu na viry. Poslední úpravou bude zapnutí logování.

General

Nejvíce konfiguračních možností obsahuje úvodní podmenu General. Zde provedeme hlavně zapnutí Squid web proxy. Před úpravou záložky General je nutné kliknout na Local Cache a alespoň uložit výchozí hodnoty. Až posléze vám půjde uložit úvodní konfigurace.

pfSense nastavení squid General

Antivirus

Squid v pfSense je kompilován s podporou antiviru ClamAV a je tedy možné každý HTTP(S) request kontrolovat, zda neobsahuje viry. Další důležitou volbou je nastavení aktualizací virových bází. Firewall si pak pravidelně aktualizuje nové zranitelnosti. Fungování antiviru je možné otestovat např. pomocí testovacího viru eicar.

pfSense nastavení Antiviru ClamAV

ACL

Dále je nutné povolit, ze kterých IP povolíme web proxy na portu 3128. V této záložce můžeme i definovat adresy, které bude proxy odmítat. Dále je možno povolit například komunikaci na nestandardní porty, např. 8443 atd.

pfSense nastavení Squid ACL

Logování squid

Squid loguje ve výchozím stavu dle konfigurace v General do souboru. Tuto volbu musíme zapnout. Pokud máme zapnutý Remote Syslog Contents v menu Status / System Logs / Settings, tak můžeme docílit toho, že Squid bude též logovat pomocí syslogu. Tato volba ale není v pfSense konfigurovatelná skrze nějakou volbu v menu. V podmenu General existuje volba Advanced Features a zde je textové pole Custom Options (Before Auth), zde můžeme vkládat libovolné Squid konfigurační direktivy. Pro logování syslogem definujeme následující řádek access_log syslog:local:4.

Analýza logů

Pokud posíláme logy do nějakého log managementu, získáváme tím možnost dohledat komunikaci jednotlivých uživatelů. V případě zapnuté transparentní proxy můžeme sledovat provoz všech zařízení v síti.

LM ELISA – Dashboard HTTP Proxy

Pokud nepoužíváme autentizaci uživatelů na proxy, tak nevíme, který uživatel patří ke které IP adrese. Ale inteligentní a konfigurovatelné logmanagement systémy dokáží obohatit syslog message před uložením např. o vlastníka IP za předpokladu, že víme, z jaké IP adresy byl uživatel ověřen např. v Active Directory. Přesněji, z informace získané z Windows Eventlogu můžeme přidat k IP jejího aktuálního vlastníka.

Vyšší bezpečnost LAN

V mnoha sítích má každé zařízení NAT do internetu. Toto je sice pohodlné, ale odchozí traffic je často bez kontroly. Pokud v pfSense vypneme v menu Firewall / NAT / Outbound volbu Automatic outbound NAT rule generation a přepneme např. na Manual Outbound NAT rule generation, pak můžeme uživatele pustit do internetu jen pomocí web proxy Squid. Dle konfigurace Squidu můžeme kombinovat konfiguraci a vynutit vyšší bezpečnost např. pomocí autentizace uživatelů. Tímto nám proxy zajistí omezenou komunikaci jen na porty 80 a 443, pokud nepovolíme další. Pokud je třeba pro nějakou IP v LAN povolit NAT, definujeme vždy jen konkrétní komunikaci na konkrétní IP, např. SMTP na poštovní server atd.

Závěr

Web proxy Squid je jedním z nástrojů, který můžeme využívat na firewalu pfSense. V dalších dílech tohoto seriálu si povíme o doposud nepopisovaných vlastnostech tohoto firewallu.

Našli jste v článku chybu?