Senpaga prokura servilo por entrepreno kun domajna rajtigo

Senpaga prokura servilo por entrepreno kun domajna rajtigo

pfSense+Squid kun https-filtrado + Ununura ensaluto (SSO) kun Aktiva Dosierujo grupa filtrado

Mallonga Fono

La firmao devis efektivigi prokurservilon kun la kapablo filtri aliron al retejoj (inkluzive https) de grupoj de AD por ke uzantoj ne enigu iujn ajn kromajn pasvortojn, kaj povas esti administritaj de la interreta interfaco. Bona aplikado, ĉu ne?

La ĝusta respondo estus aĉeti solvojn kiel Kerio Control aŭ UserGate, sed kiel ĉiam ne estas mono, sed estas bezono.

Jen kie la bona maljuna Kalmaro venas al la savo, sed denove - kie mi povas akiri TTT-interfacon? SAMS2? Morale malnoviĝinta. Jen kie pfSense venas al la savo.

Priskribo

Ĉi tiu artikolo priskribos kiel agordi la prokurilon Squid.
Kerberos estos uzata por rajtigi uzantojn.
SquidGuard estos uzata por filtri laŭ domajnaj grupoj.

Lightsquid, sqstat kaj internaj pfSense monitoraj sistemoj estos uzataj por monitorado.
Ĝi ankaŭ solvos oftan problemon asociitan kun la enkonduko de ununura ensaluto (SSO) teknologio, nome aplikoj kiuj provas navigi la Interreton sub la kompaskonto kun sia sistema konto.

Preparante instali Squid

pfSense estos prenita kiel bazo, Instalaj instrukcioj.

Ene de kiu ni organizas aŭtentigon sur la fajroŝirmilo mem uzante domajnajn kontojn. Instrukcio

Tre grava!

Antaŭ ol vi komencas instali Squid, vi devas agordi la DNS-servilon en pfsense, fari A-rekordon kaj PTR-rekordon por ĝi sur nia DNS-servilo, kaj agordi NTP por ke la tempo ne diferencas de la tempo sur la domajna regilo.

Kaj en via reto, havigu la kapablon por la WAN-interfaco de pfSense iri al la Interreto, kaj uzantoj en la loka reto konekti al la LAN-interfaco, inkluzive de la havenoj 7445 kaj 3128 (en mia kazo 8080).

Ĉu ĉio estas preta? Ĉu la LDAP-konekto estas establita kun la domajno por rajtigo ĉe pfSense kaj la tempo estas sinkronigita? Bonege. Estas tempo komenci la ĉefan procezon.

Instalado kaj antaŭ-agordo

Squid, SquidGuard kaj LightSquid estos instalitaj de la pakaĵa administranto pfSense en la sekcio "Sistemo/Pakaĵadministrilo".

Post sukcesa instalado, iru al "Servoj / Squid Proxy-servilo /" kaj unue, en la langeto Loka Cache, agordu kaŝmemoron, mi starigis ĉion al 0, ĉar Mi ne vidas multe da signifo en kaŝmemoro retejoj, retumiloj faras bonegan laboron kun ĉi tio. Post agordo, premu la butonon "Konservi" ĉe la malsupro de la ekrano kaj ĉi tio donos al ni la ŝancon fari bazajn prokurajn agordojn.

La ĉefaj agordoj estas kiel sekvas:

Senpaga prokura servilo por entrepreno kun domajna rajtigo

La defaŭlta haveno estas 3128, sed mi preferas uzi 8080.

La elektitaj parametroj en la langeto Prokura Interfaco determinas sur kiuj interfacoj nia prokurservilo aŭskultos. Ĉar ĉi tiu fajroŝirmilo estas konstruita tiel, ke ĝi aspektas en Interreto kiel WAN-interfaco, kvankam LAN kaj WAN povas esti en la sama loka subreto, mi rekomendas uzi LAN por la prokurilo.

