Gratis proxyserver för företag med domÀnauthentisering

Gratis proxyserver för företag med domÀnauthentisering

pfSense+Squid med HTTPS-filtrering + Enkel inloggningsteknik (SSO) med filtrering enligt Active Directory-grupper

Kort bakgrund

Företaget hade behov av att implementera en proxyserver med möjlighet till filtrering av Ätkomst till webbplatser (inklusive https) baserat pÄ grupper frÄn AD, sÄ att anvÀndare inte behövde ange nÄgra ytterligare lösenord, och administrationen kunde ske via ett webbgrÀnssnitt. NÄgot av ett bra krav, eller hur?

Det rÀtta svaret skulle vara att köpa sÄdana lösningar som Kerio Control eller UserGate, men som alltid finns det ingen budget, men behovet Àr dÀr.

HĂ€r kommer den gamla goda Squid till vĂ„r hjĂ€lp, men Ă„terigen – var fĂ„r vi webbgrĂ€nssnittet ifrĂ„n? SAMS2? Det Ă€r moraliskt förĂ„ldrat. HĂ€r kommer pfSense till hjĂ€lp.

Beskrivning

I denna artikel kommer vi att beskriva hur man konfigurerar proxyservern Squid.
För anvÀndarautentisering kommer Kerberos att anvÀndas.
För filtrering baserat pÄ domÀn-grupper kommer SquidGuard att anvÀndas.

För övervakning kommer Lightsquid, sqstat och interna övervakningssystem i pfSense att anvÀndas.
Vi kommer Àven att lösa det vanliga problemet med implementering av teknik för enkel inloggning (SSO), nÀmligen applikationer som försöker gÄ pÄ internet med sina systemkonton.

Förberedelse för installation av Squid

Vi kommer att anvÀnda pfSense som grund, Installationsguide.

Inuti kommer vi att organisera autentisering mot brandvÀggen med hjÀlp av domÀnkonton. Guide.

Mycket viktigt!

Innan du börjar installera Squid mÄste du konfigurera DNS servern i pfSense, skapa en A-post och PTR-poster pÄ vÄr DNS-server och konfigurera NTP sÄ att tiden inte avviker frÄn tiden pÄ domÀnkontrollern.

Och i ditt nÀtverk ge WAN-grÀnssnittet pÄ pfSense möjlighet att gÄ pÄ internet, samt lÄta anvÀndarna i det lokala nÀtverket ansluta till LAN-grÀnssnittet, inklusive pÄ portarna 7445 och 3128 (i mitt fall 8080).

Är allt klart? Har LDAP-kopplingen för autentisering pĂ„ pfSense stĂ€llts in och tiden Ă€r synkroniserad? UtmĂ€rkt. Dags att gĂ„ vidare med huvudprocessen.

Installation och förkonfigurering

Vi installerar Squid, SquidGuard och LightSquid frÄn pfSense paketmanager i avsnittet "System/Paketmanager".

Efter en framgÄngsrik installation gÄr vi till "TjÀnster/Squid Proxy-server/" och börjar först i fliken Local Cache med att konfigurera cache-instÀllningarna. Jag har stÀllt in allt till 0, eftersom jag inte ser nÄgon egentlig mening med att cacha webbplatser; det klarar webblÀsarna utmÀrkt sjÀlva. Efter instÀllningarna klickar vi pÄ knappen "Spara" lÀngst ner pÄ skÀrmen, vilket ger oss möjlighet att genomföra grundlÀggande proxy-instÀllningar.

Vi stÀller in de grundlÀggande instÀllningarna till följande:

Gratis proxyserver för företag med domÀnauthentisering

Standardporten Àr 3128, men jag föredrar att anvÀnda 8080.

De valda parametrarna i fliken Proxy Interface avgör vilka grÀnssnitt vÄr proxy kommer att lyssna pÄ. server. Eftersom denna brandvÀgg Àr uppbyggd sÄ att den ser ut mot internet via WAN-grÀnssnittet, Àven om LAN och WAN kan befinna sig i samma lokala nÀtverk, rekommenderar jag att anvÀnda LAN för proxy.

