Bezplatný proxy server pre podniky s autorizáciou domény

Bezplatný proxy server pre podniky s autorizáciou domény

pfSense+Squid s filtrovaním https + jednotné prihlásenie (SSO) s filtrovaním skupín Active Directory

Stručné pozadie

Spoločnosť potrebovala implementovať proxy server s možnosťou filtrovania prístupu na stránky (vrátane https) podľa skupín z AD tak, aby užívatelia nezadávali žiadne ďalšie heslá a bolo možné ho spravovať z webového rozhrania. Dobrá aplikácia, nie?

Správna odpoveď by bola kúpiť riešenia ako Kerio Control alebo UserGate, ale ako vždy nie sú peniaze, ale sú potrebné.

Tu prichádza na pomoc starý dobrý Squid, ale opäť - kde môžem získať webové rozhranie? SAMS2? Morálne zastarané. Tu prichádza na pomoc pfSense.

Popis

Tento článok popisuje, ako nakonfigurovať proxy server Squid.
Na autorizáciu používateľov sa použije protokol Kerberos.
SquidGuard sa použije na filtrovanie podľa skupín domén.

Na monitorovanie budú použité systémy Lightsquid, sqstat a interné monitorovacie systémy pfSense.
Vyrieši to aj bežný problém spojený so zavedením technológie jednotného prihlásenia (SSO), konkrétne aplikácie, ktoré sa pokúšajú surfovať na internete pod účtom kompasu so svojím systémovým účtom.

Príprava na inštaláciu Squid

pfSense sa bude brať ako základ, Návod na inštaláciu.

V rámci ktorého organizujeme autentifikáciu na samotnom firewalle pomocou doménových účtov. Pokyny.

Je to veľmi dôležité!

Než začnete inštalovať Squid, musíte nakonfigurovať server DNS v pfsense, vytvoriť preň záznam A a záznam PTR na našom serveri DNS a nakonfigurovať NTP tak, aby sa čas nelíšil od času na radiči domény.

A vo svojej sieti poskytnite rozhraniu WAN pfSense možnosť pripojiť sa na internet a používateľom v lokálnej sieti sa pripojiť k rozhraniu LAN vrátane portov 7445 a 3128 (v mojom prípade 8080).

Všetko je pripravené? Je vytvorené spojenie LDAP s doménou na autorizáciu na pfSense a čas je synchronizovaný? Skvelé. Je čas začať hlavný proces.

Inštalácia a predkonfigurácia

Squid, SquidGuard a LightSquid sa nainštalujú zo správcu balíkov pfSense v časti „Systém / Správca balíkov“.

Po úspešnej inštalácii prejdite na „Služby / Squid Proxy server /“ a v prvom rade na karte Local Cache nakonfigurujte ukladanie do vyrovnávacej pamäte, všetko som nastavil na 0, pretože Nevidím veľký zmysel v ukladaní stránok do vyrovnávacej pamäte, prehliadače s tým robia skvelú prácu. Po nastavení stlačte tlačidlo „Uložiť“ v spodnej časti obrazovky a získame tak možnosť vykonať základné nastavenia proxy.

Hlavné nastavenia sú nasledovné:

Bezplatný proxy server pre podniky s autorizáciou domény

Predvolený port je 3128, ale radšej používam 8080.

Vybrané parametre v záložke Rozhranie proxy určujú, na ktorých rozhraniach bude náš proxy server počúvať. Keďže tento firewall je postavený tak, že na internete vyzerá ako rozhranie WAN, aj keď LAN a WAN môžu byť na rovnakej lokálnej podsieti, odporúčam pre proxy použiť LAN.

Aby sqstat fungoval, je potrebná slučka.

Nižšie nájdete nastavenia Transparentného (transparentného) proxy, ako aj SSL Filter, ale nepotrebujeme ich, náš proxy nebude transparentný a pre https filtrovanie nenahradíme certifikát (máme tok dokumentov, banka klientov a pod.), pozrime sa len na podanie ruky.

V tejto fáze musíme ísť do nášho radiča domény, vytvoriť v ňom autentifikačný účet (môžete použiť aj ten, ktorý bol nakonfigurovaný na autentifikáciu na samotnom pfSense). Tu je veľmi dôležitý faktor – ak máte v úmysle použiť šifrovanie AES128 alebo AES256 – začiarknite príslušné políčka v nastaveniach účtu.

Ak je vaša doména veľmi zložitý les s veľkým počtom adresárov alebo je vaša doména .local, potom je MOŽNÉ, ale nie isté, že pre tento účet budete musieť použiť jednoduché heslo, chyba je známa, ale je nemusí jednoducho fungovať so zložitým heslom, musíte skontrolovať konkrétny prípad.

Bezplatný proxy server pre podniky s autorizáciou domény

Potom vytvoríme súbor kľúča pre kerberos, otvoríme príkazový riadok s právami správcu na radič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 uvádzame náš FQDN pfSense, určite rešpektujte veľkosť písmen, do parametra mapuser zadajte náš doménový účet a jeho heslo a v krypto zvolíme metódu šifrovania, na prácu som použil rc4 a v poli -out vyberieme, kde pošle náš hotový súbor kľúčov.
Po úspešnom vytvorení súboru kľúča ho odošleme do nášho pfSense, použil som na to Far, ale môžete to urobiť aj pomocou príkazov a putty alebo cez webové rozhranie pfSense v časti "Príkazový riadok diagnostiky".

