
pfSense+Squid me filtrimin https + Teknologjia e hyrjes së vetme (SSO) me filtrimin sipas grupeve të Active Directory
Një përmbledhje e shkurtër
Në kompani u shfaq nevoja për të implementuar një server proxy me mundësi filtrimi të qasjes në faqe (përfshirë https) sipas grupeve nga AD, në mënyrë që përdoruesit të mos kenë nevojë të fusin asnjë fjalëkalim shtesë, ndërsa administrimi të mund të bëhet nga ndërfaqja në internet. Një kërkesë e mirë, apo jo?
Zgjidhja e duhur do të ishte të blije zgjidhje si Kerio Control ose UserGate, por si gjithmonë paratë nuk mjaftojnë, ndërsa nevoja është e madhe.
KĂ«tu vjen nĂ« ndihmĂ« Squid-i i njohur, por pĂ«rsĂ«ri â ku ta gjejmĂ« ndĂ«rfaqen nĂ« internet? SAMS2? ĂshtĂ« moralshĂ«m i vjetruar. KĂ«tu vjen nĂ« ndihmĂ« pfSense.
Përshkrimi
Në këtë artikull do të përshkruhet mënyra e konfigurimit të serverit proxy Squid.
Për autorizimin e përdoruesve do të përdoret Kerberos.
Për filtrimin sipas grupeve të domainit do të përdoret SquidGuard.
Për monitorim do të përdoren Lightsquid, sqstat dhe sistemet e brendshme të monitorimit të pfSense.
Gjithashtu do të zgjidhet një problem i zakonshëm i lidhur me implementimin e teknologjisë së hyrjes së vetme (SSO), e cila përfshin aplikacionet që përpiqen të hyjnë në internet me llogarinë e tyre sistemore.
Përgatitja për instalimin e Squid
Do të merret si bazë pfSense, Udhëzimi për instalimin.
Brenda të cilit ne organizojmë autentifikimin në vetë firewall-in me llogaritë e domainit. Udhëzimi.
Shumë e rëndësishme!
Para fillimit të instalimit të Squid, është e nevojshme të konfiguroni DNS serverë në pfsense, të bëni një regjistrim A dhe regjistrime PTR në serverin tonë DNS dhe të konfiguroni NTP në mënyrë që koha të mos jetë e ndryshme nga koha në kontrolluesin e domainit.
Dhe në rrjetin tuaj të ofroni mundësinë që ndërfaqja WAN e pfSense të dalë në internet, ndërsa përdoruesit në rrjetin lokal të lidhen në ndërfaqen LAN, përfshirë portin 7445 dhe 3128 (në rastin tim 8080).
A Ă«shtĂ« gjithçka gati? ĂshtĂ« vendosur lidhja me domainin pĂ«r autorizimin nĂ« pfSense dhe koha Ă«shtĂ« sinkronizuar? ShkĂ«lqyeshĂ«m. ĂshtĂ« koha tĂ« fillojmĂ« procesin kryesor.
Instalimi dhe konfigurimi fillestar
Do të instalojmë Squid, SquidGuard dhe LightSquid nga menaxheri i paketave të pfSense në seksionin "Sistemi / Menaxheri i Paketave".
Pasi përfundimit të suksesshëm të instalimit, kalojmë në «Shërbimet/Squid Proxy server/» dhe në radhë të parë në skedën Local Cache stakojmë cachingun. Unë e vendosa gjithçka në 0, pasi nuk shoh ndonjë kuptim të veçantë për të cache-uar faqet, me këtë janë të mjaftueshëm edhe shfletuesit. Pas konfigurimit, klikojmë butonin «Ruaj» në fund të ekranit dhe kjo do të na japë mundësinë për të bërë konfigurimet e nevojshme të proxy-t.
Konfigurimet kryesore i sjellim në këtë formë:

