Brezplačni proxy strežnik za podjetja z avtorizacijo domene

Brezplačni proxy strežnik za podjetja z avtorizacijo domene

pfSense+Squid s filtriranjem https + tehnologija enotne prijave (SSO) s filtriranjem po skupinah Active Directory

Kratko ozadje

Podjetje je moralo implementirati proxy strežnik z možnostjo filtriranja dostopa do spletnih mest (vključno s https) po skupinah iz AD, tako da uporabniki niso vnašali dodatnih gesel, upravljanje pa je bilo mogoče izvajati iz spletnega vmesnika. Ni slaba aplikacija, kajne?

Pravilen odgovor bi bil nakup rešitev, kot sta Kerio Control ali UserGate, a denarja kot vedno ni, je pa potreba.

Tukaj nam na pomoč priskoči dobri stari Squid, ampak spet, kje lahko dobim spletni vmesnik? SAMS2? Moralno zastarelo. Tu na pomoč priskoči pfSense.

Opis

Ta članek opisuje, kako konfigurirati proxy strežnik Squid.
Kerberos bo uporabljen za avtorizacijo uporabnikov.
SquidGuard bo uporabljen za filtriranje po domenskih skupinah.

Za spremljanje bodo uporabljeni sistemi Lightsquid, sqstat in notranji nadzorni sistemi pfSense.
Rešen bo tudi pogost problem, povezan z implementacijo tehnologije enotne prijave (SSO), in sicer aplikacije, ki poskušajo dostopati do interneta pod računom compass svojega sistemskega računa.

Priprava na namestitev Squid

pfSense bo uporabljen kot osnova, Navodila za namestitev.

Znotraj tega organiziramo avtentikacijo do samega požarnega zidu z uporabo domenskih računov. Navodila.

To je zelo pomembno!

Preden začnete nameščati Squid, morate konfigurirati DNS strežnik v pfsense, zanj narediti zapis A in PTR zapis na našem DNS strežniku ter konfigurirati NTP tako, da se čas ne razlikuje od časa na krmilniku domene.

In v vašem omrežju zagotovite možnost, da vmesnik pfSense WAN dostopa do interneta in da se uporabniki v lokalnem omrežju povežejo z vmesnikom LAN, tudi prek vrat 7445 in 3128 (v mojem primeru 8080).

Je vse pripravljeno? Ali je domena povezana preko LDAP za avtorizacijo na pfSense in ali je čas sinhroniziran? Super. Čas je, da začnemo glavni postopek.

Namestitev in predkonfiguracija

Squid, SquidGuard in LightSquid bomo namestili iz upravitelja paketov pfSense v razdelku »System/Package Manager«.

Po uspešni namestitvi grem na “Services/Squid Proxy server/” in najprej v zavihku Local Cache nastavim caching, vse nastavim na 0, ker Ne vidim smisla v predpomnjenju spletnih mest; brskalniki to dobro obvladajo. Po nastavitvi pritisnemo gumb “Shrani” na dnu zaslona in to nam bo dalo možnost za osnovne nastavitve proxyja.

Glavne nastavitve so naslednje:

Brezplačni proxy strežnik za podjetja z avtorizacijo domene

Privzeta vrata so 3128, vendar raje uporabljam 8080.

Izbrani parametri v zavihku Proxy Interface določajo, katere vmesnike bo poslušal naš proxy strežnik. Ker je ta požarni zid zgrajen tako, da gleda na internet prek vmesnika WAN, čeprav sta lahko LAN in WAN v istem lokalnem podomrežju, priporočam uporabo LAN za posrednika.

Za delovanje sqstat je potrebna povratna zanka.

Spodaj boste našli Transparent proxy nastavitve, pa tudi SSL filter, vendar jih ne potrebujemo, naš proxy ne bo pregleden, pri https filtriranju pa se ne bomo ukvarjali z zamenjavo potrdil (navsezadnje imamo upravljanje dokumentov , bančne stranke itd.), Poglejmo samo rokovanje.

Na tej stopnji moramo iti v naš krmilnik domene, v njem ustvariti račun za preverjanje pristnosti (lahko uporabite tudi tistega, ki ste ga konfigurirali za preverjanje pristnosti na samem pfSense). Zelo pomemben dejavnik pri tem je, da če nameravate uporabljati šifriranje AES128 ali AES256, potrdite ustrezna polja v nastavitvah računa.

Če je vaša domena zelo zapleten gozd z velikim številom imenikov ali je vaša domena .local, potem boste MOGOČE, vendar ne zagotovo, morali uporabiti preprosto geslo za ta račun, napaka je znana, vendar z zapletenim geslo morda preprosto ne deluje, morate preveriti na določenem posameznem primeru.

Brezplačni proxy strežnik za podjetja z avtorizacijo domene

Po vsem tem ustvarimo ključno datoteko za Kerberos, na krmilniku domene odpremo ukazni poziv s skrbniškimi pravicami in vnesemo:

# 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

Kjer navedemo naš FQDN pfSense, pazimo na velike in male črke, v parameter mapuser vnesemo naš domenski račun in njegovo geslo, v crypto pa izberemo način šifriranja, za delo sem uporabil rc4 in v polju -out izberemo kje poslali vam bomo že pripravljeno ključno datoteko.
Po uspešni izdelavi ključne datoteke jo bomo poslali v naš pfSense, za to sem uporabil Far, lahko pa to storite tudi z ukazi, putty ali prek spletnega vmesnika pfSense v razdelku “DiagnosticsCommand Line”.

