Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

pfSense+Squid s https filtriranjem + Single sign-on (SSO) s Active Directory grupnim filtriranjem

Kratka pozadina

Tvrtka je trebala implementirati proxy poslužitelj s mogućnošću filtriranja pristupa stranicama (uključujući https) prema grupama iz AD-a tako da korisnici ne unose nikakve dodatne lozinke, a njime se može upravljati s web sučelja. Dobra aplikacija, zar ne?

Točan odgovor bi bio kupiti rješenja kao što su Kerio Control ili UserGate, ali kao i uvijek nema novca, ali ima potrebe.

Tu u pomoć uskače dobri stari Squid, ali opet – gdje mogu nabaviti web sučelje? SAMS2? Moralno zastario. Ovdje pfSense dolazi u pomoć.

Opis

Ovaj članak će opisati kako konfigurirati Squid proxy poslužitelj.
Kerberos će se koristiti za autorizaciju korisnika.
SquidGuard će se koristiti za filtriranje po grupama domena.

Za nadzor će se koristiti Lightsquid, sqstat i interni pfSense nadzorni sustavi.
Također će riješiti čest problem povezan s uvođenjem tehnologije jedinstvene prijave (SSO), odnosno aplikacije koje pokušavaju surfati internetom pod kompas računom sa svojim sistemskim računom.

Priprema za instalaciju Squida

pfSense će se uzeti kao osnova, Upute za instalaciju.

Unutar kojeg organiziramo autentifikaciju na samom vatrozidu pomoću domenskih računa. Upute.

Vrlo je važno!

Prije nego počnete instalirati Squid, potrebno je konfigurirati DNS poslužitelj u pfsensu, napraviti A zapis i PTR zapis za njega na našem DNS poslužitelju te konfigurirati NTP tako da se vrijeme ne razlikuje od vremena na kontroleru domene.

I na vašoj mreži omogućite WAN sučelju pfSense-a da ide na Internet, a korisnicima na lokalnoj mreži da se povežu na LAN sučelje, uključujući portove 7445 i 3128 (u mom slučaju 8080).

Sve je spremno? Je li uspostavljena LDAP veza s domenom za autorizaciju na pfSense i je li vrijeme sinkronizirano? Sjajno. Vrijeme je za početak glavnog procesa.

Instalacija i predkonfiguracija

Squid, SquidGuard i LightSquid bit će instalirani iz upravitelja paketa pfSense u odjeljku "System / Package Manager".

Nakon uspješne instalacije idite na "Services / Squid Proxy server /" i prije svega u kartici Local Cache konfigurirajte caching, sve sam postavio na 0 jer Ne vidim puno smisla u predmemoriranju web stranica, preglednici to odlično rade. Nakon postavljanja, pritisnite gumb "Spremi" na dnu ekrana i to će nam dati priliku da napravimo osnovne postavke proxyja.

Glavne postavke su sljedeće:

Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

Zadani port je 3128, ali radije koristim 8080.

Odabrani parametri u kartici Proxy sučelja određuju koja će sučelja naš proxy poslužitelj slušati. Budući da je ovaj vatrozid izgrađen na takav način da na internetu izgleda kao WAN sučelje, iako LAN i WAN mogu biti na istoj lokalnoj podmreži, preporučujem korištenje LAN-a za proxy.

Povratna petlja je potrebna da bi sqstat radio.

Ispod ćete pronaći Transparentne (transparentne) proxy postavke, kao i SSL Filter, ali oni nam ne trebaju, naš proxy neće biti transparentan, a za https filtriranje nećemo zamijeniti certifikat (imamo protok dokumenata, banku klijenti itd.), pogledajmo samo stisak ruke.

U ovoj fazi moramo otići do našeg kontrolera domene, stvoriti račun za provjeru autentičnosti u njemu (možete koristiti i onaj koji je konfiguriran za provjeru autentičnosti na samom pfSense-u). Ovdje je vrlo važan faktor - ako namjeravate koristiti AES128 ili AES256 enkripciju - označite odgovarajuće okvire u postavkama vašeg računa.

Ako je vaša domena vrlo složena šuma s velikim brojem direktorija ili je vaša domena .local, onda je MOGUĆE, ali nije sigurno, da ćete morati koristiti jednostavnu lozinku za ovaj račun, greška je poznata, ali možda jednostavno neće raditi sa složenom lozinkom, trebate provjeriti na određenom slučaju.

Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

Nakon toga kreiramo ključnu datoteku za kerberos, otvorimo naredbeni redak s administratorskim pravima na kontroleru domene i unesemo:

# 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

Tamo gdje naznačimo naš FQDN pfSense, obavezno poštujmo velika i mala slova, u parametar mapuser upisujemo naš račun domene i njegovu lozinku, au kripto biramo metodu enkripcije, ja sam koristio rc4 za rad i u polju -out biramo gdje ćemo poslat će našu gotovu ključnu datoteku.
Nakon uspješne izrade ključne datoteke, poslat ćemo je našem pfSense-u, za to sam koristio Far, ali to možete učiniti i pomoću naredbi i putty-a ili putem pfSense web sučelja u odjeljku "Diagnostics Command Line".

