
pfSense+Squid me filtrimin https + Teknologjia e hyrjes së vetme (SSO) me filtrimin sipas grupeve Active Directory
Historia e shkurtër
Në ndërmarrje u shfaq nevoja për të implementuar një server proxy me mundësinë për të filtruar aksesin në sitet (përfshirë https) sipas grupeve nga AD, në mënyrë që përdoruesit të mos shqetësohen për të futur ndonjë fjalëkalim shtesë, dhe administrimi të bëhej përmes një ndërfaqeje në internet. Një kërkesë e mirë, apo jo?
Një përgjigje e duhur do të ishte të blini zgjidhje si Kerio Control ose UserGate, por si gjithmonë, nuk ka para, ndërsa nevoja ekziston.
KĂ«tu na ndihmon i vjetĂ«r dhe i mirĂ« Squid, por pĂ«rsĂ«ri â ku ta gjejmĂ« ndĂ«rfaqen nĂ« internet? SAMS2? ĂshtĂ« moralishĂ« e 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.
Po ashtu do të zgjidhet një problem i zakonshëm i lidhur me implementimin e teknologjisë së hyrjes së vetme (SSO), në veçanti aplikacionet që përpiqen të hyjnë në internet me kredencialet e tyre sistemike.
Përgatitja për instalimin e Squid
Si bazë do të përdoret pfSense, Udhëzues për instalimin.
Brenda të cilit ne organizojmë autentifikimin në vetë fireëall-in përmes kredencialeve të domainit. Udhëzimi.
Shumë e rëndësishme!
Para se të filloni instalimin e Squid duhen konfiguruar DNS server në pfSense, të bëni një regjistrim A dhe regjistrime PTR në serverin tonë DNS dhe të konfigurosh NTP-në në mënyrë që koha të mos ndryshojë nga koha në kontrolluesin e domainit.
Dhe në rrjetin tuaj të sigurohet që ndërfaqja WAN e pfSense të ketë akses në internet, dhe përdoruesit në rrjetin lokal të lidhen me ndërfaqen LAN, gjithashtu përmes porteve 7445 dhe 3128 (në rastin tim 8080).
A është gjithçka gati? Lidhja me domainin përmes LDAP për autorizimin në pfSense është vendosur dhe koha është sinkronizuar? Shkëlqyer. Tani është koha për të filluar procesin kryesor.
Instalimi dhe konfigurimi fillestar
Ne do të instalojmë Squid, SquidGuard dhe LightSquid nga menaxheri i pakove të pfSense në seksionin "Sistemi/Pakot e menaxherit".
Pas instalimit të suksesshëm kalojmë në "Shërbimet/Squid Proxy server/" dhe fillimisht në skedën Local Cache konfigurojmë ruajtjen e të dhënave, unë kam vënë gjithçka në 0, sepse nuk shoh ndonjë kuptim në ruajtjen e faqeve, këtë e bënë mjaft mirë shfletuesit. Pas konfigurimit, klikoni në butonin "Shkëput" në fund të ekranit dhe kjo do të na japë mundësinë të bëjmë konfigurimet kryesore të proxy-it.
Konfigurimet kryesore i sjellim në këtë formë:

Përgjithësisht porta e paracaktuar është 3128, por unë preferoj të përdor 8080.
Parametrat e zgjedhur në skedën Proxy Interface përcaktojnë cilat ndërfaqe do të dëgjojë proxy-i ynë server. Duke qenë se ky firewall është ndërtuar në një mënyrë që në internet ai shikon përmes ndërfaqes WAN, madje edhe pse LAN dhe WAN mund të jenë në të njëjtën nënrrjet lokale, rekomandoj që për proxy-in të përdorim pikërisht LAN.
Lupback është i nevojshëm për funksionimin e sqstat.
Më poshtë do të gjeni konfigurimet për Transparent (proxy të transparencës), si dhe për SSL Filter, por ato nuk na duhen, proxy ynë nuk do të jetë transparent, dhe për filtrimin e https ne nuk do të merremi me zëvendësimin e certifikatës (në fund të fundit, kemi dokumente, banka-klientë, etj), por thjesht do të shohim në dorëzimin.
NĂ« kĂ«tĂ« pikĂ« na nevojitet tĂ« kalojmĂ« nĂ« kontrolluesin e domainit tonĂ«, tĂ« krijojmĂ« aty njĂ« llogari pĂ«r autentifikim (mund tĂ« pĂ«rdorim edhe atĂ« qĂ« kemi konfiguruar pĂ«r autentifikimin nĂ« vetĂ« pfSense). KĂ«tu Ă«shtĂ« njĂ« faktor shumĂ« i rĂ«ndĂ«sishĂ«m â nĂ«se keni ndĂ«rmend tĂ« pĂ«rdorni kriptimin AES128 ose AES256 â vendosni kutitĂ« pĂ«rkatĂ«se nĂ« konfigurimin e llogarisĂ«.
Nëse domeni juaj përbën një pyll të komplikuar me një numër të madh katalogesh ose domeni juaj .local, atëherë MUND Tà jetë, por nuk është e sigurt, ju do të duhet të përdorni për këtë llogari një fjalëkalim të thjeshtë, një problem i njohur, por me një fjalëkalim të komplikuar mund të mos funksionojë, duhet kontrolluar në rastin konkret.

