Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

pfSense+Squid cu filtrare https + tehnologie de conectare unică (SSO) cu filtrare după grupuri Active Directory

Scurt fundal

Întreprinderea trebuia să implementeze un server proxy cu capacitatea de a filtra accesul la site-uri (inclusiv https) după grupuri din AD, astfel încât utilizatorii să nu introducă parole suplimentare, iar administrarea să se poată face din interfața web. Nu este o aplicație rea, nu-i așa?

Răspunsul corect ar fi să cumpărați soluții precum Kerio Control sau UserGate, dar ca întotdeauna nu există bani, dar este nevoie.

Acesta este locul în care bunul Squid ne vine în ajutor, dar din nou, de unde pot obține interfața web? SAMS2? Învechit din punct de vedere moral. Aici pfSense vine în ajutor.

descriere

Acest articol va descrie cum să configurați un server proxy Squid.
Kerberos va fi folosit pentru a autoriza utilizatorii.
SquidGuard va fi folosit pentru a filtra după grupuri de domenii.

Pentru monitorizare vor fi utilizate sistemele de monitorizare Lightsquid, sqstat și pfSense interne.
Va fi rezolvată și o problemă comună asociată cu implementarea tehnologiei de conectare unică (SSO) și anume aplicațiile care încearcă să acceseze Internetul sub contul busolă al contului lor de sistem.

Se pregătește instalarea Squid

pfSense va fi folosit ca bază, Instructiuni de instalare.

În interiorul căruia organizăm autentificarea la firewall-ul propriu-zis folosind conturi de domeniu. Instrucțiuni.

Este foarte important!

Înainte de a începe instalarea Squid, trebuie să configurați serverul DNS în pfsense, să faceți o înregistrare A și o înregistrare PTR pentru acesta pe serverul nostru DNS și să configurați NTP astfel încât ora să nu difere de ora de pe controlerul de domeniu.

Și în rețeaua dvs., oferiți posibilitatea ca interfața pfSense WAN să acceseze Internetul și utilizatorilor din rețeaua locală să se conecteze la interfața LAN, inclusiv prin portul 7445 și 3128 (în cazul meu, 8080).

Totul este gata? Este domeniul conectat prin LDAP pentru autorizare pe pfSense și ora este sincronizată? Grozav. Este timpul să începem procesul principal.

Instalare și pre-configurare

Vom instala Squid, SquidGuard și LightSquid din managerul de pachete pfSense din secțiunea „System/Package Manager”.

După instalare cu succes, mergi la „Servicii/Server Squid Proxy/” și în primul rând, în fila Local Cache, setează caching-ul, am setat totul la 0, deoarece Nu văd prea mult rost în stocarea în cache a site-urilor; browserele se descurcă bine. După setare, apăsați butonul „Salvare” din partea de jos a ecranului și acest lucru ne va oferi posibilitatea de a face setări de bază proxy.

Setările principale sunt următoarele:

Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

Portul implicit este 3128, dar prefer să folosesc 8080.

Parametrii selectați în fila Interfață proxy determină ce interfețe va asculta serverul nostru proxy. Deoarece acest firewall este construit în așa fel încât să se uite la Internet prin interfața WAN, chiar dacă LAN și WAN pot fi pe aceeași subrețea locală, recomand să utilizați LAN pentru proxy.

Loopback este necesar pentru ca sqstat să funcționeze.

Mai jos veți găsi setările de proxy transparent, precum și filtrul SSL, dar nu avem nevoie de ele, proxy-ul nostru nu va fi transparent, iar pentru filtrarea https nu ne vom ocupa de înlocuirea certificatelor (la urma urmei, avem management de documente). , clienții băncii etc.), Să ne uităm doar la strângerea de mână.

În această etapă, trebuie să mergem la controlerul nostru de domeniu, să creăm un cont în acesta pentru autentificare (puteți folosi și pe cel pe care l-ați configurat pentru autentificare pe pfSense). Un factor foarte important aici este că, dacă intenționați să utilizați criptarea AES128 sau AES256, bifați casetele corespunzătoare din setările contului.

Dacă domeniul tău este o pădure foarte complexă cu un număr mare de directoare sau domeniul tău este .local, atunci POSIBIL, dar nu sigur, va trebui să folosești o parolă simplă pentru acest cont, bug-ul este cunoscut, dar cu un complex parola este posibil să nu funcționeze, trebuie să verificați un anumit caz individual.

Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

După toate acestea, creăm un fișier cheie pentru Kerberos, pe controlerul de domeniu, deschidem un prompt de comandă cu drepturi de administrator și introducem:

# 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

Acolo unde indicăm FQDN-ul nostru pfSense, asigurați-vă că respectați cazul, în parametrul mapuser introducem contul nostru de domeniu și parola acestuia, iar în cripto selectăm metoda de criptare, am folosit rc4 pentru lucru și în câmpul -out selectăm unde vom trimite fișierul nostru cheie gata făcut.
După crearea cu succes a fișierului cheie, îl vom trimite către pfSense nostru, am folosit Far pentru asta, dar puteți face acest lucru și folosind comenzi, chit sau prin interfața web pfSense din secțiunea „DiagnosticsCommand Line”.

