Besplatni proxy server za preduzeća sa autorizacijom domena

Besplatni proxy server za preduzeća sa autorizacijom domena

pfSense+Squid sa https filtriranjem + Jednostruka prijava (SSO) s grupnim filtriranjem Active Directory

Kratka pozadina

Kompanija je imala potrebu da implementira proxy server sa mogućnošću filtriranja pristupa stranicama (uključujući https) po grupama iz AD tako da korisnici ne unose dodatne lozinke, a mogu se administrirati sa web interfejsa. Dobra aplikacija, zar ne?

Tačan odgovor bi bio kupiti rješenja kao što su Kerio Control ili UserGate, ali kao i uvijek novca nema, ali postoji potreba.

Ovdje u pomoć priskače stari dobri Squid, ali opet – gdje mogu nabaviti web interfejs? SAMS2? Moralno zastarjelo. Tu pfSense priskače u pomoć.

Opis

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

Za praćenje će se koristiti Lightsquid, sqstat i interni pfSense sistemi za praćenje.
Takođe će rešiti uobičajeni problem povezan sa uvođenjem tehnologije jedinstvenog prijavljivanja (SSO), odnosno aplikacija koje pokušavaju da surfuju internetom pod nalogom kompasa sa svojim sistemskim nalogom.

Priprema za instalaciju Squid

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

Unutar kojeg organiziramo autentifikaciju na samom firewall-u koristeći domenske račune. Upute.

Veoma je važno!

Pre nego što počnete da instalirate Squid, potrebno je da konfigurišete DNS server u pfsense-u, napravite A zapis i PTR zapis za njega na našem DNS serveru i konfigurišete NTP tako da se vreme ne razlikuje od vremena na kontroleru domena.

I na vašoj mreži omogućite WAN sučelje 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? Da li je uspostavljena LDAP veza sa domenom za autorizaciju na pfSense-u i vrijeme je sinhronizirano? Odlično. Vrijeme je za početak glavnog procesa.

Instalacija i predkonfiguracija

Squid, SquidGuard i LightSquid će biti instalirani iz pfSense menadžera paketa u odjeljku "System / Package Manager".

Nakon uspješne instalacije idite na "Usluge / Squid Proxy server /" i prije svega u kartici Lokalni keš konfigurirajte keširanje, sve sam postavio na 0, jer Ne vidim puno smisla u keširanju web lokacija, pretraživači rade odličan posao s ovim. Nakon podešavanja, pritisnite dugme "Sačuvaj" na dnu ekrana i to će nam dati priliku da izvršimo osnovna podešavanja proxyja.

Glavne postavke su sljedeće:

Besplatni proxy server za preduzeća sa autorizacijom domena

Zadani port je 3128, ali ja radije koristim 8080.

Odabrani parametri na kartici Proxy Interface određuju koja sučelja će naš proxy server slušati. Pošto je ovaj firewall napravljen na način da na Internetu izgleda kao WAN interfejs, iako LAN i WAN mogu biti na istoj lokalnoj podmreži, preporučujem da koristite LAN za proxy.

Povratna petlja je potrebna da bi sqstat radio.

Ispod ćete pronaći Transparent (transparentni) proxy postavke, kao i SSL filter, ali nam oni nisu potrebni, naš proxy neće biti transparentan, a za https filtriranje nećemo zamijeniti certifikat (imamo tok dokumenata, banku klijenti, itd.), pogledajmo samo stisak ruke.

U ovoj fazi trebamo otići na naš kontroler domene, kreirati nalog za autentifikaciju u njemu (možete koristiti i onaj koji je konfiguriran za autentifikaciju na samom pfSenseu). Evo vrlo važnog faktora - ako namjeravate koristiti AES128 ili AES256 enkripciju - označite odgovarajuća polja u postavkama vašeg naloga.

Ako je vaša domena veoma složena šuma sa velikim brojem direktorijuma ili je vaša domena .local, onda je MOGUĆE, ali nije sigurno, da ćete morati da koristite jednostavnu lozinku za ovaj nalog, greška je poznata, ali je možda jednostavno neće raditi sa složenom lozinkom, morate provjeriti u konkretnom slučaju.

Besplatni proxy server za preduzeća sa autorizacijom domena

Nakon toga kreiramo ključnu datoteku za kerberos, otvaramo komandnu liniju s administratorskim pravima na kontroleru domene i unosimo:

# 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štujte slučaj, unesite naš račun domene i njegovu lozinku u parametar mapuser, a u kripto biramo metodu enkripcije, ja sam koristio rc4 za rad i u -out polju biramo gdje ćemo će poslati našu gotovu ključnu datoteku.
Nakon što smo uspješno kreirali ključnu datoteku, poslat ćemo je u naš pfSense, za ovo sam koristio Far, ali to možete učiniti i komandama i kitom ili putem pfSense web sučelja u odjeljku "Komandna linija za dijagnostiku".

Sada možemo urediti/kreirati /etc/krb5.conf

Besplatni proxy server za preduzeća sa autorizacijom domena

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

Obavezno provjerite rad kerberosa koristeći kinit, ako ne radi, nema smisla dalje čitati.

Konfiguriranje Squid autentikacije i liste pristupa 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 spustite se do samog dna, tamo ćemo pronaći dugme "Napredne postavke".

U polje Custom Options (Before Auth) 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 - bira kerberos pomoćnika za autentifikaciju koji nam je potreban.

Ključ -s sa značenjem GSS_C_NO_NAME — definiše upotrebu bilo kog naloga iz fajla ključeva.

Ključ -k sa značenjem /usr/local/etc/squid/squid.keytab - odlučuje da koristi ovu konkretnu datoteku keytab. U mom slučaju, ovo je ista datoteka keytab koju smo mi kreirali, koju sam kopirao u direktorij /usr/local/etc/squid/ i preimenovao, jer squid nije htio biti prijatelj s tim direktorijem, očigledno nije bilo dovoljno prava.

Ključ -t sa značenjem -t nijedan - onemogućava ciklične zahtjeve prema kontroleru domene, što uvelike smanjuje opterećenje na njemu ako imate više od 50 korisnika.
Za vrijeme trajanja testa možete dodati i tipku -d - tj. dijagnostika, prikazat će se više dnevnika.
auth_param pregovarati o djeci 1000 - određuje koliko simultanih procesa autorizacije može biti pokrenuto
auth_param pregovarati keep_alive on - ne dozvoljava prekid veze tokom prozivanja autorizacionog lanca
acl auth proxy_auth OBAVEZNO - kreira i zahtijeva listu kontrole pristupa koja uključuje korisnike koji su prošli autorizaciju
acl nonauth dstdomain "/etc/squid/nonauth.txt" - obavještavamo squid o listi pristupa bez autorizacije, koja sadrži odredišne ​​domene, kojima će uvijek biti svima dozvoljen pristup. Samu datoteku kreiramo i unutar nje unosimo domene u formatu

.whatsapp.com
.whatsapp.net

Whatsapp se ne koristi uzalud kao primjer - vrlo je izbirljiv oko proxyja s autentifikacijom i neće raditi ako nije dopušten prije autentifikacije.
http_access dopusti nonauth - dozvoli pristup ovoj listi svima
http_access odbijen !auth - neovlaštenim korisnicima zabranjujemo pristup drugim stranicama
http_access dozvoli auth - dozvoliti pristup ovlaštenim korisnicima.
To je to, sam squid je konfiguriran, sada je vrijeme da počnemo filtrirati po grupama.

Konfiguriranje SquidGuarda

Idite na ServicesSquidGuard proxy filter.

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

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

Ako ima razmaka ili znakova koji nisu latinični, cijeli ovaj 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 obavezno označite ove okvire:

Besplatni proxy server za preduzeća sa autorizacijom domena

Da biste prekinuli nepotreban DOMAINpfsense DOMAIN.LOCAL na koji je cijeli sistem vrlo osjetljiv.

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

Grupe su povezane na sledeć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))

sačuvaj našu grupu, idi na Times, tamo sam napravio jednu prazninu koja znači da uvijek radim, sada idi na Target Categories i kreiraj liste po našem nahođenju, nakon kreiranja lista vraćamo se u naše grupe i unutar grupe sa dugmadima biramo ko može ići gde, a ko ne može gde.

LightSquid i sqstat

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

Završetak

pfSense je vrlo moćan alat koji može učiniti mnogo stvari - i proxy prometa i kontrola nad pristupom korisnika Internetu samo su djelić cjelokupne funkcionalnosti, međutim, u preduzeću sa 500 mašina, ovo je riješilo problem i uštedjelo na kupovina proxyja.

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

izvor: www.habr.com

Dodajte komentar