Proxy server falas për ndërmarrje me autorizim domeni

Proxy server falas për ndërmarrje me autorizim domeni

pfSense+Squid me filtrim https + Teknologji me hyrje të vetme (SSO) me filtrim sipas grupeve të Active Directory

Sfond i shkurtër

Ndërmarrja kishte nevojë të zbatonte një server proxy me aftësinë për të filtruar aksesin në sajte (përfshirë https) sipas grupeve nga AD, në mënyrë që përdoruesit të mos vendosnin ndonjë fjalëkalim shtesë dhe administrimi të mund të bëhej nga ndërfaqja e internetit. Nuk është një aplikim i keq, apo jo?

Përgjigja e saktë do të ishte blerja e zgjidhjeve si Kerio Control ose UserGate, por si gjithmonë nuk ka para, por ka nevojë.

Këtu na vjen në ndihmë Squid i vjetër i mirë, por përsëri, ku mund ta gjej ndërfaqen e internetit? SAMS2? E vjetëruar moralisht. Kjo është ajo ku pfSense vjen në shpëtim.

Përshkrim

Ky artikull do të përshkruajë se si të konfiguroni një server proxy Squid.
Для авторизации пользователей будет использоваться Kerberos.
SquidGuard do të përdoret për të filtruar sipas grupeve të domenit.

Për monitorim do të përdoren sistemet e monitorimit Lightsquid, sqstat dhe pfSense.
Do të zgjidhet gjithashtu një problem i zakonshëm që lidhet me zbatimin e teknologjisë së hyrjes së vetme (SSO), përkatësisht aplikacionet që përpiqen të hyjnë në internet nën llogarinë e busullës së llogarisë së tyre të sistemit.

Përgatitja për të instaluar Squid

pfSense do të përdoret si bazë, Udhezime Instalimi.

Brenda të cilit ne organizojmë vërtetimin në vetë murin e zjarrit duke përdorur llogaritë e domenit. Udhëzimet.

Shume e rendesishme!

Перед началом установки Squid необходимо настроить DNS сервера в pfsense, сделать для него запись A и PTR записи на нашем DNS сервере и настроить NTP так, чтобы время не отличалось от времени на контроллере домена.

Dhe në rrjetin tuaj, siguroni mundësinë për ndërfaqen pfSense WAN për të hyrë në internet dhe për përdoruesit në rrjetin lokal që të lidhen me ndërfaqen LAN, duke përfshirë përmes portit 7445 dhe 3128 (në rastin tim, 8080).

Gjithçka është gati? A është i lidhur domeni nëpërmjet LDAP për autorizim në pfSense dhe a është koha e sinkronizuar? E madhe. Është koha për të filluar procesin kryesor.

Instalimi dhe konfigurimi paraprak

Ne do të instalojmë Squid, SquidGuard dhe LightSquid nga menaxheri i paketave pfSense në seksionin "System/Package Manager".

Pas instalimit të suksesshëm, shkoni te "Services/Squid Proxy server/" dhe para së gjithash, në skedën Local Cache, konfiguroni caching, vendosa gjithçka në 0, sepse Unë nuk shoh shumë kuptim në ruajtjen e faqeve në memorie; shfletuesit e trajtojnë këtë mirë. Pas vendosjes, shtypni butonin "Ruaj" në fund të ekranit dhe kjo do të na japë mundësinë të bëjmë cilësimet bazë të proxy.

Cilësimet kryesore janë si më poshtë:

Proxy server falas për ndërmarrje me autorizim domeni

Porta e paracaktuar është 3128, por unë preferoj të përdor 8080.

Parametrat e zgjedhur në skedën Ndërfaqja Proxy përcaktojnë se cilat ndërfaqe do të dëgjojë serveri ynë proxy. Meqenëse ky mur mbrojtës është ndërtuar në atë mënyrë që të shikojë internetin përmes ndërfaqes WAN, edhe pse LAN dhe WAN mund të jenë në të njëjtin nënrrjet lokal, unë rekomandoj përdorimin e LAN-it për përfaqësuesin.

Nevojitet loopback që sqstat të funksionojë.

