Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

pfSense+Squid bi parzûna https + Nîşana yekane (SSO) bi fîlterkirina koma Active Directory

Pirtûka Brief

Pargîdanî pêdivî bû ku serverek proxy-yê bi şiyana fîlterkirina gihîştina malperan (tevî https) ji hêla komên ji AD-ê ve bicîh bike da ku bikarhêner şîfreyên zêde nekevin, û dikarin ji navgîniya tevneyê were rêvebirin. Serlêdana baş, ne wusa?

Bersiva rast dê bibe kirîna çareseriyên wekî Kerio Control an UserGate, lê wekî her gav drav tune, lê hewcedarî heye.

Li vir Squid-a kevnare ya baş tê rizgariyê, lê dîsa - ez dikarim li ku derê têkiliyek webê bistînim? SAMS2? Ji aliyê exlaqî ve kevinbûyî. Li vir pfSense tê rizgariyê.

description

Vê gotarê dê rave bike ka meriv çawa servera proxy Squid mîheng dike.
Kerberos dê ji bo destûrdayîna bikarhêneran were bikar anîn.
SquidGuard dê ji bo fîlterkirina komên domainê were bikar anîn.

Pergalên çavdêriya Lightsquid, sqstat û hundurîn ên pfSense dê ji bo çavdêriyê werin bikar anîn.
Di heman demê de ew ê pirsgirêkek hevpar a ku bi danasîna teknolojiya yek-nîşana (SSO) ve girêdayî ye, çareser bike, ango serîlêdanên ku hewl didin ku li Înternetê di binê hesabê kompasê de bi hesabê pergala xwe ve bigerin.

Amadekirina sazkirina Squid

pfSense dê wekî bingeh were girtin, talîmatên sazkirinê.

Di hundurê ku em bi karanîna hesabên domainê ve erêkirinê li ser dîwarê agir bi xwe organîze dikin. Rêbername

Pir girîng!

Berî ku hûn dest bi sazkirina Squid-ê bikin, hûn hewce ne ku servera DNS-ê di pfsense de mîheng bikin, ji bo wê li ser servera meya DNS-ê tomarek A û tomarek PTR çêbikin, û NTP-ê mîheng bikin da ku dem ji dema li ser kontrolkerê domainê cûda nebe.

Û li ser tora xwe, kapasîteya ku pêwendiya WAN-ê ya pfSense biçe Înternetê, û bikarhênerên li ser tora herêmî ku bi navbeynkariya LAN-ê ve girêdayî bin, di nav portên 7445 û 3128 de (di rewşa min de 8080) peyda bikin.

Hemî amade ye? Ma pêwendiya LDAP bi domainê re ji bo destûrnameyê li ser pfSense ve hatî saz kirin û dem hevdem e? Ecêb. Dem dema destpêkirina pêvajoya sereke ye.

Sazkirin û pêş-avakirin

Squid, SquidGuard û LightSquid dê ji rêveberê pakêtê pfSense di beşa "Pergal / Rêvebirê Pakêtê" de bêne saz kirin.

Piştî sazkirina serketî, biçin "Xizmet / Pêşkêşkara Squid Proxy /" û berî her tiştî, di tabloya Cache ya Herêmî de, cachkirinê mîheng bikin, min her tişt li 0-ê datîne, ji ber ku Ez di vegirtina malperan de pir xalê nabînim, gerok bi vê yekê re karekî mezin dikin. Piştî sazkirinê, bişkoja "Save" li binê ekranê bikirtînin û ev ê fersendê bide me ku em mîhengên bingehîn ên proxy bikin.

Mîhengên sereke wiha ne:

Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

Porta xwerû 3128 e, lê ez tercîh dikim ku 8080 bikar bînim.

Parametreyên hilbijartî yên di tabloya Navbera Proxy de diyar dikin ku dê servera meya proxyê li kîjan navgînan guhdarî bike. Ji ber ku ev firewall bi vî rengî hatî çêkirin ku ew li ser Înternetê wekî navgînek WAN xuya dike, her çend LAN û WAN dikarin li ser heman subneta herêmî bin jî, ez pêşniyar dikim ku LAN-ê ji bo proxy bikar bînin.

Loopback hewce ye ku sqstat bixebite.