Portié»èź€ 3128, por unĂ« preferoj tĂ« pĂ«rdor 8080.
Parametrat e zgjedhur në skedën Proxy Interface përcaktojnë se cilat ndërfaqe do të përgjojë proxy-i ynë. server. Duke qenë se ky firewall është ndërtuar në atë mënyrë që internetin e shikon përmes ndërfaqes WAN, edhe kur LAN dhe WAN mund të jenë në të njëjtën nënsistem lokale, rekomandoj që për proxy-in të përdoret pikërisht LAN.
Loopback është e nevojshme për funksionimin e sqstat.
Më poshtë do të gjeni konfigurimet për Transparent (proxy të transparencës), si dhe SSL Filter, por ato nuk na nevojiten, proxy ynë do të jetë jo transparent, dhe për filtrimin https nuk do të merren me zëvendësimin e certifikatës (në fund të fundit kemi qarkullim dokumentesh, banka-klientë etj), por thjesht do të shohim përshpejtimin.
NĂ« kĂ«tĂ« fazĂ«, na nevojitet tĂ« kalojmĂ« nĂ« kontrolerin tonĂ« tĂ« domenit, tĂ« krijojmĂ« nĂ« tĂ« njĂ« llogari pĂ«r autentifikim (mund tĂ« pĂ«rdorim edhe atĂ« qĂ« kemi konfiguruar pĂ«r autentifikim nĂ« vetĂ« pfSense). NjĂ« faktor shumĂ« i rĂ«ndĂ«sishĂ«m â nĂ«se planifikoni tĂ« pĂ«rdorni enkriptimin AES128 ose AES256 â vendosni kutitĂ« pĂ«rkatĂ«se nĂ« konfigurimet e llogarisĂ«.
NĂ« rast se domeni juaj pĂ«rbĂ«n njĂ« pyll tĂ« ndĂ«rlikuar me njĂ« numĂ«r tĂ« madh katalogesh ose domeni juaj Ă«shtĂ« .local, atĂ«herĂ« NĂ DISA RASTE, por jo gjithmonĂ«, mund tâju duhet tĂ« pĂ«rdorni pĂ«r kĂ«tĂ« llogari njĂ« fjalĂ«kalim tĂ« thjeshtĂ«, njĂ« bug i njohur, por me njĂ« fjalĂ«kalim tĂ« komplikuar mund tĂ« mos funksionojĂ«, duhet tĂ« kontrolloni pĂ«r rastin konkret.

Pas kësaj, formojmë skedarin e çelësave për Kerberos, në kontrolerin e domenit hapim komandën me të drejtat e adminit dhe shkruajmë:
# ktpass -princ HTTP/pfsense.domain.local@DOMAIN.LOCAL -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.keytabKëtu nënvizojmë FQDN e pfSense, duke respektuar regjistrin, në parametrin mapuser themi llogarinë tonë të domenit dhe fjalëkalimin e saj, ndërsa në crypto zgjedhim mënyrën e enkriptimit, unë përdora rc4 për punë dhe në fushën -out zgjedhim se ku do ta dërgojmë skedarin tonë të gatshëm të çelësave.
Pas krijimit të suksesshëm të skedarit të çelqeve, ne do ta dërgojmë atë në pfSense tonë, unë e përdora Far për këtë, por gjithashtu mund ta bëni këtë me komanda ose përmes putty ose përmes ndërfaqes së web-it të pfSense në seksionin "DiagnostikimiKonsola e komandave".
Tani ne mund të redaktojmë krijojmë /etc/krb5.conf