Pas gjithë kësaj formojmë skedarin e çelësave për Kerberos, në kontrolluesin e domainit hapim komandën me të drejtat e administratorit 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.keytabKu tregojmë FQDN e pfSense, duke respektuar rregullin e shkronjave, në parametrin mapuser futim llogarinë tonë të domainit dhe fjalëkalimin e saj, dhe në crypto zgjedhim mënyrën e kriptimit, unë përdora rc4 për punë dhe në fushën -out vendosim se ku do ta dërgojmë skedarin tonë të përfunduar të çelësave.
Pas krijimit të suksesshëm të skedarit të çelësave, ne do ta dërgojmë atë në pfSense tonë, unë e përdora Far për këtë, por gjithashtu mund ta bëni edhe përmes komandave, si dhe përputhjen ose përmes ndërfaqes në internet të pfSense në seksionin "Diagnostikë/Komanda".
Tani mund të redaktojmë/krijojmë /etc/krb5.conf

ku /etc/krb5.keytab është skedari i çelësave që krijuam.
Sigurohuni qĂ« tĂ« kontrolloni funksionimin e Kerberos me kinit, nĂ«se nuk funksionon â nuk ka kuptim tĂ« lexoni mĂ« tej.
Konfigurimi i Authentikimit të Squid dhe listës së aksesit pa autentikim
Pasi të keni konfiguruar me sukses Kerberos, do ta lidhim me Squid-in tonë.
Për këtë, shkoni te ShërbimetSquid Proxy Server dhe në cilësimet kryesore shkoni në fund, aty do të gjejmë butonin 'Cilësime të Zgjeruara'.
Në fushën Custom Options (Before 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 authi ku auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth â zgjedh ndihmĂ«sin e nevojshĂ«m pĂ«r autentikimin Kerberos.
ĂelĂ«si -s me vlerĂ«n GSS_C_NO_NAME â pĂ«rcakton pĂ«rdorimin e çdo llogarie nga skedari i çelĂ«sit.
ĂelĂ«si -k me vlerĂ«n /usr/local/etc/squid/squid.keytab â pĂ«rcakton qĂ« tĂ« pĂ«rdoret pikĂ«risht ky skedar keytab. NĂ« rastin tim, ky Ă«shtĂ« gjithashtu skedari keytab qĂ« krijuam, tĂ« cilin e kopjova nĂ« direktorine /usr/local/etc/squid/ dhe e ndryshova emrin, sepse Squid nuk donte tĂ« punonte me atĂ« direktor, ndoshta pĂ«r shkak tĂ« mungesĂ«s sĂ« tĂ« drejtave.
ĂelĂ«si -t me vlerĂ«n -t none â ndalon kĂ«rkesat ciklike pĂ«r nĂ« kontrolluesin e domenit, duke e reduktuar ndjeshĂ«m ngarkesĂ«n mbi tĂ«, nĂ«se keni mĂ« shumĂ« se 50 pĂ«rdorues.
GjatĂ« testit, gjithashtu mund tĂ« shtoni çelĂ«sin -d â dmth diagnostikimi, mĂ« shumĂ« loge do tĂ« shfaqen.
auth_param negotiate children 1000 â pĂ«rcakton se sa procese autentikimi paralel mund tĂ« kenĂ« nisur
auth_param negotiate keep_alive on â parandalon ndĂ«rprerjen e lidhjes gjatĂ« shqyrtimit tĂ« zinxhirit tĂ« autentikimit
acl auth proxy_auth REQUIRED â krijon dhe kĂ«rkon njĂ« listĂ« tĂ« kontrollit tĂ« aksesit, pĂ«rfshirĂ« pĂ«rdoruesit qĂ« kanĂ« kaluar autentikimin
acl nonauth dstdomain '/etc/squid/nonauth.txt' â informojmĂ« Squid pĂ«r listĂ«n e aksesit nonauth ku pĂ«rfshihen domainet e destinacionit, tĂ« cilave do t'u lejohet gjithmonĂ« qasja. Ne e krijojmĂ« skedarin dhe e plotĂ«sojmĂ« atĂ« me domainet nĂ« formatin
.whatsapp.com
.whatsapp.netWhatsapp nuk Ă«shtĂ« pĂ«rdorur rastĂ«sisht si shembull â ai Ă«shtĂ« shumĂ« kapriçoz me proxy me autentikim dhe nuk do tĂ« funksionojĂ« nĂ«se nuk lejohet para autentikimit.
http_access allow nonauth â lejoni qasjen pĂ«r kĂ«tĂ« listĂ« pĂ«r tĂ« gjithĂ«
http_access deny !auth â ndaloni qasjen pĂ«r pĂ«rdoruesit e paautorizuar nĂ« faqet e tjera
http_access allow auth â lejoni qasjen pĂ«r pĂ«rdoruesit e autorizuar.
Kaq, vetë Squid është konfiguruar, tani është koha për të filluar filtrimin sipas grupeve.
Konfigurimi i SquidGuard
Shkoni te ShërbimetSquidGuard Proxy Filter.
Në Opsionet LDAP, futni të dhënat e llogarisë sonë të përdorur për autentikimin Kerberos, por në formatin e mëposhtëm:
CN=pfsense,OU=service-accounts,DC=domain,DC=localNëse ka hapësira dhe/ose karaktere jo latine, e gjithë kjo shënesë 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"Pastaj patjetër të vendosim këto kutia:
![]()
Për të prerë DOMAINpfsense të panevojshme DOMAIN.LOCAL me të cilat e gjithë sistemi është shumë i ndjeshëm.
Tani kalojmĂ« nĂ« Group Acl dhe lidhim grupet tona tĂ« aksesit, pĂ«rdor emra tĂ« thjeshtĂ« si group_0, group_1 dhe kĂ«shtu deri nĂ« 3, ku 3 Ă«shtĂ« qasje vetĂ«m nĂ« listĂ«n e bardhĂ«, ndĂ«rsa 0 â lejohet 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 tonë, kalojmë në Times, aty krijova një interval që do të thotë të punojmë gjithmonë, tani kalojmë në Kategoritë e Target dhe krijojmë lista sipas dëshirës sonë, pas krijimit të listave kthehemi në grupet tona dhe brenda grupit me butona zgjedhim kush mund dhe kush jo.
LightSquid dhe sqstat
Nëse gjatë konfigurimit zgjodhëm loopback në cilësimet e Squid-it dhe hapëm mundësinë për të hyrë në 7445 në firewall si në rrjetin tonë, ashtu edhe në vetë pfSense, atëherë duke kaluar në Diagnostikën e Raporteve të Squid Proxy ne pa ndonjë problem do të jemi në gjendje të hapim si sqstat ashtu edhe LightSquid, për të fundit do të duhet të shpikim një emër përdoruesi dhe fjalëkalim, gjithashtu ka mundësi për të zgjedhur dizajnin.
Përfundimi
pfSense Ă«shtĂ« njĂ« mjet shumĂ« i fuqishĂ«m, i cili mund tĂ« bĂ«jĂ« shumĂ« gjĂ«ra â dhe proxy tĂ« trafikut, dhe kontroll mbi qasjen e pĂ«rdoruesve nĂ« internet, kjo Ă«shtĂ« vetĂ«m njĂ« pjesĂ« e funksionalitetit tĂ« tij, megjithatĂ« nĂ« njĂ« ndĂ«rmarrje me 500 makina, kjo zgjidhi problemin dhe lehtĂ«soi blerjen e proxy.
Shpresoj që ky artikull të ndihmojë dikë të zgjidhë një detyrë shumë të rëndësishme për mesatarët dhe të mëdhenjtë.
Burimi: habr.com
