Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

pfSense+Squid mei https-filtering + Single sign-on (SSO) mei Active Directory-groepfiltering

Koarte eftergrûn

It bedriuw moast in proxy-tsjinner ymplementearje mei de mooglikheid om tagong ta siden (ynklusyf https) te filterjen troch groepen fan AD, sadat brûkers gjin ekstra wachtwurden ynfiere en kinne wurde beheard fanút de webynterface. Goede applikaasje, is it net?

It juste antwurd soe wêze om oplossingen te keapjen lykas Kerio Control of UserGate, mar lykas altyd is d'r gjin jild, mar d'r is ferlet.

Dit is wêr't de goede âlde Squid ta de rêding komt, mar wer - wêr kin ik in webynterface krije? SAMS2? Moreel ferâldere. Dit is wêr pfSense komt te rêden.

beskriuwing

Dit artikel sil beskriuwe hoe't jo de Squid proxy-tsjinner konfigurearje.
Kerberos sil brûkt wurde om brûkers te autorisearjen.
SquidGuard sil brûkt wurde om te filterjen op domeingroepen.

Lightsquid, sqstat en ynterne pfSense tafersjochsystemen sille wurde brûkt foar tafersjoch.
It sil ek in mienskiplik probleem oplosse ferbûn mei de yntroduksje fan single sign-on (SSO) technology, nammentlik applikaasjes dy't besykje te surfen op it ynternet ûnder it kompas account mei harren systeem account.

Tariede op it ynstallearjen fan Squid

pfSense sil wurde nommen as basis, Ynstallaasje ynstruksjes.

Binnen wêryn wy autentikaasje organisearje op 'e firewall sels mei domeinakkounts. Ynstruksje

It is tige wichtich!

Foardat jo begjinne mei it ynstallearjen fan Squid, moatte jo de DNS-tsjinner yn pfsense konfigurearje, in A-record en in PTR-record foar meitsje op ús DNS-tsjinner, en NTP ynstelle sadat de tiid net ferskilt fan 'e tiid op' e domeincontroller.

En op jo netwurk, jouwe de mooglikheid foar de WAN-ynterface fan pfSense om nei it ynternet te gean, en brûkers op it lokale netwurk om te ferbinen mei de LAN-ynterface, ynklusyf op havens 7445 en 3128 (yn myn gefal 8080).

Is alles klear? Is de LDAP-ferbining oprjochte mei it domein foar autorisaasje op pfSense en de tiid is syngronisearre? Grut. It is tiid om it haadproses te begjinnen.

Ynstallaasje en pre-konfiguraasje

Squid, SquidGuard en LightSquid sille wurde ynstalleare fanút de pfSense-pakketbehearder yn 'e seksje "Systeem / pakketbehearder".

Gean nei suksesfolle ynstallaasje nei "Tsjinsten / Squid Proxy-tsjinner /" en yn it foarste plak, yn it ljepblêd Local Cache, konfigurearje caching, ik set alles op 0, om't Ik sjoch net folle punt yn caching siden, browsers dogge in geweldige baan mei dit. Druk nei it ynstellen op de knop "Bewarje" ûnderoan it skerm en dit sil ús de kâns jaan om basis proxy-ynstellingen te meitsjen.

De wichtichste ynstellings binne as folget:

Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

De standertpoarte is 3128, mar ik brûke leaver 8080.

De selekteare parameters yn it ljepblêd Proxy-ynterface bepale op hokker ynterfaces ús proxy-tsjinner harkje sil. Om't dizze brânmuorre op sa'n manier boud is dat it op it ynternet as in WAN-ynterface sjocht, ek al kinne LAN en WAN op itselde lokale subnet wêze, advisearje ik LAN te brûken foar de proxy.

Loopback is nedich foar sqstat om te wurkjen.

Hjirûnder fine jo de Transparante (transparante) proxy-ynstellingen, lykas SSL-filter, mar wy hawwe se net nedich, ús proxy sil net transparant wêze, en foar https-filtering sille wy it sertifikaat net ferfange (wy hawwe dokumintstream, bank kliïnten, ensfh.), litte wy gewoan nei de hândruk sjen.