Loopback estas necesa por ke sqstat funkciu.

Malsupre vi trovos la Travideblajn (travideblajn) prokurajn agordojn, kaj ankaŭ SSL-Filtrilon, sed ni ne bezonas ilin, nia prokurilo ne estos travidebla, kaj por https-filtrado ni ne anstataŭigos la atestilon (ni havas dokumentfluon, bankon). klientoj, ktp.), ni nur rigardu la manpremon.

En ĉi tiu etapo, ni devas iri al nia domajna regilo, krei aŭtentikan konton en ĝi (vi ankaŭ povas uzi tiun, kiu estis agordita por aŭtentigo ĉe pfSense mem). Jen tre grava faktoro - se vi intencas uzi ĉifradon AES128 aŭ AES256 - kontrolu la taŭgajn skatolojn en via konta agordo.

Se via domajno estas tre kompleksa arbaro kun granda nombro da dosierujoj aŭ via domajno estas .local, tiam estas EBLE, sed ne certe, ke vi devos uzi simplan pasvorton por ĉi tiu konto, la cimo estas konata, sed ĝi eble simple ne funkcias kun kompleksa pasvorto, vi devas kontroli specifan apartan kazon.

Senpaga prokura servilo por entrepreno kun domajna rajtigo

Post tio, ni kreas ŝlosilan dosieron por kerberos, malfermas komandan prompton kun administranto-rajtoj sur la domajna regilo kaj enigu:

# 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

Kie ni indikas nian FQDN pfSense, nepre respektu la kazon, enigu nian domajnan konton kaj ĝian pasvorton en la parametro mapuser, kaj en crypto ni elektas la ĉifradan metodon, mi uzis rc4 por laboro kaj en la -out-kampo ni elektas kie ni elektas. sendos nian finitan ŝlosildosieron.
Post sukcese krei la ŝlosilan dosieron, ni sendos ĝin al nia pfSense, mi uzis Far por ĉi tio, sed vi ankaŭ povas fari ĉi tion ambaŭ per komandoj kaj mastiko aŭ per la ttt-interfaco pfSense en la sekcio "Diagnoza Komandlinio".

Nun ni povas redakti/krei /etc/krb5.conf

Senpaga prokura servilo por entrepreno kun domajna rajtigo

kie /etc/krb5.keytab estas la ŝlosila dosiero, kiun ni kreis.

Nepre kontrolu la funkciadon de kerberos uzante kinit, se ĝi ne funkcias, ne utilas plu legi.

Agordante Squid Authentication kaj Alir-Listo sen Aŭtentigo

Sukcese agordinte kerberojn, ni fiksos ĝin al nia Kalmaro.

Por fari tion, iru al ServicesSquid Proxy Server kaj en la ĉefaj agordoj iru malsupren ĝis la fundo, tie ni trovos la butonon "Altnivelaj agordoj".

En la kampo Propraj Opcioj (Antaŭ Aŭtentigo), enigu:

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

kie auth_param negotiate programo /usr/local/libexec/squid/negotiate_kerberos_auth - elektas la aŭtentikigantan kerberos-helpilon, kiun ni bezonas.

Ключ -s kun signifo GSS_C_NO_NAME — difinas la uzon de iu ajn konto el la ŝlosila dosiero.

Ключ -k kun signifo /usr/local/etc/squid/squid.keytab - determinas uzi ĉi tiun apartan klavtab-dosieron. En mia kazo, ĉi tiu estas la sama keytab-dosiero, kiun ni kreis, kiun mi kopiis al la dosierujo /usr/local/etc/squid/ kaj renomis ĝin, ĉar la kalmaro ne volis amikiĝi kun tiu dosierujo, ŝajne ne estis. sufiĉaj rajtoj.

Ключ -t kun signifo -t neniu - malŝaltas ciklajn petojn al la domajna regilo, kio multe reduktas la ŝarĝon sur ĝi se vi havas pli ol 50 uzantojn.
Dum la daŭro de la testo, vi ankaŭ povas aldoni la -d-klavon - t.e. diagnozojn, pli da protokoloj estos montrataj.
auth_param negoci infanojn 1000 - determinas kiom da samtempaj rajtigaj procezoj povas esti rulitaj
auth_param intertrakti keep_alive on - ne permesas rompi la ligon dum la balotado de la rajtiga ĉeno
acl auth proxy_auth NECESATA - kreas kaj postulas alirkontrolliston, kiu inkluzivas uzantojn, kiuj pasigis rajtigon
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ni informas la kalmaron pri la nonauth-alirlisto, kiu enhavas celajn domajnojn, al kiuj ĉiuj ĉiam rajtos aliri. Ni kreas la dosieron mem, kaj en ĝi ni eniras domajnojn en la formato

.whatsapp.com
.whatsapp.net

Whatsapp ne vane estas uzata kiel ekzemplo - ĝi estas tre elektema pri la prokurilo kun aŭtentigo kaj ne funkcios se ĝi ne estas permesita antaŭ aŭtentigo.
http_access permesi nonauth - permesi aliron al ĉi tiu listo al ĉiuj
http_access nei !auth - ni malpermesas aliron al nerajtigitaj uzantoj al aliaj retejoj
http_access permesi aŭth - permesi aliron al rajtigitaj uzantoj.
Jen ĝi, la kalmaro mem estas agordita, nun estas tempo komenci filtri laŭ grupoj.

Agordante SquidGuard

Iru al ServicesSquidGuard Prokura Filtrilo.

En LDAP-Opcioj ni enmetas la datumojn de nia konto uzata por kerberos-aŭtentikigo, sed en la sekva formato:

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

Se estas spacoj aŭ ne-latinaj signoj, ĉi tiu tuta enskribo estu enfermita per unuopaj aŭ duoblaj citiloj:

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

Poste, nepre marku ĉi tiujn skatolojn:

Senpaga prokura servilo por entrepreno kun domajna rajtigo

Por fortranĉi nenecesan DOMAINpfsense DOMINIO.LOKA al kiu la tuta sistemo estas tre sentema.

Nun ni iras al Grupo Acl kaj ligas niajn domajnan alirgrupojn, mi uzas simplajn nomojn kiel group_0, group_1, ktp. ĝis 3, kie 3 estas aliro nur al la blanka listo, kaj 0 - ĉio eblas.

Grupoj estas ligitaj jene:

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

savu nian grupon, iru al Tempoj, tie mi kreis unu breĉon, kio signifas ĉiam labori, nun iru al Celaj Kategorioj kaj kreu listojn laŭ nia bontrovo, post kreado de la listoj ni revenas al niaj grupoj kaj ene de la grupo per butonoj ni elektas, kiu povas iri. kie , kaj kiu ne povas kie .

LightSquid kaj sqstat

Se dum la agorda procezo ni elektis loopback en la agordoj de kalmaro kaj malfermis la eblon aliri 7445 en la fajroŝirmilo kaj en nia reto kaj en pfSense mem, tiam irante al Squid Proxy Reports Diagnostics, ni povas facile malfermi ambaŭ sqstat kaj Lighsquid, por ĉi-lasta ni bezonos En la sama loko, elpensu uzantnomon kaj pasvorton, kaj ankaŭ ekzistas la ŝanco elekti dezajnon.

Kompletigo

pfSense estas tre potenca ilo, kiu povas fari multajn aferojn - kaj trafika prokurado kaj kontrolo de uzanta aliro al Interreto estas nur frakcio de la tuta funkcieco, tamen, en entrepreno kun 500 maŝinoj, tio solvis la problemon kaj ŝparis. aĉetante prokurilon.

Mi esperas, ke ĉi tiu artikolo helpos iun solvi problemon sufiĉe gravan por mezaj kaj grandaj entreprenoj.

fonto: www.habr.com

Aldoni komenton