pfSense+Squid ar https filtrÄÅ”anu + vienreizÄjÄs pierakstÄ«Å”anÄs tehnoloÄ£ija (SSO) ar filtrÄÅ”anu pÄc Active Directory grupÄm
ÄŖss fons
UzÅÄmumam bija jÄievieÅ” starpniekserveris ar iespÄju filtrÄt piekļuvi vietnÄm (tostarp https) pa grupÄm no AD, lai lietotÄji neievadÄ«tu nekÄdas papildu paroles, un administrÄÅ”anu varÄtu veikt no tÄ«mekļa saskarnes. Nav slikta aplikÄcija, vai ne?
PareizÄ atbilde bÅ«tu iegÄdÄties tÄdus risinÄjumus kÄ Kerio Control vai UserGate, bet kÄ vienmÄr naudas nav, bet vajadzÄ«ba ir.
Å eit mÅ«s glÄbj vecais labais Squid, bet atkal ā kur es varu iegÅ«t tÄ«mekļa saskarni? SAMS2? MorÄli novecojis. Å eit palÄ«gÄ nÄk pfSense.
Apraksts
Å ajÄ rakstÄ ir aprakstÄ«ts, kÄ konfigurÄt Squid starpniekserveri.
LietotÄju autorizÄcijai tiks izmantots Kerberos.
SquidGuard tiks izmantots, lai filtrÄtu pÄc domÄnu grupÄm.
Monitoringam tiks izmantotas Lightsquid, sqstat un iekÅ”ÄjÄs pfSense monitoringa sistÄmas.
Tiks atrisinÄta arÄ« izplatÄ«ta problÄma, kas saistÄ«ta ar vienotÄs pierakstÄ«Å”anÄs (SSO) tehnoloÄ£ijas ievieÅ”anu, proti, lietojumprogrammas, kas mÄÄ£ina piekļūt internetam, izmantojot sava sistÄmas konta kompasa kontu.
SagatavoÅ”anÄs Squid instalÄÅ”anai
pfSense tiks izmantots par pamatu,
KurÄ mÄs organizÄjam autentifikÄciju paÅ”am ugunsmÅ«rim, izmantojot domÄna kontus.
Tas ir ļoti svarīgi!
Pirms Squid instalÄÅ”anas ir jÄkonfigurÄ DNS serveris pfsense, jÄizveido tam A ieraksts un PTR ieraksts mÅ«su DNS serverÄ« un jÄkonfigurÄ NTP tÄ, lai laiks neatŔķirtos no domÄna kontrollera laika.
Un savÄ tÄ«klÄ nodroÅ”iniet iespÄju pfSense WAN interfeisam piekļūt internetam un lokÄlÄ tÄ«kla lietotÄjiem izveidot savienojumu ar LAN interfeisu, tostarp izmantojot portu 7445 un 3128 (manÄ gadÄ«jumÄ 8080).
Vai viss ir gatavs? Vai domÄns ir savienots, izmantojot LDAP, lai veiktu autorizÄciju pakalpojumÄ pfSense, un vai laiks ir sinhronizÄts? Lieliski. Ir pienÄcis laiks sÄkt galveno procesu.
UzstÄdÄ«Å”ana un iepriekÅ”Äja konfigurÄcija
MÄs instalÄsim Squid, SquidGuard un LightSquid no pfSense pakotÅu pÄrvaldnieka sadaÄ¼Ä āSistÄmas/pakeÅ”u pÄrvaldnieksā.
PÄc veiksmÄ«gas instalÄÅ”anas dodieties uz āServices/Squid Proxy serveris/ā un vispirms cilnÄ Local Cache konfigurÄjiet keÅ”atmiÅu, es iestatÄ«ju visu uz 0, jo Es neredzu lielu jÄgu vietÅu saglabÄÅ”anai keÅ”atmiÅÄ; pÄrlÅ«kprogrammas ar to tiek galÄ lieliski. PÄc iestatÄ«Å”anas nospiediet pogu āSaglabÄtā ekrÄna apakÅ”Ä, un tas dos mums iespÄju veikt pamata starpniekservera iestatÄ«jumus.
Galvenie iestatÄ«jumi ir Å”Ädi:
NoklusÄjuma ports ir 3128, bet es gribÄtu izmantot 8080.
CilnÄ Starpniekservera interfeiss atlasÄ«tie parametri nosaka, kuras saskarnes klausÄ«sies mÅ«su starpniekserveris. TÄ kÄ Å”is ugunsmÅ«ris ir izveidots tÄ, ka tas skatÄs uz internetu caur WAN interfeisu, lai gan LAN un WAN var bÅ«t vienÄ lokÄlajÄ apakÅ”tÄ«klÄ, iesaku starpniekserverim izmantot LAN.
Lai sqstat darbotos, ir nepiecieŔama atpakaļcilpa.
ZemÄk atradÄ«siet Transparent starpniekservera iestatÄ«jumus, kÄ arÄ« SSL filtru, taÄu tie mums nav vajadzÄ«gi, mÅ«su starpniekserveris nebÅ«s caurspÄ«dÄ«gs, kÄ arÄ« https filtrÄÅ”anai mÄs nenodarbosimies ar sertifikÄtu aizstÄÅ”anu (galu galÄ mums ir dokumentu pÄrvaldÄ«ba , banku klienti utt.), PaskatÄ«simies tikai uz rokasspiedienu.
Å ajÄ posmÄ mums ir jÄdodas uz mÅ«su domÄna kontrolleri, jÄizveido tajÄ autentifikÄcijas konts (varat izmantot arÄ« to, kuru konfigurÄjÄt autentifikÄcijai paÅ”Ä pfSense). Å eit ļoti svarÄ«gs faktors ir tas, ka, ja plÄnojat izmantot AES128 vai AES256 Å”ifrÄÅ”anu, konta iestatÄ«jumos atzÄ«mÄjiet atbilstoÅ”Äs izvÄles rÅ«tiÅas.
Ja jÅ«su domÄns ir ļoti sarežģīts mežs ar lielu skaitu direktoriju vai jÅ«su domÄns ir .local, tad IESPÄJAMS, bet ne droÅ”i, jums Å”im kontam bÅ«s jÄizmanto vienkÄrÅ”a parole, kļūda ir zinÄma, bet ar sarežģītu parole tÄ var vienkÄrÅ”i nedarboties, jums jÄpÄrbauda konkrÄts individuÄls gadÄ«jums.
PÄc visa tÄ mÄs domÄna kontrollerÄ« izveidojam Kerberos atslÄgas failu, atveram komandu uzvedni ar administratora tiesÄ«bÄm un ievadiet:
# 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
Ja mÄs norÄdÄm savu FQDN pfSense, noteikti ievÄrojiet reÄ£istru, mapuser parametrÄ mÄs ievadÄm savu domÄna kontu un tÄ paroli, un kriptovalÅ«tÄ mÄs izvÄlamies Å”ifrÄÅ”anas metodi, es izmantoju rc4 darbam un laukÄ -out mÄs atlasÄm, kur mÄs nosÅ«tÄ«sim mÅ«su gatavo atslÄgas failu.
PÄc veiksmÄ«gas atslÄgas faila izveides mÄs to nosÅ«tÄ«sim uz mÅ«su pfSense, Å”im nolÅ«kam es izmantoju Far, bet jÅ«s varat arÄ« to izdarÄ«t, izmantojot komandas, tepe vai pfSense tÄ«mekļa saskarni sadaÄ¼Ä āDiagnostics Command Lineā.
Tagad mÄs varam rediÄ£Ät izveidot /etc/krb5.conf
kur /etc/krb5.keytab ir mÅ«su izveidotais atslÄgas fails.
Noteikti pÄrbaudiet Kerberos darbÄ«bu, izmantojot kinit; ja tas nedarbojas, nav jÄgas lasÄ«t tÄlÄk.
Squid autentifikÄcijas un bez autentifikÄcijas piekļuves saraksta konfigurÄÅ”ana
Kad Kerberos ir veiksmÄ«gi konfigurÄts, mÄs to pievienosim savam Squid.
Lai to izdarÄ«tu, dodieties uz ServicesSquid Proxy Server un galvenajos iestatÄ«jumos dodieties uz paÅ”u apakÅ”u, tur mÄs atradÄ«sim pogu āPapildu iestatÄ«jumiā.
LaukÄ PielÄgotÄs opcijas (pirms autentifikÄcijas) ievadiet:
#Š„ŠµŠ»ŠæŠµŃŃ
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
kur auth_param sarunu programma /usr/local/libexec/squid/negotiate_kerberos_auth ā atlasa mums nepiecieÅ”amo Kerberos autentifikÄcijas palÄ«gu.
TaustiÅÅ” -s ar nozÄ«mi GSS_C_NO_NAME ā nosaka jebkura konta izmantoÅ”anu no atslÄgas faila.
TaustiÅÅ” -k ar nozÄ«mi /usr/local/etc/squid/squid.keytab ā nosaka izmantot Å”o konkrÄto keytab failu. ManÄ gadÄ«jumÄ Å”is ir tas pats keytab fails, ko mÄs Ä£enerÄjÄm, kuru es nokopÄju direktorijÄ /usr/local/etc/squid/ un pÄrdÄvÄju, jo kalmÄrs nevÄlÄjÄs draudzÄties ar Å”o direktoriju, acÄ«mredzot man nebija pietiekami daudz tiesÄ«bu.
TaustiÅÅ” -t ar nozÄ«mi - nav neviena ā atspÄjo cikliskos pieprasÄ«jumus domÄna kontrollerim, kas ievÄrojami samazina tÄ slodzi, ja jums ir vairÄk nekÄ 50 lietotÄju.
PÄrbaudes laikÄ varat pievienot arÄ« slÄdzi -d - t.i., diagnostiku, tiks parÄdÄ«ti vairÄk žurnÄlu.
auth_param sarunÄt bÄrnus 1000 ā nosaka, cik vienlaicÄ«gu autorizÄcijas procesu var uzsÄkt
auth_param sarunÄties keep_alive on ā novÄrÅ” savienojuma atvienoÅ”anu autorizÄcijas Ä·Ädes aptaujas laikÄ
acl auth proxy_auth OBLIGÄTS ā izveido un pieprasa piekļuves kontroles sarakstu, kurÄ ir iekļauti autorizÄti lietotÄji
acl nonauth dstdomain "/etc/squid/nonauth.txt" ā mÄs informÄjam kalmÄrus par nonauth piekļuves sarakstu, kurÄ ir mÄrÄ·a domÄni, kuriem vienmÄr bÅ«s atļauts piekļūt ikvienam. MÄs izveidojam paÅ”u failu un ievadÄm tajÄ esoÅ”os domÄnus formÄtÄ
.whatsapp.com
.whatsapp.net
Whatsapp tiek izmantots kÄ piemÄrs iemesla dÄļ - tas ir ļoti izvÄlÄ«gs attiecÄ«bÄ uz autentifikÄcijas starpniekserveriem un nedarbosies, ja tas nav atļauts pirms autentifikÄcijas.
http_access atļaut nonauth ā atļaut ikvienam piekļūt Å”im sarakstam
http_piekļuves aizliegums !auth ā mÄs aizliedzam neautorizÄtiem lietotÄjiem piekļuvi citÄm vietnÄm
http_access atļaut autentifikÄciju ā atļaut piekļuvi pilnvarotiem lietotÄjiem.
Tas arÄ« viss, pats Squid ir konfigurÄts, tagad ir pienÄcis laiks sÄkt filtrÄÅ”anu pÄc grupÄm.
SquidGuard iestatīŔana
Dodieties uz ServicesSquidGuard starpniekservera filtru.
SadaÄ¼Ä LDAP opcijas mÄs ievadÄm Kerberos autentifikÄcijai izmantotÄ konta informÄciju, bet Å”ÄdÄ formÄtÄ:
CN=pfsense,OU=service-accounts,DC=domain,DC=local
Ja ir atstarpes vai rakstzÄ«mes, kas nav latÄ«Åu rakstzÄ«mes, viss Å”is ieraksts ir jÄiekļauj vienpÄdiÅÄs vai dubultpÄdiÅÄs:
'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"
PÄc tam noteikti atzÄ«mÄjiet Ŕīs izvÄles rÅ«tiÅas:
Lai nogrieztu nevajadzīgo DOMAINpfsense
Tagad ejam uz Group Acl un saistÄ«sim mÅ«su domÄna piekļuves grupas. Es izmantoju vienkÄrÅ”us nosaukumus, piemÄram, group_0, group_1 utt. lÄ«dz 3, kur 3 nozÄ«mÄ piekļuvi tikai baltajam sarakstam, bet 0 nozÄ«mÄ, ka viss ir iespÄjams.
Grupas ir saistÄ«tas Å”Ädi:
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))
mÄs saglabÄjam savu grupu, dodamies uz Times, tur es izveidoju vienu spraugu, kas nozÄ«mÄ, ka tas vienmÄr darbosies, tagad mÄs ejam uz mÄrÄ·a kategorijas un veidojam sarakstus pÄc saviem ieskatiem, pÄc sarakstu izveidoÅ”anas mÄs atgriežamies savÄs grupÄs un grupas ietvaros lietojam pogas lai atlasÄ«tu, kurÅ” kur var doties un kurÅ” kur nevar doties.
LightSquid un sqstat
Ja iestatÄ«Å”anas procesÄ mÄs squid iestatÄ«jumos atlasÄ«jÄm loopback un ugunsmÅ«rÄ« atvÄrÄm iespÄju piekļūt 7445 gan mÅ«su tÄ«klÄ, gan paÅ”Ä pfSense, tad, atverot DiagnosticsSquid Proxy Reports, mÄs varam viegli atvÄrt gan sqstat, gan Lighsquid. pÄdÄjais mums bÅ«s vajadzÄ«gs Tur jÅ«s varat izdomÄt pieteikumvÄrdu un paroli, kÄ arÄ« izvÄlÄties dizainu.
PabeigŔana
pfSense ir ļoti jaudÄ«gs rÄ«ks, kas var paveikt daudzas lietas ā trafika starpniekserverÄÅ”ana un lietotÄju piekļuves internetam kontrole ir tikai daļa no visas funkcionalitÄtes, tomÄr uzÅÄmumÄ ar 500 iekÄrtÄm tas atrisinÄja problÄmu un ļÄva ietaupÄ«t par proxy iegÄdi.
Es ceru, ka Å”is raksts kÄdam palÄ«dzÄs atrisinÄt problÄmu, kas ir diezgan aktuÄla vidÄjiem un lieliem uzÅÄmumiem.
Avots: www.habr.com