Op dit poadium moatte wy nei ús domeincontroller gean, dêr in autentikaasjeakkount oanmeitsje (jo kinne ek dejinge brûke dy't konfigureare is foar autentikaasje op pfSense sels). Hjir is in heul wichtige faktor - as jo fan doel binne AES128- of AES256-fersifering te brûken - kontrolearje de passende fakjes yn jo akkountynstellingen.

As jo ​​domein in tige komplekse bosk is mei in grut oantal mappen of jo domein is .local, dan is it MOGELIJK, mar net wis, dat jo in ienfâldich wachtwurd brûke moatte foar dit akkount, de brek is bekend, mar it kin gewoan net wurkje mei in kompleks wachtwurd, jo moatte kontrolearje op in spesifyk bepaald gefal.

Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

Dêrnei meitsje wy in kaaibestân foar kerberos, iepenje in kommando-prompt mei administratorrjochten op 'e domeincontroller en fier yn:

# 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

Wêr't wy ús FQDN pfSense oanjaan, wês der wis fan dat jo de saak respektearje, ynfiere ús domeinaccount en syn wachtwurd yn 'e mapuser-parameter, en yn krypto selektearje wy de fersiferingsmetoade, ik brûkte rc4 foar wurk en yn it -out-fjild selektearje wy wêr't wy sil ús ôfmakke kaaibestân stjoere.
Nei it suksesfolle oanmeitsjen fan it kaaibestân, sille wy it nei ús pfSense stjoere, ik brûkte Far foar dit, mar jo kinne dit ek dwaan sawol mei kommando's as stopverf as fia de pfSense-webynterface yn 'e seksje "Diagnostyk Kommandorigel".

No kinne wy ​​/etc/krb5.conf bewurkje/oanmeitsje

Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

dêr't /etc/krb5.keytab it kaaitriem is dat wy makke hawwe.

Soargje derfoar dat jo de wurking fan kerberos kontrolearje mei kinit, as it net wurket, hat it gjin punt om fierder te lêzen.

Squid Authentication and Access List konfigurearje sûnder autentikaasje

Nei't jo kerberos mei súkses konfigureare hawwe, sille wy it oan ús Squid befestigje.

Om dit te dwaan, gean nei ServicesSquid Proxy Server en gean yn 'e haadynstellingen nei ûnderen del, dêr sille wy de knop "Avansearre ynstellings" fine.

Fier yn it fjild Oanpaste opsjes (foar ferifikaasje) yn:

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

wêr auth_param ûnderhannelingsprogramma /usr/local/libexec/squid/negotiate_kerberos_auth - selektearje de autentikaasje kerberos helper wy nedich.

Key -s mei betsjutting GSS_C_NO_NAME - definiearret it gebrûk fan elk akkount út it kaaibestân.

Key -k mei betsjutting /usr/local/etc/squid/squid.keytab - bepaalt om dit bepaalde keytab-bestân te brûken. Yn myn gefal is dit itselde keytab-bestân dat wy makke hawwe, dy't ik kopieare nei de map /usr/local/etc/squid/ en it omneame, om't de inktvis gjin freonen wêze woe mei dy map, blykber wiene d'r net genôch rjochten.

Key -t mei betsjutting -t gjin - skeakelet syklyske oanfragen nei de domeincontroller út, wat de lading derop sterk ferminderet as jo mear as 50 brûkers hawwe.
Foar de doer fan 'e test kinne jo ek de -d-kaai tafoegje - i.e. diagnostyk, mear logs wurde werjûn.
auth_param ûnderhannelje bern 1000 - bepaalt hoefolle simultane autorisaasjeprosessen kinne wurde útfierd
auth_param ûnderhannelje keep_alive op - lit de ferbining net brekke tidens de polling fan 'e autorisaasjeketen
acl auth proxy_auth REQUIRED - makket en fereasket in tagongskontrôlelist dy't brûkers omfettet dy't autorisaasje hawwe trochjûn
acl nonauth dstdomain "/etc/squid/nonauth.txt" - wy ynformearje de inktvis oer de nonauth-tagongslist, dy't bestimmingsdomeinen befettet, dêr't elkenien altyd tagong krije sil. Wy meitsje it bestân sels, en binnen it ynfiere wy domeinen yn it formaat

.whatsapp.com
.whatsapp.net

Whatsapp wurdt net om 'e nocht brûkt as foarbyld - it is heul kieskeurich oer de proxy mei autentikaasje en sil net wurkje as it net tastien is foar autentikaasje.
http_access tastean nonaut - tastean elkenien tagong ta dizze list
http_access wegerje !auth - wy ferbiede tagong ta net-autorisearre brûkers nei oare siden
http_access tastean auth - tastean tagong ta autorisearre brûkers.
Dat is it, de inktvis sels is konfigureare, no is it tiid om te begjinnen mei filterjen troch groepen.

SquidGuard konfigurearje

Gean nei ServicesSquidGuard Proxy Filter.

Yn LDAP-opsjes fiere wy de gegevens fan ús akkount yn dy't brûkt wurde foar kerberos-ferifikaasje, mar yn it folgjende formaat:

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

As d'r spaasjes of net-Latynske tekens binne, moat dizze folsleine yngong ynsletten wurde yn inkele of dûbele oanhalingstekens:

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

Soargje derfoar dat jo dizze fakjes kontrolearje:

Fergese proxy-tsjinner foar ûndernimming mei domeinautorisaasje

Om ûnnedige DOMAINpfsense ôf te snijen DOMAIN.LOCAL dêr't it hiele systeem is tige gefoelich.

No geane wy ​​nei Group Acl en bine ús domein tagongsgroepen, ik brûk ienfâldige nammen lykas group_0, group_1, ensfh oant 3, wêr't 3 allinich tagong is ta de wite list, en 0 - alles is mooglik.

Groepen binne keppele as folget:

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

bewarje ús groep, gean nei Times, dêr haw ik ien gat makke, wat betsjuttet dat it altyd sil wurkje, gean no nei Doelkategoryen en meitsje listen nei ús goedtinken, nei it meitsjen fan de listen komme wy werom nei ús groepen en binnen de groep, brûk de knoppen om te selektearjen wa kin wêr hinne, en wa kin net wêr.

LightSquid en sqstat

As wy tidens it konfiguraasjeproses in loopback hawwe selekteare yn 'e squid-ynstellingen en de mooglikheid hawwe iepene om tagong te krijen ta 7445 yn' e firewall sawol op ús netwurk as op pfSense sels, dan kinne wy ​​​​by it gean nei Squid Proxy Reports Diagnostics maklik iepenje sawol sqstat as Lighsquid, foar de lêste sille wy nedich Op itselde plak, komme mei in brûkersnamme en wachtwurd, en der is ek de mooglikheid om te kiezen foar in ûntwerp.

Fertraging

pfSense is in heul krêftich ark dat in protte dingen kin dwaan - sawol ferkearsproxying as kontrôle oer brûkers tagong ta it ynternet binne mar in fraksje fan 'e hiele funksjonaliteit, lykwols, yn in bedriuw mei 500 masines, hat dit it probleem oplost en bewarre op it keapjen fan in proxy.

Ik hoopje dat dit artikel ien sil helpe om in probleem op te lossen dat frijwat relevant is foar middelgrutte en grutte bedriuwen.

Boarne: www.habr.com

Add a comment