Sada možemo uređivati/kreirati /etc/krb5.conf

Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

gdje je /etc/krb5.keytab ključna datoteka koju smo stvorili.

Obavezno provjerite rad kerberosa pomoću kinita, ako ne radi, nema smisla čitati dalje.

Konfiguriranje Squid autentifikacije i pristupne liste bez autentifikacije

Nakon što smo uspješno konfigurirali kerberos, pričvrstit ćemo ga na naš Squid.

Da biste to učinili, idite na ServicesSquid Proxy Server i u glavnim postavkama idite do samog dna, tamo ćemo pronaći gumb "Napredne postavke".

U polje Prilagođene opcije (prije autentifikacije) unesite:

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

gdje auth_param pregovarački program /usr/local/libexec/squid/negotiate_kerberos_auth - odabire autentifikacijski kerberos pomoćnik koji nam je potreban.

ključ -s sa značenjem GSS_C_NO_NAME — definira korištenje bilo kojeg računa iz datoteke ključa.

ključ -k sa značenjem /usr/local/etc/squid/squid.keytab - odlučuje koristiti ovu određenu datoteku s tablicom ključeva. U mom slučaju, ovo je ista datoteka keytab koju smo stvorili, koju sam kopirao u direktorij /usr/local/etc/squid/ i preimenovao ga, jer lignja nije htjela biti prijatelj s tim direktorijem, očito nije bilo dovoljno prava.

ključ -t sa značenjem -t nijedan - onemogućuje cikličke zahtjeve kontroleru domene, što uvelike smanjuje opterećenje ako imate više od 50 korisnika.
Za vrijeme trajanja testa možete dodati i ključ -d - tj. dijagnostika, prikazat će se više zapisa.
auth_param dogovori djecu 1000 - određuje koliko se istovremenih procesa autorizacije može pokrenuti
auth_param pregovarati keep_alive on - ne dopušta prekid veze tijekom prozivanja autorizacijskog lanca
acl auth proxy_auth POTREBNO - kreira i zahtijeva listu kontrole pristupa koja uključuje korisnike koji su prošli autorizaciju
acl nonauth dstdomain "/etc/squid/nonauth.txt" - informiramo lignju o nonauth access listi, koja sadrži odredišne ​​domene, kojima će uvijek biti dopušten pristup svima. Kreiramo samu datoteku, a unutar nje unosimo domene u formatu

.whatsapp.com
.whatsapp.net

Whatsapp nije uzalud korišten kao primjer - vrlo je izbirljiv u pogledu proxyja s autentifikacijom i neće raditi ako nije dopušten prije autentifikacije.
http_access dopustiti nonauth - dopustite pristup ovom popisu svima
http_access deny !auth - zabranjujemo pristup neovlaštenim korisnicima drugim stranicama
http_access dopustiti aut - dopustiti pristup ovlaštenim korisnicima.
To je to, sama lignja je konfigurirana, sada je vrijeme za početak filtriranja po grupama.

Konfiguriranje SquidGuarda

Idite na ServicesSquidGuard Proxy Filter.

U LDAP Options unosimo podatke našeg računa koji se koristi za kerberos autentifikaciju, ali u sljedećem formatu:

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

Ako postoje razmaci ili nelatinični znakovi, ovaj cijeli unos treba staviti u jednostruke ili dvostruke navodnike:

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

Zatim svakako potvrdite ove okvire:

Besplatni proxy poslužitelj za tvrtke s autorizacijom domene

Za odsijecanje nepotrebnog DOMAINpfsense DOMENA.LOKALNO na koje je cijeli sustav vrlo osjetljiv.

Sada idemo na Group Acl i vežemo naše grupe za pristup domeni, koristim jednostavna imena kao što su group_0, group_1 itd. do 3, gdje je 3 pristup samo bijelom popisu, a 0 - sve je moguće.

Grupe su povezane na sljedeći način:

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

spremite našu grupu, idite na Times, tamo sam napravio jednu prazninu što znači da uvijek radi, sada idite na Target Categories i kreirajte popise po vlastitom nahođenju, nakon kreiranja popisa vraćamo se u naše grupe i unutar grupe s gumbima biramo tko može ići gdje, a tko ne može gdje .

LightSquid i sqstat

Ako smo tijekom procesa konfiguracije odabrali povratnu petlju u postavkama squida i otvorili mogućnost pristupa 7445 u vatrozidu i na našoj mreži i na samom pfSenseu, tada kada odemo na Squid Proxy Reports Diagnostics, možemo lako otvoriti i sqstat i Lighsquid, za potonje će nam trebati Na istom mjestu osmislite korisničko ime i lozinku, a postoji i mogućnost odabira dizajna.

Završetak

pfSense je vrlo moćan alat koji može puno toga - i prometni proxy i kontrola nad korisničkim pristupom internetu samo su djelić cjelokupne funkcionalnosti, međutim, u poduzeću s 500 strojeva, ovo je riješilo problem i uštedjelo na kupnja proxyja.

Nadam se da će ovaj članak pomoći nekome da riješi problem koji je vrlo relevantan za srednja i velika poduzeća.

Izvor: www.habr.com

Dodajte komentar