Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

pfSense+Squid su https filtravimu + vienkartinis prisijungimas (SSO) su Active Directory grupės filtravimu

Trumpas pagrindas

Įmonei reikėjo įdiegti tarpinį serverį su galimybe filtruoti prieigą prie svetainių (įskaitant https) pagal grupes iš AD, kad vartotojai neįvestų jokių papildomų slaptažodžių, ir būtų galima administruoti iš žiniatinklio sąsajos. Gera programa, ar ne?

Teisingas atsakymas būtų pirkti tokius sprendimus kaip Kerio Control ar UserGate, bet kaip visada pinigų nėra, o reikia.

Čia į pagalbą ateina senasis gerasis Squid, bet vėlgi – kur galėčiau gauti žiniatinklio sąsają? SAMS2? Moraliai pasenęs. Čia į pagalbą ateina pfSense.

aprašymas

Šiame straipsnyje aprašoma, kaip sukonfigūruoti Squid tarpinį serverį.
„Kerberos“ bus naudojama naudotojams autorizuoti.
SquidGuard bus naudojamas filtruojant pagal domenų grupes.

Stebėjimui bus naudojamos Lightsquid, sqstat ir vidinės pfSense stebėjimo sistemos.
Tai taip pat išspręs bendrą problemą, susijusią su vieno prisijungimo (SSO) technologijos įdiegimu, ty programas, kurios bando naršyti internete naudodami kompaso paskyrą su savo sistemos paskyra.

Pasiruošimas įdiegti Squid

pfSense bus laikomas pagrindu, Montavimo instrukcijos.

Jo viduje mes organizuojame autentifikavimą pačioje užkardoje naudodami domeno paskyras. Instrukcijas.

Tai labai svarbu!

Prieš pradėdami diegti Squid, turite sukonfigūruoti DNS serverį pfsense, padaryti jam A ir PTR įrašą mūsų DNS serveryje ir sukonfigūruoti NTP taip, kad laikas nesiskirtų nuo laiko domeno valdiklyje.

Savo tinkle suteikite galimybę pfSense WAN sąsajai prisijungti prie interneto, o vietinio tinklo vartotojams prisijungti prie LAN sąsajos, įskaitant 7445 ir 3128 prievadus (mano atveju 8080).

Viskas paruošta? Ar LDAP ryšys užmegztas su domenu, kad būtų galima autorizuoti pfSense, ir laikas sinchronizuojamas? Puiku. Atėjo laikas pradėti pagrindinį procesą.

Įdiegimas ir išankstinė konfigūracija

„Squid“, „SquidGuard“ ir „LightSquid“ bus įdiegti iš „pfSense“ paketų tvarkyklės skiltyje „Sistemos / paketų tvarkytuvė“.

Sėkmingai įdiegę eikite į „Paslaugos / Squid Proxy serveris /“ ir pirmiausia skirtuke „Local Cache“ sukonfigūruokite talpyklą, viską nustatiau į 0, nes Nematau prasmės talpinti svetaines, naršyklės su tuo puikiai dirba. Nustačius, paspauskite mygtuką „Išsaugoti“ ekrano apačioje ir tai suteiks mums galimybę atlikti pagrindinius tarpinio serverio nustatymus.

Pagrindiniai nustatymai yra tokie:

Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

Numatytasis prievadas yra 3128, bet aš norėčiau naudoti 8080.

Skirtuke Tarpinio serverio sąsaja pasirinkti parametrai nustato, kurių sąsajų mūsų įgaliotasis serveris klausys. Kadangi ši užkarda sukurta taip, kad internete atrodytų kaip WAN sąsaja, nors LAN ir WAN gali būti tame pačiame vietiniame potinklyje, tarpiniam serveriui rekomenduoju naudoti LAN.

Norint, kad sqstat veiktų, reikalingas atgalinis ciklas.

Žemiau rasite Transparent (skaidrus) proxy nustatymus, taip pat SSL filtrą, bet mums jų nereikia, mūsų proxy nebus skaidrus, o https filtravimui sertifikato nepakeisime (turime dokumentų srautą, banką klientų ir pan.), pažiūrėkime tik į rankos paspaudimą.

Šiame etape turime eiti į savo domeno valdiklį, sukurti jame autentifikavimo paskyrą (taip pat galite naudoti tą, kuri buvo sukonfigūruota autentifikavimui pačiame pfSense). Čia yra labai svarbus veiksnys – jei ketinate naudoti AES128 arba AES256 šifravimą – pažymėkite atitinkamus langelius paskyros nustatymuose.

Jei jūsų domenas yra labai sudėtingas miškas su daugybe katalogų arba jūsų domenas yra .local, tada GALIMA, bet neaišku, kad turėsite naudoti paprastą slaptažodį šiai paskyrai, klaida žinoma, bet ji gali tiesiog neveikti naudojant sudėtingą slaptažodį, turite patikrinti konkretų atvejį.

Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

Po to sukuriame kerberos rakto failą, atidarome komandų eilutę su administratoriaus teisėmis domeno valdiklyje ir įveskite:

# 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

Kur mes nurodome savo FQDN pfSense, būtinai gerbkite didžiojo ir mažojo atvejo, į mapuser parametrą įveskite savo domeno paskyrą ir jos slaptažodį, o kriptovaliutoje pasirenkame šifravimo metodą, aš naudoju rc4 darbui ir lauke -out pasirenkame, kur mes išsiųs baigtą rakto failą.
Sėkmingai sukūrę rakto failą, atsiųsime jį į savo pfSense, aš tam naudojau Far, bet taip pat galite tai padaryti tiek komandomis, tiek glaistai arba per pfSense žiniatinklio sąsają skiltyje "Diagnostikos komandų eilutė".

