
pfSense+Squid koos HTTPS filtreerimisega + Ăhe sisselogimise tehnoloogia (SSO) koos Active Directory gruppide filtreerimisega
LĂŒhike eellugu
EttevÔttes tekkis vajadus rakendada proksi-server, mis vÔimaldab veebilehtedele (sealhulgas HTTPS) ligipÀÀsu filtreerimist AD grupi kaupa, et kasutajad ei peaks sisestama mingeid tÀiendavaid paroole ning haldamine oleks vÔimalik veebiliidese kaudu. Pole paha, kas pole?
Ăige vastus oleks osta sellised lahendused nagu Kerio Control vĂ”i UserGate, kuid nagu alati, raha pole, aga vajadus on.
Just siin tulebki appi vana ja hea Squid, kuid jĂ€lle â kust saada veebiliides? SAMS2? Moraalselt vananenud. Just siin tulebki appi pfSense.
Kirjeldus
KĂ€esolevas artiklis kirjeldatakse Squidi proksi-serveri seadistamise viisi.
Kasutajate autentimiseks kasutatakse Kerberost.
Domeenigruppide filtreerimiseks kasutatakse SquidGuardi.
JĂ€lgimiseks kasutatakse Lightsquid'i, sqstat'i ja pfSense'i sisemisi jĂ€lgimissĂŒsteeme.
Samuti lahendatakse sage probleem, mis on seotud ĂŒhe sisselogimise tehnoloogia (SSO) rakendamisega, nimelt rakendused, mis ĂŒritavad internetti minna oma sĂŒsteemi konto all.
Valmistumine Squidi installimiseks
VÔetakse aluseks pfSense, Installatsiooni juhend.
Mille sees organiseerime autentimise tulemĂŒĂŒri kaudu domeeni kontodega. Juhend.
VĂ€ga oluline!
Enne Squidi installimist tuleb seadistada DNS serverilt pfSense'is, teha A ja PTR kirjed meie DNS serveris ning seadistada NTP nii, et aeg ei erine domeeni kontrollija ajast.
Ja teie vĂ”rgus peab WAN liidesele pfSense'il olema juurdepÀÀs internetile ning kasutajatel kohalikus vĂ”rgus olema ĂŒhendus LAN liidesega, sealhulgas portidel 7445 ja 3128 (minu puhul 8080).
Kas kĂ”ik on valmis? Kas domeeniga on LDAP ĂŒhendus pfSense'is seadistatud ja aeg sĂŒnkroniseeritud? SuurepĂ€rane. On aeg alustada pĂ”hiprotsessiga.
Installimine ja esialgne seadistamine
Squid, SquidGuard ja LightSquid installitakse pfSense'i paketihalduri kaudu jaotises âSĂŒsteem/Paketihaldurâ.
PÀrast edukat installimist liikume "Teenused/Squid Proxy server/" ja esmalt seadistame vahekaardil Kohalik vahemÀlu vahemÀlu. Seadsin kÔik vÀÀrtused 0-ks, kuna ei nÀe erilist mÔtet veebilehtede vahemÀllu salvestamises, sellega saavad brauserid kenasti hakkama. PÀrast seadistamist klÔpsame allservas nuppu "Salvesta" ja see annab meile vÔimaluse teha pÔhiseadeid proksi jaoks.
PÔhiseaded seame jÀrgmiseks:

Vaikimisi port on 3128, aga ma eelistan kasutada 8080.
Valitud parameetrid vahekaardil Proksi liides mÀÀravad, milliseid liideseid meie proksi kuulama hakkab. server. Kuna see tulemĂŒĂŒr on ĂŒles ehitatud nii, et internetti ta vaatab WAN liidese kaudu, isegi kui LAN ja WAN vĂ”ivad olla samas kohaliku vĂ”rgus, soovitan proksi jaoks kasutada just LAN-i.
Loopback on vajalik sqstat'i tööks.
Allpool leiate seadistused LĂ€bipaistva (transparent) proksi jaoks ja ka SSL-filtri jaoks, kuid need ei ole meile vajalikud, meie proksi ei ole lĂ€bipaistev ja HTTPS-i filtreerimise jaoks me sertifikaadi asendamisega ei tegele (kuna meil on dokumendihaldus, pangad-klientid jms), vaid vaatame lihtsalt ĂŒlekannet.
Selles etapis peame liikuma oma domeenikontrollerisse, looma seal autentimiseks kontot (vĂ”ib kasutada ka seda, mis on seadistatud pfSense'i autentimiseks). Siin on vĂ€ga oluline tegur â kui kavatsete kasutada AES128 vĂ”i AES256 krĂŒpteerimist, siis mĂ€rkige konto seadetes vastavad linnukesed.
Kui teie domeen on vĂ€ga keeruline mets suure arvu kataloogidega vĂ”i teie domeen on .local, siis on VĂIMALIK, kuid mitte kindel, et peate selle konto jaoks kasutama lihtsat parooli; probleem on teada, kuid keerulise parooliga ei pruugi see lihtsalt töötada, tuleb konkreetset juhtumit kontrollida.

PÀrast seda koostame Kerberose vÔtmefaili, avame domeenikontrolleris administraatori Ôigustes kÀsuviiba ja sisestame:
# 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.keytabKus mÀÀrame oma FQDN pfSense'i, jĂ€rgides kindlasti suurtĂ€htede kasutust, parameetris mapuser sisestame meie domeeni kasutajakonto ja selle parooli ning krĂŒpteerimise viisi valimisel kasutasin rc4 tööks ja vĂ€ljundvĂ€ljal -out valime, kuhu saadame meie valmis vĂ”tmefaili.
PĂ€rast vĂ”tmefaili edukat loomist saadame selle meie pfSense'ile, selleks kasutasin Far programmi, kuid samas saab seda teha ka kĂ€surea, putty vĂ”i pfSense'i veebiliidese kaudu menĂŒĂŒs âDiagnostikaKĂ€sureaâ.
NĂŒĂŒd saame redigeerida luua /etc/krb5.conf

kus /etc/krb5.keytab on meie loodud vÔtmefail.
Veenduge kindlasti Kerberose toimimises kinit kĂ€su abil, kui see ei tööta â siis ei ole edasine lugemine mĂ”istlik.
Squidi autentimise ja autentimata juurdepÀÀsu loetelu seadistamine
PĂ€rast Kerberose edukat seadistamist integreerime selle meie Squidi.
Selleks minge teenustesse Squid Proxy Server ja pĂ”hi seadetes kerige alla, kust leiate nupu âTĂ€iendavad seadedâ.
Kohandatud suvandite (Before Auth) vÀljal sisestame:
#ЄДлпДŃŃ
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 authuĐŽĐ” auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth â valib vajalikud Kerberose autentimise abiprogrammid.
VĂ”ti -s vĂ”rdub GSS_C_NO_NAME â mÀÀrab, et kasutada vĂ”ib ĂŒkskĂ”ik millist kontot vĂ”tmefailist.
VĂ”ti -k vĂ”rdub /usr/local/etc/squid/squid.keytab â mÀÀrab tĂ€pselt selle.keytab faili kasutamise. Minu puhul on see sama loodud.keytab fail, mille kopeerisin kausta /usr/local/etc/squid/ ja ĂŒmber nimetasin, sest Squid ei soovinud selle kaustaga koostööd teha, ilmselt olid Ă”igused ebapiisavad.
VĂ”ti -t vĂ”rdub -t none â keelab tsĂŒklilised pĂ€ringud domeeni kontrollerile, mis vĂ€hendab oluliselt koormust, kui teil on rohkem kui 50 kasutajat.
Testimise ajaks saab lisada ka vĂ”tme -d â st diagnoosimine, rohkem logisid kuvatakse.
auth_param negotiate children 1000 â mÀÀrab, kui palju samaaegseid autoriseerimise protsesse vĂ”ib kĂ€ivitada
auth_param negotiate keep_alive on â ei lase katkestada seost autoriseerimise ahelaga
acl auth proxy_auth REQUIRED â loob ja nĂ”uab juurdepÀÀsu kontrolli loendit, mis hĂ”lmab autoriseeritud kasutajaid
acl nonauth dstdomain "/etc/squid/nonauth.txt" â teavitame Squidi nonauth juurdepÀÀsu loendist, milles on sihtdomeenid, millele on alati kĂ”igile juurdepÀÀs lubatud. Loome faili ja kirjutame sinna sisse domeenid jĂ€rgmisel kujul
.whatsapp.com
.whatsapp.netWhatsapp ei ole juhuslikult nÀitena, kuna selle proxy autentimisega on vÀga hargne, ja see ei tööta, kui seda enne autentimist ei lubata.
http_access allow nonauth â lubame juurdepÀÀsu sellele loendile kĂ”igile
http_access deny !auth â keelame juurdepÀÀsu autoriseerimata kasutajatele teistele saitidele
http_access allow auth â lubame ligipÀÀsu autentitud kasutajatele.
NĂŒĂŒd on teie Squid seadistatud, on aeg alustada rĂŒhmade filterdamisega.
SquidGuardi seadistamine
Liigume teenustesse, SquidGuardi vahefiltrisse.
LDAP-i seadetes sisestame meie Kerberose autentimiseks kasutatava konto andmed, kuid jÀrgmises vormis:
CN=pfsense,OU=teenuse-kontod,DC=domain,DC=localKui kirjas on tĂŒhikud vĂ”i mitte-ladina tĂ€hed, tuleks need kĂ”ik ĂŒhte tsitaati sulgeda:
'CN=sg,OU=teenuse-kontod,DC=domain,DC=local'
"CN=sg,OU=teenuse-kontod,DC=domain,DC=local"SeejÀrel peame kindlasti need mÀrgid panema:
![]()
Kuna soovime eemaldada mittevajalikud DOMAINpfsense DOMAIN.LOCAL, mille suhtes kogu sĂŒsteem on vĂ€ga tundlik.
NĂŒĂŒd liigume rĂŒhma ACL-i ja seome meie domeenigruppidega ligipÀÀsu, mina kasutan lihtsaid nimesid nagu group_0, group_1 ja nii edasi kuni 3, kus 3 â ligipÀÀs ainult valgesse loendisse, ja 0 â lubatud on kĂ”ik.
Grupid seondatakse jÀrgmise meetodiga:
ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0OU=squidOU=service-groupsDC=DOMAINDC=LOCAL))salvestame meie rĂŒhma, liigume ajavahemike juurde, seal olen loonud ĂŒhe vaheaja, mis tĂ€hendab töötamist alati, nĂŒĂŒd liigume sihtarvude kategooriatesse ja loome nimekirju oma soovide jĂ€rgi, pĂ€rast nimekirjade loomist naaseme oma rĂŒhmade juurde ja grupis valime nupuga, kes kuhu vĂ”ib ja kes kuhu ei saa.
LightSquid ja sqstat
Kui seadistamise kĂ€igus valisime Squidi seadetes loopback'i ja avasime pÀÀsu 7445 tulemĂŒĂŒris nii meie vĂ”rgus kui pfSense'is, saame Diagnostika-Squid Proxy aruannetes ilma probleemideta avada nii sqstat'i kui ka LightSquid'i; viimasel on vaja seal ka kasutajanimi ja parool vĂ€lja mĂ”elda ning ĂŒldiselt on seal ka valiku vĂ”imalus.
KokkuvÔte
pfSense on vĂ€ga vĂ”imas tööriist, mis suudab palju â alates liikluse proksimisest kuni kasutajate internetipÀÀsu kontrollimiseni, see on vaid vĂ€ike osa kogu funktsionaalsusest, kuid siiski lahendas see ettevĂ”ttes, kus on 500 masinat, probleemi ja vĂ”imaldas kokku hoida proksi ostmisel.
Loodan, et see artikkel aitab kedagi leida lahendust vĂ€ljendatud probleemile, mis on keskmistele ja suurtele ettevĂ”tetele ĂŒsna aktuaalne.
Allikas: habr.com