Zdaj lahko uredimo create /etc/krb5.conf

Brezplačni proxy strežnik za podjetja z avtorizacijo domene

kjer je /etc/krb5.keytab ključna datoteka, ki smo jo ustvarili.

Ne pozabite preveriti delovanja Kerberosa z uporabo kinit; če ne deluje, nima smisla brati naprej.

Konfiguriranje avtentikacije Squid in dostopnega seznama brez avtentikacije

Ko uspešno konfiguriramo Kerberos, ga bomo priključili na naš Squid.

Če želite to narediti, pojdite na ServicesSquid Proxy Server in v glavnih nastavitvah pojdite čisto na dno, tam bomo našli gumb »Napredne nastavitve«.

V polje Možnosti po meri (pred avtorizacijo) vnesite:

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

kje auth_param program za pogajanja /usr/local/libexec/squid/negotiate_kerberos_auth — izbere pomočnika za preverjanje pristnosti Kerberos, ki ga potrebujemo.

Ključ -s s pomenom GSS_C_NO_NAME — določa uporabo katerega koli računa iz datoteke ključev.

Ključ -k s pomenom /usr/local/etc/squid/squid.keytab — se odloči, da bo uporabil to posebno datoteko keytab. V mojem primeru je to ista datoteka keytab, ki smo jo ustvarili, ki sem jo kopiral v imenik /usr/local/etc/squid/ in jo preimenoval, ker squid ni hotel biti prijatelj s tem imenikom, očitno nisem imel dovolj pravic.

Ključ -t s pomenom -t nobenega — onemogoči ciklične zahteve krmilniku domene, kar ga močno zmanjša, če imate več kot 50 uporabnikov.
Med testom lahko dodate tudi stikalo -d - torej diagnostika, bo prikazanih več dnevnikov.
auth_param pogajanja o otrocih 1000 — določa, koliko sočasnih avtorizacijskih procesov je mogoče sprožiti
auth_param pogajanja keep_alive on — preprečuje prekinitev povezave med preverjanjem avtorizacijske verige
acl auth proxy_auth ZAHTEVAN — ustvari in zahteva seznam za nadzor dostopa, ki vključuje pooblaščene uporabnike
acl nonauth dstdomain "/etc/squid/nonauth.txt" — lignje obvestimo o seznamu dostopov nonauth, ki vsebuje ciljne domene, do katerih bo vsem vedno dovoljen dostop. Ustvarimo samo datoteko, vanjo pa vnesemo domene v formatu

.whatsapp.com
.whatsapp.net

Whatsapp je uporabljen kot primer z razlogom – zelo je izbirčen glede posrednikov za preverjanje pristnosti in ne bo deloval, če ni dovoljen pred preverjanjem pristnosti.
http_access dovoli nonauth — omogoči dostop do tega seznama vsem
http_access deny !auth — nepooblaščenim uporabnikom prepovedujemo dostop do drugih spletnih mest
http_access dovoli avt — dovoli dostop pooblaščenim uporabnikom.
To je to, sam Squid je konfiguriran, zdaj je čas, da začnete filtrirati po skupinah.

Nastavitev SquidGuard

Pojdite na ServicesSquidGuard Proxy Filter.

V možnostih LDAP vnesemo podrobnosti našega računa, ki se uporablja za preverjanje pristnosti Kerberos, vendar v naslednji obliki:

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

Če obstajajo presledki ali nelatinični znaki, mora biti ta celoten vnos v enojnih ali dvojnih narekovajih:

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

Nato potrdite ta polja:

Brezplačni proxy strežnik za podjetja z avtorizacijo domene

Za odrezovanje nepotrebnega DOMAINpfsense DOMAIN.LOCAL, na katerega je celoten sistem zelo občutljiv.

Zdaj pa pojdimo na Group Acl in povežimo naše skupine za dostop do domene, uporabljam preprosta imena, kot so group_0, group_1 itd. do 3, kjer 3 pomeni dostop samo do belega seznama, 0 pa pomeni, da je vse mogoče.

Skupine so povezane takole:

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

shranimo svojo skupino, pojdimo na Čase, tam sem ustvaril eno vrzel, kar pomeni, da bo vedno delovalo, zdaj gremo na Ciljne kategorije in ustvarimo sezname po lastni presoji, po ustvarjanju seznamov se vrnemo v naše skupine in znotraj skupine uporabljamo gumbe izbrati, kdo lahko kam gre in kdo kam ne more.

LightSquid in sqstat

Če smo med postopkom namestitve izbrali povratno zanko v nastavitvah squid in odprli možnost dostopa do 7445 v požarnem zidu v našem omrežju in na samem pfSense, potem lahko, ko gremo v DiagnosticsSquid Proxy Reports, zlahka odpremo sqstat in Lighsquid za slednje bomo potrebovali. Tam si lahko izmislite prijavo in geslo, izberete pa lahko tudi dizajn.

Zaključek

pfSense je zelo zmogljivo orodje, ki zmore marsikaj – posredovanje prometa in nadzor dostopa uporabnikov do interneta je le zrno celotne funkcionalnosti, vendar je v podjetju s 500 stroji rešilo težavo in nam omogočilo prihranek o nakupu pooblaščenca.

Upam, da bo ta članek komu pomagal rešiti problem, ki je zelo pomemben za srednja in velika podjetja.

Vir: www.habr.com

Dodaj komentar