Bezplatný proxy server pro podniky s autorizací domény

Bezplatný proxy server pro podniky s autorizací domény

pfSense+Squid s filtrováním https + jednotné přihlášení (SSO) s filtrováním skupin Active Directory

Stručné pozadí

Společnost potřebovala implementovat proxy server s možností filtrování přístupu na stránky (včetně https) podle skupin z AD tak, aby uživatelé nezadávali žádná další hesla, a bylo možné jej spravovat z webového rozhraní. Dobrá aplikace, ne?

Správná odpověď by byla koupit řešení jako Kerio Control nebo UserGate, ale jako vždy nejsou peníze, ale je potřeba.

Tady přichází na pomoc stará dobrá Squid, ale opět – kde získám webové rozhraní? SAMS2? Morálně zastaralé. Zde přichází na pomoc pfSense.

popis

Tento článek popisuje, jak nakonfigurovat proxy server Squid.
Kerberos bude použit k autorizaci uživatelů.
SquidGuard bude použit k filtrování podle skupin domén.

K monitorování poslouží Lightsquid, sqstat a interní monitorovací systémy pfSense.
Vyřeší také běžný problém spojený se zavedením technologie jednotného přihlašování (SSO), konkrétně aplikace, které se snaží procházet internet pod účtem kompasu se svým systémovým účtem.

Příprava na instalaci Squid

pfSense bude brán jako základ, Pokyny pro instalaci.

V rámci kterého organizujeme ověřování na samotném firewallu pomocí doménových účtů. Pokyny.

Velmi důležité!

Než začnete instalovat Squid, musíte nakonfigurovat DNS server v pfsense, vytvořit pro něj záznam A a PTR na našem serveru DNS a nakonfigurovat NTP tak, aby se čas nelišil od času na řadiči domény.

A ve své síti poskytněte možnost připojení rozhraní WAN pfSense k internetu a uživatelům v místní síti možnost připojení k rozhraní LAN, včetně portů 7445 a 3128 (v mém případě 8080).

Vše je připraveno? Je navázáno spojení LDAP s doménou pro autorizaci na pfSense a čas je synchronizován? Skvělý. Je čas zahájit hlavní proces.

Instalace a předkonfigurace

Squid, SquidGuard a LightSquid se nainstalují ze správce balíčků pfSense v sekci "Systém / Správce balíčků".

Po úspěšné instalaci přejděte na "Služby / Squid Proxy server /" a nejprve v záložce Local Cache nakonfigurujte ukládání do mezipaměti, vše jsem nastavil na 0, protože Nevidím velký smysl ukládání webů do mezipaměti, prohlížeče s tím odvádějí skvělou práci. Po nastavení stiskněte tlačítko "Uložit" ve spodní části obrazovky a tím se nám naskytne možnost provést základní nastavení proxy.

Hlavní nastavení jsou následující:

Bezplatný proxy server pro podniky s autorizací domény

Výchozí port je 3128, ale raději používám 8080.

Vybrané parametry v záložce Rozhraní proxy určují, na kterých rozhraních bude náš proxy server naslouchat. Vzhledem k tomu, že tento firewall je postaven tak, že se na internetu tváří jako rozhraní WAN, i když LAN a WAN mohou být na stejné lokální podsíti, doporučuji pro proxy používat LAN.

Aby sqstat fungoval, je potřeba zpětná smyčka.

Níže najdete nastavení Transparent (transparent) proxy, stejně jako SSL Filter, ale nepotřebujeme je, náš proxy nebude transparentní a pro https filtrování certifikát nenahradíme (máme tok dokumentů, banka klienti atd.), podívejme se jen na podání ruky.

V této fázi musíme jít do našeho doménového řadiče, vytvořit v něm ověřovací účet (můžete také použít ten, který byl nakonfigurován pro ověřování na samotném pfSense). Zde je velmi důležitý faktor – pokud máte v úmyslu používat šifrování AES128 nebo AES256 – zaškrtněte příslušná políčka v nastavení účtu.

Pokud je vaše doména velmi složitá doména s velkým počtem adresářů nebo je vaše doména .local, pak je MOŽNÉ, ale není jisté, že pro tento účet budete muset použít jednoduché heslo, chyba je známá, ale je nemusí jednoduše fungovat se složitým heslem, musíte zkontrolovat konkrétní případ.

Bezplatný proxy server pro podniky s autorizací domény

Poté vytvoříme soubor klíče pro kerberos, otevřeme příkazový řádek s právy správce na řadiči domény a zadáme:

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

Tam, kde uvedeme FQDN pfSense, dbejte na respektování velikosti písmen, do parametru mapuser zadejte náš doménový účet a jeho heslo a v crypto zvolíme metodu šifrování, pro práci jsem použil rc4 a v poli -out vybereme, kde odešle náš hotový klíčový soubor.
Po úspěšném vytvoření souboru klíče jej odešleme do našeho pfSense, použil jsem k tomu Far, ale můžete to udělat i pomocí příkazů a putty nebo přes webové rozhraní pfSense v sekci "Příkazový řádek diagnostiky".

Nyní můžeme upravit/vytvořit /etc/krb5.conf

Bezplatný proxy server pro podniky s autorizací domény