Më poshtë do të gjeni cilësimet Transparent proxy, si dhe filtrin SSL, por nuk na duhen, proxy ynë nuk do të jetë transparent dhe për filtrimin https nuk do të merremi me zëvendësimin e certifikatës (në fund të fundit, ne kemi menaxhimin e dokumenteve , klientët e bankave, etj.), Le të shohim vetëm shtrëngimin e duarve.

Në këtë fazë, ne duhet të shkojmë te kontrolluesi ynë i domenit, të krijojmë një llogari në të për vërtetim (mund të përdorni gjithashtu atë që keni konfiguruar për vërtetim në vetë pfSense). Një faktor shumë i rëndësishëm këtu është që nëse keni ndërmend të përdorni enkriptimin AES128 ose AES256, kontrolloni kutitë e duhura në cilësimet e llogarisë tuaj.

Nëse domeni juaj është një pyll shumë kompleks me një numër të madh drejtorish ose domeni juaj është .local, atëherë MUNDËSISHT, por jo me siguri, do të duhet të përdorni një fjalëkalim të thjeshtë për këtë llogari, gabimi është i njohur, por me një kompleks kompleks fjalëkalimi thjesht mund të mos funksionojë, ju duhet të kontrolloni në një rast specifik individual.

Proxy server falas për ndërmarrje me autorizim domeni

Pas gjithë kësaj, ne krijojmë një skedar kyç për Kerberos, në kontrolluesin e domenit, hapim një komandë me të drejtat e administratorit dhe futni:

# 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

Aty ku tregojmë FQDN pfSense tonë, sigurohuni që të respektoni rastin, në parametrin mapuser futim llogarinë tonë të domenit dhe fjalëkalimin e tij, dhe në kripto zgjedhim metodën e kriptimit, unë përdora rc4 për punë dhe në fushën -out zgjedhim ku ne do të dërgojmë skedarin tonë të gatshëm të çelësit.
Pas krijimit të suksesshëm të skedarit të çelësit, ne do ta dërgojmë atë në pfSense tonë, unë përdora Far për këtë, por ju gjithashtu mund ta bëni këtë duke përdorur komanda, stuko ose përmes ndërfaqes në internet pfSense në seksionin "Diagnostics Command Line".

Tani mund të modifikojmë krijimin /etc/krb5.conf

Proxy server falas për ndërmarrje me autorizim domeni

ku /etc/krb5.keytab është skedari kyç që kemi krijuar.

Sigurohuni që të kontrolloni funksionimin e Kerberos duke përdorur kinit; nëse nuk funksionon, nuk ka kuptim të lexoni më tej.

Konfigurimi i Autentifikimit të Squid dhe Asnjë Lista e Aksesit të Autentifikimit

Pasi të kemi konfiguruar me sukses Kerberos, ne do ta bashkojmë atë me Squid-in tonë.

Për ta bërë këtë, shkoni te ServicesSquid Proxy Server dhe në cilësimet kryesore, shkoni në fund, atje do të gjejmë butonin "Cilësimet e avancuara".

Në fushën "Opsionet e personalizuara" (Përpara Auth), shkruani:

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

ku auth_param programi negociues /usr/local/libexec/squid/negotiate_kerberos_auth — zgjedh ndihmësin e vërtetimit të Kerberos që na nevojitet.

Ключ -s me kuptim GSS_C_NO_NAME — përcakton përdorimin e çdo llogarie nga skedari kyç.

Ключ -k me kuptim /usr/local/etc/squid/squid.keytab — përcakton të përdorë këtë skedar të veçantë të tastierës. Në rastin tim, ky është i njëjti skedar i tastierës që kemi gjeneruar, të cilin e kopjova në drejtorinë /usr/local/etc/squid/ dhe e riemërova sepse kallamari nuk donte të ishte mik me atë drejtori, me sa duket nuk e kisha. mjaft të drejta.

Ключ -t me kuptim -asnjë — çaktivizon kërkesat ciklike për kontrolluesin e domenit, gjë që redukton shumë ngarkesën në të nëse keni më shumë se 50 përdorues.
Gjatë provës, mund të shtoni edhe çelësin -d - d.m.th., diagnostifikimi, do të shfaqen më shumë regjistra.
auth_param negocioj femijet 1000 — përcakton se sa procese të njëkohshme autorizimi mund të nisen
auth_param negocioj mbaj_live në — parandalon shkëputjen e lidhjes gjatë votimit të zinxhirit të autorizimit
acl auth proxy_auth KËRKOHET — krijon dhe kërkon një listë të kontrollit të aksesit që përfshin përdoruesit e autorizuar
acl nonauth dstdomain "/etc/squid/nonauth.txt" — ne informojmë kallamarin për listën e aksesit nonauth, e cila përmban domenet e destinacionit në të cilat të gjithëve do t'u lejohet gjithmonë aksesi. Ne krijojmë vetë skedarin dhe futim domenet brenda tij në format

.whatsapp.com
.whatsapp.net

Whatsapp përdoret si shembull për një arsye - është shumë zgjedhës për përfaqësuesit e vërtetimit dhe nuk do të funksionojë nëse nuk lejohet përpara vërtetimit.
http_access lejo nonauth — lejo qasjen në këtë listë për të gjithë
http_access mohoj !auth — ne ndalojmë hyrjen në faqe të tjera për përdoruesit e paautorizuar
http_access lejo auth — lejoni aksesin për përdoruesit e autorizuar.
Kjo është ajo, vetë Squid është konfiguruar, tani është koha për të filluar filtrimin sipas grupeve.

Vendosja e SquidGuard

Shkoni te Filtri i përfaqësuesit ServicesSquidGuard.

Në Opsionet LDAP ne futim detajet e llogarisë sonë të përdorur për vërtetimin e Kerberos, por në formatin e mëposhtëm:

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

Nëse ka hapësira ose karaktere jo latine, e gjithë kjo hyrje duhet të mbyllet në thonjëza të vetme ose të dyfishta:

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

Tjetra, sigurohuni që të kontrolloni këto kuti:

Proxy server falas për ndërmarrje me autorizim domeni

Për të ndërprerë DOMAINpfsense të panevojshme DOMAIN.LOKALE ndaj të cilit i gjithë sistemi është shumë i ndjeshëm.

Tani le të shkojmë te Group Acl dhe të lidhim grupet tona të aksesit të domenit, unë përdor emra të thjeshtë si group_0, group_1, etj. deri në 3, ku 3 do të thotë akses vetëm në listën e bardhë dhe 0 do të thotë se gjithçka është e mundur.

Grupet janë të lidhura si më poshtë:

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 ruajmë grupin tonë, shkojmë te Times, atje kam krijuar një boshllëk që do të thotë se do të funksionojë gjithmonë, tani shkojmë te Kategoritë e synuara dhe krijojmë lista sipas gjykimit tonë, pasi të krijojmë listat kthehemi në grupet tona dhe brenda grupit përdorim butonat për të zgjedhur kush mund të shkojë ku dhe kush nuk mund të shkojë ku.

LightSquid dhe sqstat

Nëse gjatë procesit të konfigurimit kemi zgjedhur loopback në cilësimet e kallamarëve dhe kemi hapur mundësinë për të hyrë në 7445 në murin e zjarrit si në rrjetin tonë ashtu edhe në vetë pfSense, atëherë kur shkojmë te DiagnosticsSquid Proxy Reports ne mund të hapim lehtësisht si sqstat ashtu edhe Lighsquid, për kjo e fundit do të na duhet Aty mund të gjeni një hyrje dhe fjalëkalim, dhe gjithashtu mund të zgjidhni një dizajn.

Përfundim

pfSense është një mjet shumë i fuqishëm që mund të bëjë shumë gjëra - proksimi i trafikut dhe kontrolli i aksesit të përdoruesve në internet është vetëm një grimcë e të gjithë funksionalitetit, megjithatë, në një ndërmarrje me 500 makina, ai e zgjidhi problemin dhe na lejoi të kursejmë për blerjen e një përfaqësuesi.

Shpresoj se ky artikull do të ndihmojë dikë të zgjidhë një problem që është mjaft i rëndësishëm për ndërmarrjet e mesme dhe të mëdha.

Burimi: www.habr.com

Shto një koment