Acum putem edita create /etc/krb5.conf

Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

unde /etc/krb5.keytab este fișierul cheie pe care l-am creat.

Asigurați-vă că verificați funcționarea Kerberos folosind kinit; dacă nu funcționează, nu are rost să citiți mai departe.

Configurarea autentificării Squid și a listei de acces fără autentificare

După ce am configurat cu succes Kerberos, îl vom atașa la Squid-ul nostru.

Pentru a face acest lucru, accesați Serverul proxy ServicesSquid și, în setările principale, mergeți în partea de jos, acolo vom găsi butonul „Setări avansate”.

În câmpul Opțiuni personalizate (înainte de autentificare), introduceți:

#Хелперы
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

Unde programul de negociere auth_param /usr/local/libexec/squid/negotiate_kerberos_auth — selectează asistentul de autentificare Kerberos de care avem nevoie.

Ключ -s cu sens GSS_C_NO_NAME — determină utilizarea oricărui cont din fișierul cheie.

Ключ -k cu sens /usr/local/etc/squid/squid.keytab — determină utilizarea acestui fișier keytab special. În cazul meu, acesta este același fișier keytab pe care l-am generat, pe care l-am copiat în directorul /usr/local/etc/squid/ și l-am redenumit pentru că squid nu a vrut să fie prieten cu acel director, se pare că nu aveam suficiente drepturi.

Ключ -t cu sens -t nici unul — dezactivează cererile ciclice către controlerul de domeniu, ceea ce reduce foarte mult sarcina pe acesta dacă aveți mai mult de 50 de utilizatori.
În timpul testului, puteți adăuga, de asemenea, comutatorul -d - adică diagnostice, vor fi afișate mai multe jurnale.
auth_param negociază copii 1000 — determină câte procese de autorizare simultane pot fi lansate
auth_param negociază keep_alive on — previne deconectarea conexiunii în timpul interogării lanțului de autorizare
acl auth proxy_auth NECESAR — creează și necesită o listă de control al accesului care include utilizatorii autorizați
acl nonauth dstdomain „/etc/squid/nonauth.txt” — informăm squid despre lista de acces nonauth, care conține domenii de destinație la care toată lumea va avea întotdeauna acces. Creăm fișierul în sine și introducem domeniile din interiorul acestuia în format

.whatsapp.com
.whatsapp.net

Whatsapp este folosit ca exemplu dintr-un motiv - este foarte pretențios în privința proxy-urilor de autentificare și nu va funcționa dacă nu este permis înainte de autentificare.
http_access permite nonauth — permiteți accesul tuturor la această listă
http_access deny !auth — interzicem accesul la alte site-uri pentru utilizatorii neautorizați
http_access permite autentificare — permite accesul utilizatorilor autorizați.
Gata, Squid-ul în sine este configurat, acum este timpul să începem filtrarea pe grupuri.

Configurarea SquidGuard

Accesați Filtrul proxy ServicesSquidGuard.

În Opțiuni LDAP introducem detaliile contului nostru folosit pentru autentificarea Kerberos, dar în următorul format:

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

Dacă există spații sau caractere non-latine, întreaga intrare ar trebui să fie închisă între ghilimele simple sau duble:

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

Apoi, asigurați-vă că bifați aceste casete:

Server proxy gratuit pentru întreprinderi cu autorizare de domeniu

Pentru a opri DOMAINpfsense inutil DOMENIUL.LOCAL la care intregul sistem este foarte sensibil.

Acum să mergem la Group Acl și să legăm grupurile noastre de acces la domenii, folosesc nume simple precum group_0, group_1 etc. până la 3, unde 3 înseamnă acces doar la lista albă, iar 0 înseamnă că totul este posibil.

Grupurile sunt legate după cum urmează:

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))

ne salvăm grupul, mergem la Times, acolo am creat un decalaj care înseamnă că va funcționa întotdeauna, acum mergem la Categorii țintă și creăm liste la discreția noastră, după crearea listelor revenim la grupurile noastre și în cadrul grupului folosim butoane pentru a selecta cine poate merge unde și cine nu poate merge unde .

LightSquid și sqstat

Dacă în timpul procesului de configurare am selectat loopback în setările squid și am deschis posibilitatea de a accesa 7445 în firewall atât în ​​rețeaua noastră, cât și pe pfSense în sine, atunci când mergem la DiagnosticsSquid Proxy Reports putem deschide cu ușurință atât sqstat, cât și Lighsquid, pentru din urmă vom avea nevoie. Acolo poți veni cu un login și o parolă și poți alege și un design.

Completare

pfSense este un instrument foarte puternic care poate face o mulțime de lucruri - proxy traficul și controlul accesului utilizatorilor la Internet este doar o grămadă a întregii funcționalități, cu toate acestea, într-o întreprindere cu 500 de mașini, a rezolvat problema și ne-a permis să economisim la achiziționarea unui proxy.

Sper că acest articol va ajuta pe cineva să rezolve o problemă destul de relevantă pentru întreprinderile mijlocii și mari.

Sursa: www.habr.com

Adauga un comentariu