ku /etc/krb5.keytab është skedari i çelqeve që kemi krijuar.
Sigurohuni tĂ« kontrolloni funksionimin e Kerberos me kinit, nĂ«se nuk punon â nuk ka kuptim tĂ« lexoni mĂ« tej.
Konfigurimi i autentifikimit të Squid dhe listës së aksesit pa autentifikim
Pasi të kemi konfiguruar me sukses Kerberos, do ta lidhim atë me Squid-in tonë.
Për këtë, shkoni te ShërbimetSquid Proxy Server dhe në cilësimet kryesore zbrisni poshtë, aty do të gjejmë butonin "Cilësimet e avancuara".
Në fushën e Opsioneve të Personalizuara (Para Autentifikimit) do të shkruajmë:
#ЄДлпДŃŃ
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 authku auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth â zgjedh helparin e nevojshĂ«m pĂ«r autentifikimin Kerberos.
ĂelĂ«si -s me vlerĂ«n GSS_C_NO_NAME â pĂ«rcakton pĂ«rdorimin e çdo llogarie nga skedari i çelqeve.
ĂelĂ«si -k me vlerĂ«n /usr/local/etc/squid/squid.keytab â pĂ«rcakton pĂ«rdorimin e kĂ«tij skedari keytab. NĂ« rastin tim, ky Ă«shtĂ« po ai skedar keytab i formuar prej nesh, qĂ« e kam kopjuar nĂ« direktorinĂ« /usr/local/etc/squid/ dhe e kam rinomuar, sepse me atĂ« direktor fejk skuid nuk donte tĂ« bashkĂ«punonte, duket se i mungonte leja.
ĂelĂ«si -t me vlerĂ«n -t none â ndalon kĂ«rkesat ciklike ndaj kontrolluesit tĂ« domenit, çka ndihmon duke ulur ngarkesĂ«n mbi tĂ« nĂ«se keni mĂ« shumĂ« se 50 pĂ«rdorues.
PĂ«r kohĂ«n e testimit gjithashtu mund tĂ« shtoni çelĂ«sin -d â do tĂ« thotĂ« diagnostikim, mĂ« shumĂ« logje do tĂ« shfaqen.
auth_param negotiate children 1000 â pĂ«rcakton sa procese tĂ« autorizimit mund tĂ« jenĂ« nĂ« funksion sĂ« bashku
auth_param negotiate keep_alive on â nuk lejon qĂ« lidhja tĂ« ndĂ«rpritet gjatĂ« anketimit tĂ« zinxhirit tĂ« autorizimit
acl auth proxy_auth REQUIRED â krijon dhe kĂ«rkon njĂ« listĂ« kontrolli tĂ« aksesit, duke pĂ«rfshirĂ« pĂ«rdoruesit qĂ« kanĂ« kaluar autorizimin
acl nonauth dstdomain "/etc/squid/nonauth.txt" â i njoftojmĂ« Skuidit pĂ«r listĂ«n e aksesit nonauth e cila pĂ«rmban domenet e destinacionit, tĂ« cilave gjithmonĂ« do t'u lejohet akses pĂ«r tĂ« gjithĂ«. Skedari vetĂ« krijohet dhe brenda tij shkruajmĂ« domenet nĂ« formatin
.whatsapp.com
.whatsapp.netWhatsapp nuk Ă«shtĂ« pĂ«r tĂ« qeshur si shembull â ai Ă«shtĂ« shumĂ« i ndjeshĂ«m ndaj proxy-ve me autentifikim dhe nuk do tĂ« funksionojĂ« nĂ«se nuk lejohet para autentifikimit.
http_access allow nonauth â lejojmĂ« aksesin pĂ«r kĂ«tĂ« listĂ« tĂ« gjithĂ«
http_access deny !auth â ndalojmĂ« aksesin pĂ«r pĂ«rdoruesit e paautorizuar nĂ« faqet e tjera
http_access allow auth â lejojmĂ« qasje pĂ«rdoruesve tĂ« autorizuar.
Tani, skuidi është i konfiguruar, tani është koha për të filluar filtrimin sipas grupeve.
Konfigurimi i SquidGuard
Kalojmë në Shërbimet SquidGuard Proxy Filter.
Në Mundësitë LDAP, vendosim të dhënat e llogarisë sonë, e cila përdoret për autentifikimin Kerberos, por në formatin e mëposhtëm:
CN=pfsense,OU=service-accounts,DC=domain,DC=localNëse ka hapësira ose simbole jo-latine, kjo rekord duhet të vendoset në thonjëza të njëfishta ose të dyfishta:
'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"Më pas, sigurohuni që të vendosni këto kutia kontrolli:
![]()
Për të prerë DOMAINin e panevojshëm pfsense DOMAIN.LOCAL për të cilat tërë sistemi është shumë i ndjeshëm.
Tani kalojmë në Acl Grupi dhe lidhi grupet tona të dominimit të aksesit, unë përdor emra të thjeshtë si group_0, group_1 dhe kështu deri në 3, ku 3 - akses vetëm në listën e bardhë, ndërsa 0 - mund të bësh gjithçka.
Grupet lidhen si më poshtë:
ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0OU=squidOU=service-groupsDC=DOMAINDC=LOCAL))ruajmë grupin tone, kalojmë në Koha, atje krijova një interval të vetëm që do të thotë të punosh gjithmonë, tani kalojmë në Kategoritë e Objektivave dhe krijojmë lista sipas dëshirës sonë, pas krijimit të listave kthehemi në grupet tona dhe brenda grupit, me butona zgjedhim kush mund të shkojë, e kush nuk mund.
LightSquid dhe sqstat
Nëse gjatë konfigurimit zgjodhëm loopback në konfigurimin e skuid dhe hapëm mundësinë për të hyrë në 7445 në firewall si në rrjetin tonë, ashtu edhe në pfSense vetë, kur kalojmë në Diagnostikën Raportet e Proxy Squid, do të jemi në gjendje të hapim lehtë si sqstat ashtu edhe Lighsquid, për këtë të fundit do të na nevojitet të krijojmë një përdorues dhe fjalëkalim atje, dhe gjithashtu ka mundësinë të zgjedhim dizajnin.
Përfundimi
pfSense Ă«shtĂ« njĂ« mjet shumĂ« i fuqishĂ«m, i cili mund tĂ« bĂ«jĂ« shumĂ« gjĂ«raânga prokimin e trafikut deri te kontrolli i aksesit tĂ« pĂ«rdoruesve nĂ« internet. Kjo Ă«shtĂ« vetĂ«m njĂ« pjesĂ« e funksionalitetit tĂ« tij, megjithatĂ« nĂ« njĂ« kompani me 500 makina, kjo zgjidhi problemin dhe ndihmoi nĂ« kursimin e para nga blerja e proksi.
Shpresoj që ky artikull të ndihmojë dikë të zgjidhë një detyrë mjaft aktuale për ndërmarrjet e mesme dhe të mëdha.
Burimi: habr.com