Li jêr hûn ê mîhengên proxy-yê Transparent (şefaf) û her weha Parzûna SSL-ê bibînin, lê em ne hewceyî wan in, dê proxya me ne zelal be, û ji bo parzûnkirina https em ê li şûna sertîfîkayê nedin (me herikîna belge, bank heye xerîdar, hwd.), Ka em tenê li destan binerin.

Di vê qonaxê de, pêdivî ye ku em biçin ser kontrolkerê domaina xwe, tê de hesabek erêkirinê biafirînin (hûn dikarin yê ku ji bo pejirandinê li ser pfSense bixwe hatî mîheng kirin jî bikar bînin). Li vir faktorek pir girîng e - heke hûn dixwazin şîfrekirina AES128 an AES256 bikar bînin - di mîhengên hesabê xwe de qutiyên guncan kontrol bikin.

Ger domaina we daristanek pir tevlihev e û bi hejmareke mezin pelrêçan an jî domaina we .local e, wê hingê MIMK e, lê ne diyar e, ku hûn ê ji bo vê hesabê şîfreyek hêsan bikar bînin, xeletî tê zanîn, lê ew dibe ku tenê bi şîfreyek tevlihev nexebite, hûn hewce ne ku li ser bûyerek taybetî kontrol bikin.

Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

Piştî wê, em ji bo kerberos pelek mifteyê diafirînin, li ser kontrolkerê domainê fermanek bi mafên rêvebir vekin û têkevin:

# 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

Cihê ku em FQDN pfSense-ya xwe destnîşan dikin, bê guman rêzê li dozê bigirin, hesabê domainê û şîfreya wê di pîvana mapuser de têkevin, û di krîptoyê de em rêbaza şîfrekirinê hilbijêrin, min ji bo xebatê rc4 bikar anî û di qada -out de em cîhê ku em hilbijêrin dê pelê mifteya me ya qedandî bişîne.
Piştî ku pelê mifteyê bi serfirazî biafirînin, em ê wê bişînin pfSense-a xwe, min ji bo vê yekê Far bikar anî, lê hûn dikarin vê yekê hem bi fermanan û hem jî bi pûtê an jî bi navgîniya webê ya pfSense ya di beşa "Xeta Fermana Diagnostics" de bikin.

Niha em dikarin /etc/krb5.conf biguherînin/biafirînin

Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

ku /etc/krb5.keytab pelê mifteyê ye ku me çêkiriye.

Bawer bikin ku operasyona kerberos bi karanîna kinit kontrol bikin, heke ew nexebite, tu wateya xwendina bêtir tune.

Veavakirina Nasnameya Squid û Lîsteya Gihîştinê bêyî Nasnameyê

Piştî ku kerberos bi serfirazî mîheng kirin, em ê wê bi Squid-a xwe ve girêbidin.

Ji bo vê yekê, biçin ServicesSquid Proxy Server û di mîhengên sereke de herin binê jêrîn, li wir em ê bişkoka "Mîhengên pêşkeftî" bibînin.

Di qada Vebijarkên Xweser (Berî Destûrdanê) de, têkevin:

#Хелперы
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

ko Bernameya muzakereyê auth_param /usr/local/libexec/squid/negotiate_kerberos_auth - arîkarê kerberosa erêkirinê ku em hewce ne hildibijêre.

Ключ -s bi wate GSS_C_NO_NAME - karanîna her hesabê ji pelê mifteyê diyar dike.

Ключ -k bi wate /usr/local/etc/squid/squid.keytab - biryar dide ku vê pelê tabloya taybetî bikar bîne. Di doza min de, ev heman pelê keytabê ye ku me afirand, ku min li pelrêça /usr/local/etc/squid/ kopî kir û navê wê lê kir, ji ber ku squid nexwest bi wê pelrêçê re bibe heval, xuya ye ku tunebûn. mafên bes.

Ключ -t bi wate -tu tune - Daxwazên çerxîkî yên ji kontrolkerê domainê re neçalak dike, ku ger ji 50 bikarhêneran zêdetir barkirina wê pir kêm dike.
Ji bo dema ceribandinê, hûn dikarin bişkoka -d-ê jî lê zêde bikin - ango teşhîs, dê bêtir têketin werin xuyang kirin.
auth_param danûstandina zarokan 1000 - destnîşan dike ka çend pêvajoyên destûrnameyê yên hevdem dikarin werin meşandin
auth_param muzakere keep_alive li ser - nahêle ku di dema dengdana zincîra destûrnameyê de pêwendiyê bişkîne
acl auth proxy_auth PÊXWÎNE - navnîşek kontrolkirina gihîştinê diafirîne û hewce dike ku bikarhênerên ku destûr derbas kirine tê de hene
acl nonauth dstdomain "/etc/squid/nonauth.txt" - em squid-ê di derbarê navnîşa gihîştina nonauth-ê de agahdar dikin, ku tê de domên armanc hene, ku her kes dê her gav destûr jê re bigihîje. Em pelê bixwe diafirînin, û di hundurê wê de em di nav formatê de têkevin domainan

.whatsapp.com
.whatsapp.net

Whatsapp ne bêaqil e ku wekî mînakek tête bikar anîn - ew di derheqê proxy-ê de bi verastkirinê re pir bijare û heke berî pejirandinê destûr neyê dayîn dê nexebite.
http_access destûrê dide nonauth - bihêlin ku her kes bigihîje vê navnîşê
http_access red bike !auth - em gihîştina bikarhênerên bêdestûr ji bo malperên din qedexe dikin
http_access destûrê dide auth - destûrê bide gihîştina bikarhênerên destûrdar.
Ew e, squid bixwe hatî mîheng kirin, naha dem e ku meriv dest bi fîlterkirina li gorî koman bike.

Veavakirina SquidGuard

Herin Parzûna Proxy ServicesSquidGuard.

Di Vebijarkên LDAP-ê de em daneyên hesabê xwe ku ji bo rastkirina kerberos tê bikar anîn têkevin, lê di forma jêrîn de:

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

Ger valahiyek an tîpên ne-latînî hebin, divê ev tevnvîs di nav lêkerên yek an ducar de were girtin:

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

Dûv re, pê ewle bin ku van qutikan kontrol bikin:

Pêşkêşkara proxy belaş ji bo pargîdaniya bi destûrnameya domainê

Ji bo qutkirina DOMAINpfsense ya nehewce DOMAIN.HERÊMÊN ku tevaya sîstemê pir hesas e.

Naha em diçin Koma Acl û komên xwe yên gihîştina domainê girêdidin, ez navên hêsan ên mîna group_0, group_1, hwd. heya 3 bikar tînim, ku 3 tenê gihîştina navnîşa spî ye, û 0 - her tişt gengaz e.

Kom bi vî rengî têne girêdan:

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

koma xwe hilînin, biçin Times, li wir min yek valahiyek çêkir ku tê vê wateyê ku ez her gav bixebitim, naha herim Kategoriyên Armanc û li gorî dilê xwe navnîşan biafirînin, piştî çêkirina navnîşan em vedigerin komên xwe û di hundurê komê de bi bişkokan em hilbijêrin kî dikare biçe li ku, û kî nikare li ku derê.

LightSquid û sqstat

Ger di dema pêvajoyek veavakirinê de me di mîhengên squid-ê de vegerek hilbijart û hem li ser tora xwe û hem jî li ser pfSense xwe bigihîje 7445-ê di dîwarê agir de vekir, wê hingê gava ku diçin Squid Proxy Reports Diagnostics, em dikarin bi hêsanî hem sqstat û hem jî Lighsquid vekin. ji bo ya paşîn em ê hewce bibin Li heman cîhî, navek bikarhêner û şîfreyek peyda bikin, û di heman demê de fersendek heye ku sêwiranek hilbijêrin.

Têkilî

pfSense amûrek pir hêzdar e ku dikare gelek tiştan bike - hem proxykirina seyrûseferê û hem jî kontrolkirina gihîştina bikarhêner a înternetê tenê perçeyek ji fonksiyonê ye, di heman demê de, di pargîdaniyek bi 500 makîneyan de, vê pirsgirêkê çareser kir û li ser xilas kir. kirîna proxy.

Ez hêvî dikim ku ev gotar dê bibe alîkar ku kesek pirsgirêkek ku ji bo pargîdaniyên navîn û mezin re têkildar e çareser bike.

Source: www.habr.com

Add a comment