Teraz môžeme upraviť/vytvoriť súbor /etc/krb5.conf

Bezplatný proxy server pre podniky s autorizáciou domény

kde /etc/krb5.keytab je súbor kľúča, ktorý sme vytvorili.

Nezabudnite skontrolovať fungovanie kerberos pomocou kinitu, ak to nefunguje, nemá zmysel čítať ďalej.

Konfigurácia overovania Squid a zoznamu prístupov bez overenia

Po úspešnom nakonfigurovaní kerberos ho pripevníme k našej Squid.

Ak to chcete urobiť, prejdite na Proxy server ServicesSquid a v hlavných nastaveniach prejdite nadol úplne dole, kde nájdeme tlačidlo „Rozšírené nastavenia“.

Do poľa Custom Options (Before Auth) zadajte:

#Хелперы
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 vyjednávať program /usr/local/libexec/squid/negotiate_kerberos_auth - vyberie pomocníka overovacieho protokolu kerberos, ktorého potrebujeme.

kľúč -s so zmyslom GSS_C_NO_NAME — definuje použitie ľubovoľného účtu zo súboru kľúčov.

kľúč -k so zmyslom /usr/local/etc/squid/squid.keytab - určuje použitie tohto konkrétneho súboru kľúčov. V mojom prípade ide o ten istý súbor keytab, ktorý sme vytvorili, ktorý som skopíroval do adresára /usr/local/etc/squid/ a premenoval ho, pretože squid sa nechcel s týmto adresárom kamarátiť, zrejme tam neboli dostatok práv.

kľúč -t so zmyslom -t žiadny - deaktivuje cyklické požiadavky na radič domény, čo výrazne znižuje jeho zaťaženie, ak máte viac ako 50 používateľov.
Po dobu trvania testu môžete pridať aj kláves -d - teda diagnostika, zobrazí sa viac logov.
auth_param vyjednať deti 1000 - určuje, koľko simultánnych autorizačných procesov je možné spustiť
auth_param vyjednávať keep_alive on - neumožňuje prerušenie spojenia počas volania autorizačného reťazca
acl auth proxy_auth POVINNÉ - vytvára a vyžaduje zoznam riadenia prístupu, ktorý zahŕňa používateľov, ktorí prešli autorizáciou
acl nonauth dstdomain "/etc/squid/nonauth.txt" - informujeme chobotnicu o nonauth prístupovom zozname, ktorý obsahuje cieľové domény, ku ktorým bude mať vždy prístup každý. Vytvoríme samotný súbor a do neho zadáme domény vo formáte

.whatsapp.com
.whatsapp.net

Whatsapp nie je márne použitý ako príklad - je veľmi náročný na proxy s autentifikáciou a nebude fungovať, ak to nie je povolené pred autentifikáciou.
http_access povoliť nonauth - povoliť prístup k tomuto zoznamu všetkým
http_access deny !auth - zakazujeme prístup neoprávneným používateľom na iné stránky
http_access povoliť autorizáciu - umožniť prístup oprávneným používateľom.
To je všetko, samotná chobotnica je nakonfigurovaná, teraz je čas začať filtrovať podľa skupín.

Konfigurácia SquidGuard

Prejdite na Filter proxy servera ServicesSquidGuard.

V Možnostiach LDAP zadávame údaje nášho účtu používaného na autentifikáciu kerberos, ale v nasledujúcom formáte:

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

Ak existujú medzery alebo znaky iné ako latinka, celý tento záznam by mal byť uzavretý v jednoduchých alebo dvojitých úvodzovkách:

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

Ďalej nezabudnite začiarknuť tieto políčka:

Bezplatný proxy server pre podniky s autorizáciou domény

Ak chcete odrezať zbytočné DOMAINpfsense DOMAIN.LOCAL, na ktorý je celý systém veľmi citlivý.

Teraz prejdeme do skupiny Acl a naviažeme naše skupiny prístupu k doméne, používam jednoduché názvy ako skupina_0, skupina_1 atď. až do 3, kde 3 je prístup iba na bielu listinu a 0 - všetko je možné.

Skupiny sú prepojené nasledovne:

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šu skupinu, prejdite na Times, tam som vytvoril jednu medzeru, ktorá znamená vždy fungovať, teraz prejdite na Cieľové kategórie a vytvorte zoznamy podľa vlastného uváženia, po vytvorení zoznamov sa vrátime do našich skupín a vnútri skupiny tlačidlami vyberieme, kto môže ísť kde a kto nemôže kde .

LightSquid a sqstat

Ak sme počas procesu konfigurácie vybrali slučku v nastaveniach squid a otvorili možnosť prístupu k 7445 vo firewalle v našej sieti aj na samotnom pfSense, potom keď prejdeme na Diagnostics of Squid Proxy Reports, môžeme ľahko otvoriť sqstat aj Lighsquid, pre druhé budeme potrebovať Na rovnakom mieste vymyslite používateľské meno a heslo a je tu aj možnosť vybrať si dizajn.

Завершение

pfSense je veľmi výkonný nástroj, ktorý dokáže veľa vecí – ako proxy server, tak aj kontrola nad prístupom používateľov na internet sú len zlomkom z celej funkcionality, napriek tomu v podniku s 500 strojmi to vyriešilo problém a ušetrilo nákup proxy.

Dúfam, že tento článok niekomu pomôže vyriešiť problém, ktorý je celkom relevantný pre stredné a veľké podniky.

Zdroj: hab.com

Pridať komentár