Loopback behövs för att sqstat ska fungera.

Nedan hittar du instÀllningarna för Transparent (transparent) proxy samt SSL-filter, men dessa behöver vi inte; vÄr proxy kommer att vara icke-transparent och för HTTPS-filtrering kommer vi inte att anvÀnda nÄgon certifikatinhÀmtning (eftersom vi har dokumenthantering, bank-kund m.m.), utan helt enkelt se pÄ handskakningen.

Vid det hĂ€r steget behöver vi gĂ„ till vĂ„r domĂ€nkontroller, skapa ett konto för autentisering (det gĂ„r Ă€ven att anvĂ€nda det konto som vi konfigurerade för autentisering pĂ„ sjĂ€lva pfSense). En mycket viktig faktor hĂ€r Ă€r—om du planerar att anvĂ€nda AES128 eller AES256-kryptering—att markera motsvarande alternativ i kontoinstĂ€llningarna.

Om din domÀn Àr en ganska komplex skog med mÄnga kataloger eller din domÀn Àr .local, kan det vara nödvÀndigt, men inte sÀkert, att du behöver anvÀnda ett enkelt lösenord för detta konto; det Àr en kÀnd bugg, men med ett komplext lösenord kan det helt enkelt inte fungera, sÄ det mÄste kontrolleras i varje specifikt fall.

Gratis proxyserver för företag med domÀnauthentisering

Efter detta formar vi en nyckelfil för Kerberos, öppnar kommandoprompten med administratörsrÀttigheter pÄ domÀnkontrollern och skriver in:

# 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.keytab

DÀr vi anger vÄr FQDN för pfSense, noga observera versaler, i parameter mapuser anger vi vÄrt domÀnkonto och dess lösenord, och i kryptovaluta vÀljer vi krypteringsmetoden; jag anvÀnde rc4 för arbetet och i fÀltet -out vÀljer vi vart vi skickar vÄr fÀrdiga nyckelfil.
Efter att nyckelfilen har skapats framgÄngsrikt skickar vi den till vÄr pfSense. Jag anvÀnde Far för detta, men det gÄr ocksÄ att göra med kommandon, eller via putty eller genom webgrÀnssnittet pfSense i avsnittet "DiagnostikKommandorad".

Nu kan vi redigera skapa /etc/krb5.conf

Gratis proxyserver för företag med domÀnauthentisering

dÀr /etc/krb5.keytab Àr den fil med nycklar vi har skapat.

Kontrollera alltid Kerberus funktionalitet med hjÀlp av kinit, om det inte fungerar finns det ingen mening att lÀsa vidare.

Konfigurera autentisering för Squid och Ätkomstlistan utan autentisering

Efter att ha konfigurerat Kerberus, kopplar vi det till vÄr Squid.

För detta, gÄ till TjÀnster Squid Proxy Server och i de grundlÀggande instÀllningarna scrolla till botten, dÀr hittar vi knappen "Avancerade instÀllningar".

I fÀltet Custom Options (Before Auth) skriver vi in:

#ЄДлпДры
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

uĐŽĐ” auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth — vĂ€ljer den nödvĂ€ndiga Kerberus autentisering hjĂ€lparen.

Nyckeln -s med vĂ€rdet GSS_C_NO_NAME — definierar anvĂ€ndningen av vilken konto som helst frĂ„n nyckelns fil.

Nyckeln -k med vĂ€rdet /usr/local/etc/squid/squid.keytab — definierar att just denna keytab-fil ska anvĂ€ndas. I mitt fall Ă€r det samma keytab-fil som skapades av oss, som jag kopierade till katalogen /usr/local/etc/squid/ och döpte om, eftersom Squid inte ville samarbeta med den katalogen, uppenbarligen brist pĂ„ rĂ€ttigheter.