kde /etc/krb5.keytab je soubor klíče, který jsme vytvořili.

Fungování kerberos si určitě zkontrolujte pomocí kinitu, pokud to nefunguje, nemá smysl číst dále.

Konfigurace ověřování Squid a seznamu přístupů bez ověření

Po úspěšné konfiguraci kerberos jej připevníme k naší Squid.

Chcete-li to provést, přejděte na ServicesSquid Proxy Server a v hlavním nastavení přejděte úplně dolů, kde najdeme tlačítko "Pokročilá nastavení".

Do pole Custom Options (Before Auth) zadejte:

#Хелперы
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#Списки доступа
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#Разрешения 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

kde auth_param vyjednat program /usr/local/libexec/squid/negotiate_kerberos_auth - vybere autentizačního kerberos pomocníka, kterého potřebujeme.

Klíč -s s významem GSS_C_NO_NAME — definuje použití libovolného účtu ze souboru klíčů.

Klíč -k s významem /usr/local/etc/squid/squid.keytab - určuje použití tohoto konkrétního souboru tabulky klíčů. V mém případě se jedná o stejný soubor keytab, který jsme vytvořili, který jsem zkopíroval do adresáře /usr/local/etc/squid/ a přejmenoval jej, protože chobotnice se s tímto adresářem nechtěla kamarádit, zřejmě tam nebyly dostatek práv.

Klíč -t s významem -t žádný - deaktivuje cyklické požadavky na doménový řadič, což výrazně snižuje jeho zatížení, pokud máte více než 50 uživatelů.
Po dobu trvání testu můžete přidat i klávesu -d - tedy diagnostika, zobrazí se více logů.
auth_param vyjednat děti 1000 - určuje, kolik simultánních autorizačních procesů lze spustit
auth_param vyjednávat keep_alive on - neumožňuje přerušit spojení během dotazování autorizačního řetězce
acl auth proxy_auth VYŽADOVÁNO - vytváří a vyžaduje seznam řízení přístupu, který zahrnuje uživatele, kteří prošli autorizací
acl nonauth dstdomain "/etc/squid/nonauth.txt" - informujeme chobotnici o nonauth přístupovém seznamu, který obsahuje cílové domény, ke kterým bude mít vždy každý přístup. Vytvoříme samotný soubor a do něj zadáme domény ve formátu

.whatsapp.com
.whatsapp.net

Jako příklad se ne nadarmo používá Whatsapp - je velmi vybíravý na proxy s autentizací a nebude fungovat, pokud to není povoleno před autentizací.
http_access povolit nonauth - povolit přístup k tomuto seznamu všem
http_access deny !auth - zakazujeme přístup neoprávněným uživatelům na jiné stránky
http_access povolit autentizaci - umožnit přístup oprávněným uživatelům.
To je vše, samotná chobotnice je nakonfigurována, nyní je čas začít filtrovat podle skupin.

Konfigurace SquidGuard

Přejděte na filtr proxy serveru ServicesSquidGuard.

V Možnostech LDAP zadáváme údaje našeho účtu používaného pro ověřování kerberos, ale v následujícím formátu:

CN=pfsense,OU=service-accounts,DC=domain,DC=local

Pokud jsou v něm mezery nebo znaky jiné než latinka, celý tento záznam by měl být uzavřen v jednoduchých nebo dvojitých uvozovkách:

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

Dále nezapomeňte zaškrtnout tato políčka:

Bezplatný proxy server pro podniky s autorizací domény

Chcete-li odříznout zbytečné DOMAINpfsense DOMÉNA.LOCAL, na který je celý systém velmi citlivý.

Nyní přejdeme do Group Acl a svážeme naše skupiny přístupu k doméně, používám jednoduché názvy jako skupina_0, skupina_1 atd. až do 3, kde 3 je přístup pouze k bílé listině a 0 - vše je možné.

Skupiny jsou propojeny následovně:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

uložte naši skupinu, přejděte do Times, tam jsem vytvořil jednu mezeru, která znamená vždy fungovat, nyní přejděte na Cílové kategorie a vytvořte seznamy podle našeho uvážení, po vytvoření seznamů se vrátíme do našich skupin a uvnitř skupiny pomocí tlačítek vybereme, kdo může jít kde a kdo nemůže kde .

LightSquid a sqstat

Pokud jsme během konfiguračního procesu vybrali smyčku v nastavení squid a otevřeli možnost přístupu k 7445 ve firewallu jak v naší síti, tak na samotném pfSense, pak při přechodu na Squid Proxy Reports Diagnostics můžeme snadno otevřít jak sqstat, tak Lighsquid, pro to druhé budeme potřebovat Na stejném místě vymyslete uživatelské jméno a heslo a je zde také možnost vybrat si design.

Dokončení

pfSense je velmi výkonný nástroj, který umí spoustu věcí – jak proxy server, tak kontrola přístupu uživatelů k internetu jsou jen zlomkem celé funkčnosti, nicméně v podniku s 500 stroji se tím problém vyřešil a ušetřil nákup proxy.

Doufám, že tento článek někomu pomůže vyřešit problém, který je docela relevantní pro střední a velké podniky.

Zdroj: www.habr.com

Přidat komentář