Dabar galime redaguoti/sukurti /etc/krb5.conf

Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

kur /etc/krb5.keytab yra mūsų sukurtas rakto failas.

Būtinai patikrinkite kerberos veikimą naudodami kinit, jei jis neveikia, nėra prasmės toliau skaityti.

Squid autentifikavimo ir prieigos sąrašo konfigūravimas be autentifikavimo

Sėkmingai sukonfigūravę kerberos, pritvirtinsime jį prie savo Squid.

Norėdami tai padaryti, eikite į ServicesSquid Proxy Server ir pagrindiniuose nustatymuose eikite į patį apačią, ten rasime mygtuką „Išplėstiniai nustatymai“.

Lauke Pasirinktinės parinktys (prieš autentifikavimą) įveskite:

#Хелперы
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 derybų programa /usr/local/libexec/squid/negotiate_kerberos_auth - pasirenka mums reikalingą autentifikavimo kerberos pagalbininką.

Raktas -s su prasme GSS_C_NO_NAME — apibrėžia bet kurios paskyros iš rakto failo naudojimą.

Raktas -k su prasme /usr/local/etc/squid/squid.keytab - nusprendžia naudoti šį konkretų klaviatūros failą. Mano atveju tai tas pats mūsų sukurtas keytab failas, kurį nukopijavau į /usr/local/etc/squid/ katalogą ir pervadinau, nes kalmaras nenorėjo draugauti su tuo katalogu, matyt, nebuvo pakankamai teisių.

Raktas -t su prasme - Nieko - išjungia ciklines užklausas domeno valdikliui, o tai labai sumažina jo apkrovą, jei turite daugiau nei 50 vartotojų.
Testo trukmei taip pat galite pridėti klavišą -d – t.y. diagnostika, bus rodoma daugiau žurnalų.
auth_param derėtis su vaikais 1000 - nustato, kiek vienu metu gali būti vykdomi autorizacijos procesai
auth_param derėtis keep_alive on - neleidžia nutraukti ryšio leidimo grandinės apklausos metu
acl auth proxy_auth BŪTINA - sukuria ir reikalauja prieigos kontrolės sąrašo, kuriame yra naudotojai, kurie išlaikė leidimą
acl nonauth dstdomain "/etc/squid/nonauth.txt" - informuojame kalmarus apie nonauth prieigos sąrašą, kuriame yra paskirties domenai, prie kurių visada bus leista prieiti visi. Sukuriame patį failą, o jo viduje įvedame domenus formatu

.whatsapp.com
.whatsapp.net

Whatsapp ne veltui naudojamas kaip pavyzdys - jis yra labai išrankus tarpiniam serveriui su autentifikavimu ir neveiks, jei jis nebus leidžiamas prieš autentifikavimą.
http_access leisti nonauth - leisti prieiti prie šio sąrašo visiems
http_prieigos atsisakymas !auth - Neteisėtiems vartotojams neleidžiame patekti į kitas svetaines
http_access leisti autentifikuoti - leisti prieigą įgaliotiems vartotojams.
Tai viskas, pats kalmaras sukonfigūruotas, dabar laikas pradėti filtruoti pagal grupes.

SquidGuard konfigūravimas

Eikite į ServicesSquidGuard Proxy Filter.

LDAP parinktyse įvedame savo paskyros duomenis, naudojamus kerberos autentifikavimui, tačiau tokiu formatu:

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

Jei yra tarpų arba ne lotyniškų simbolių, visas šis įrašas turi būti parašytas viengubomis arba dvigubomis kabutėmis:

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

Tada būtinai pažymėkite šiuos langelius:

Nemokamas tarpinis serveris įmonėms su domeno įgaliojimu

Norėdami išjungti nereikalingą DOMAINpfsense DOMAIN.LOCAL kuriam labai jautri visa sistema.

Dabar einame į Group Acl ir susiejame savo domeno prieigos grupes, naudoju paprastus pavadinimus kaip group_0, group_1 ir tt iki 3, kur 3 yra prieiga tik prie baltojo sąrašo, o 0 – viskas įmanoma.

Grupės susietos taip:

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

Išsaugokite mūsų grupę, eikite į Times, ten sukūriau vieną spragą, reiškiančią visada dirbti, dabar eikite į tikslines kategorijas ir kurkite sąrašus savo nuožiūra, sukūrę sąrašus grįžtame į savo grupes ir grupės viduje su mygtukais pasirenkame, kas gali eiti kur ir kas negali kur .

LightSquid ir sqstat

Jei konfigūravimo proceso metu squid nustatymuose pasirinkome atgalinį ryšį ir užkardoje atidarėme galimybę pasiekti 7445 tiek mūsų tinkle, tiek pačiame pfSense, tada eidami į Squid Proxy Reports Diagnostics galime lengvai atidaryti ir sqstat, ir Lighsquid, pastariesiems mums reikės Toje pačioje vietoje sugalvoti vartotojo vardą ir slaptažodį, taip pat yra galimybė pasirinkti dizainą.

Užbaigimas

pfSense yra labai galingas įrankis, galintis atlikti daugybę dalykų – tiek srauto tarpinis serveris, tiek vartotojų prieigos prie interneto kontrolė yra tik dalis viso funkcionalumo, tačiau įmonėje, kurioje yra 500 mašinų, tai išsprendė problemą ir sutaupė perkant tarpinį serverį.

Tikiuosi, kad šis straipsnis padės kam nors išspręsti problemą, kuri yra gana aktuali vidutinėms ir didelėms įmonėms.

Šaltinis: www.habr.com

Добавить комментарий