Nyckeln -t med vĂ€rdet -t none — inaktiverar cykliska förfrĂ„gningar till domĂ€nkontrollern, vilket kraftigt minskar belastningen pĂ„ den om ni har fler Ă€n 50 anvĂ€ndare.
Under testperioden kan man Ă€ven lĂ€gga till nyckeln -d — dvs diagnostik, fler loggar kommer att skrivas ut.
auth_param negotiate children 1000 — definierar hur mĂ„nga samtidiga autentiseringsprocesser som kan köras
auth_param negotiate keep_alive on — hindrar samband frĂ„n att brytas under förfrĂ„gan av autentiseringskedjan
acl auth proxy_auth REQUIRED — skapar och krĂ€ver en Ă„tkomstkontrollista som inkluderar anvĂ€ndare som har genomgĂ„tt autentisering
acl nonauth dstdomain "/etc/squid/nonauth.txt" — meddelar Squid om nonauth Ă„tkomstlistan dĂ€r domĂ€ner som alltid kommer att ha tillgĂ„ng Ă€r listade. Vi skapar sjĂ€lv filen och skriver in domĂ€nerna i formatet

.whatsapp.com
.whatsapp.net

Whatsapp anvĂ€nds inte förgĂ€ves som exempel — den Ă€r mycket kĂ€nslig nĂ€r det gĂ€ller proxyer med autentisering och kommer inte att fungera om den inte tillĂ„ts innan autentisering.
http_access allow nonauth — tillĂ„ter alla att fĂ„ Ă„tkomst till denna lista
http_access deny !auth — förhindrar Ă„tkomst för oauktoriserade anvĂ€ndare till andra webbplatser
http_access allow auth — ger tillgĂ„ng till auktoriserade anvĂ€ndare.
Nu Àr din Squid konfigurerad, och det Àr dags att börja filtrera efter grupper.

InstÀllning av SquidGuard

GÄ till TjÀnster SquidGuard Proxy Filter.

I LDAP-alternativ anger vi uppgifterna för vÄrt konto som anvÀnds för Kerberos-autentisering, men i följande format:

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

Om det finns mellanslag eller icke-latinska tecken ska hela denna post omslutas av enkla eller dubbla citat:

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

DÀrefter sÀtter vi dessa kryssrutor:

Gratis proxyserver för företag med domÀnauthentisering

För att skÀra av onödiga DOMAINpfsense DOMAIN.LOCAL som hela systemet Àr mycket kÀnsligt för.

Nu gÄr vi till Group Acl och knyter vÄra domÀnaccessgrupper, jag anvÀnder enkla namn som group_0, group_1 och sÄ vidare upp till 3, dÀr 3 betyder endast whitelistÄtkomst och 0 betyder att allt Àr tillÄtet.

Grupperna kopplas pÄ följande sÀtt:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0OU=squidOU=service-groupsDC=DOMAINDC=LOCAL))

Vi sparar vÄr grupp, gÄr till Tider, dÀr jag har skapat ett intervall som betyder alltid, nu gÄr vi tillbaka till Target Categories och skapar listor enligt eget val, efter att listorna skapats gÄr vi tillbaka till vÄra grupper och i gruppen vÀljer vi med knapparna vem som kan gÄ vart.

LightSquid och sqstat

Om vi i instÀllningarna har valt loopback i Squid och öppnat upp för att gÄ till 7445 i brandvÀggen bÄde i vÄrt nÀtverk och pÄ sjÀlva pfSense, sÄ kan vi utan problem öppna bÄde sqstat och LightSquid i Diagnostik Squid Proxy-rapporter, för det senare behöver vi ocksÄ skapa ett anvÀndarnamn och lösenord dÀr, med möjlighet att vÀlja utseende.

Avslutning

pfSense Ă€r ett mycket kraftfullt verktyg som kan erbjuda mycket — bĂ„de proxytrafik och kontroll av anvĂ€ndartillgĂ„ng till internet Ă€r bara en liten del av funktionaliteten. ÄndĂ„ har det löst problem i ett företag med 500 datorer och gjort att vi sparat in pĂ„ att köpa proxy.

Jag hoppas att denna artikel kan hjÀlpa nÄgon att lösa ett ganska aktuellt problem för medelstora och stora företag.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster