Gratis proxyserver för företag med domänbehörighet

Gratis proxyserver för företag med domänbehörighet

pfSense+Squid med https-filtrering + enkel inloggning (SSO) med Active Directory-gruppfiltrering

Kort bakgrund

Företaget behövde implementera en proxyserver med möjlighet att filtrera åtkomst till webbplatser (inklusive https) efter grupper från AD så att användare inte anger några ytterligare lösenord och kan administreras från webbgränssnittet. Bra applikation, eller hur?

Rätt svar skulle vara att köpa lösningar som Kerio Control eller UserGate, men som alltid finns det inga pengar, men det finns ett behov.

Det är här den gamla goda bläckfisken kommer till undsättning, men återigen - var kan jag få ett webbgränssnitt? SAMS2? Moraliskt föråldrad. Det är här pfSense kommer till undsättning.

beskrivning

Den här artikeln kommer att beskriva hur du konfigurerar Squid-proxyservern.
Kerberos kommer att användas för att auktorisera användare.
SquidGuard kommer att användas för att filtrera efter domängrupper.

Lightsquid, sqstat och interna pfSense övervakningssystem kommer att användas för övervakning.
Det kommer också att lösa ett vanligt problem i samband med introduktionen av enkel inloggningsteknik (SSO), nämligen applikationer som försöker surfa på Internet under kompasskontot med sitt systemkonto.

Förbereder installation av Squid

pfSense kommer att tas som grund, Installations instruktioner.

Inuti som vi organiserar autentisering på själva brandväggen med hjälp av domänkonton. Instruktioner.

Det är väldigt viktigt!

Innan du börjar installera Squid behöver du konfigurera DNS-servern i pfsense, göra en A-post och en PTR-post för den på vår DNS-server och konfigurera NTP så att tiden inte skiljer sig från tiden på domänkontrollanten.

Och på ditt nätverk, ge möjligheten för WAN-gränssnittet för pfSense att gå till Internet och användare på det lokala nätverket att ansluta till LAN-gränssnittet, inklusive på portarna 7445 och 3128 (i mitt fall 8080).

Är allt klart? Är LDAP-anslutningen upprättad med domänen för auktorisering på pfSense och tiden är synkroniserad? Bra. Det är dags att starta huvudprocessen.

Installation och förkonfiguration

Squid, SquidGuard och LightSquid kommer att installeras från pfSense-pakethanteraren i avsnittet "System / Package Manager".

Efter en lyckad installation, gå till "Tjänster / Squid Proxy-server /" och först av allt, på fliken Lokal cache, konfigurera cachelagring, jag ställer in allt till 0, eftersom Jag ser inte mycket mening med att cache-webbplatser, webbläsare gör ett bra jobb med detta. Efter inställningen, tryck på "Spara"-knappen längst ner på skärmen och detta ger oss möjlighet att göra grundläggande proxyinställningar.

Huvudinställningarna är följande:

Gratis proxyserver för företag med domänbehörighet

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

De valda parametrarna på fliken Proxygränssnitt avgör vilka gränssnitt vår proxyserver kommer att lyssna på. Eftersom den här brandväggen är byggd på ett sådant sätt att den ser ut på Internet som ett WAN-gränssnitt, även om LAN och WAN kan vara på samma lokala subnät, rekommenderar jag att använda LAN för proxyn.

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

Nedan hittar du de Transparenta (transparenta) proxyinställningarna, samt SSL-filter, men vi behöver dem inte, vår proxy kommer inte att vara transparent och för https-filtrering kommer vi inte att ersätta certifikatet (vi har dokumentflöde, bank kunder, etc.), låt oss bara titta på handslaget.

I det här skedet måste vi gå till vår domänkontrollant, skapa ett autentiseringskonto i den (du kan också använda det som konfigurerades för autentisering på själva pfSense). Här är en mycket viktig faktor - om du tänker använda AES128- eller AES256-kryptering - markera lämpliga rutor i dina kontoinställningar.

Om din domän är en mycket komplex skog med ett stort antal kataloger eller din domän är .local, så är det MÖJLIGT, men inte säkert, att du måste använda ett enkelt lösenord för detta konto, felet är känt, men det kanske helt enkelt inte fungerar med ett komplext lösenord, måste du kontrollera ett specifikt fall.

Gratis proxyserver för företag med domänbehörighet

Efter det skapar vi en nyckelfil för kerberos, öppnar en kommandotolk med administratörsrättigheter på domänkontrollanten och anger:

# 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

Där vi anger vår FQDN pfSense, se till att respektera fallet, ange vårt domänkonto och dess lösenord i mapuser-parametern, och i krypto väljer vi krypteringsmetoden, jag använde rc4 för arbete och i -out-fältet väljer vi var vi kommer att skicka vår färdiga nyckelfil.
Efter att framgångsrikt skapat nyckelfilen kommer vi att skicka den till vår pfSense, jag använde Far för detta, men du kan också göra detta både med kommandon och kitt eller via pfSense webbgränssnitt i avsnittet "Diagnostik Kommandorad".

Nu kan vi redigera/skapa /etc/krb5.conf

Gratis proxyserver för företag med domänbehörighet

där /etc/krb5.keytab är nyckelfilen vi skapade.

Var noga med att kontrollera hur kerberos fungerar med kinit, om det inte fungerar är det ingen idé att läsa vidare.

Konfigurera Squid-autentisering och åtkomstlista utan autentisering

Efter att ha konfigurerat kerberos kommer vi att fästa den på vår bläckfisk.

För att göra detta, gå till ServicesSquid Proxy Server och i huvudinställningarna gå ner till botten, där hittar vi knappen "Avancerade inställningar".

I fältet Anpassade alternativ (före autentisering) anger du:

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

var auth_param förhandla program /usr/local/libexec/squid/negotiate_kerberos_auth - väljer den kerberos-hjälpare för autentisering vi behöver.

nyckel -s med mening GSS_C_NO_NAME — definierar användningen av alla konton från nyckelfilen.

nyckel -k med mening /usr/local/etc/squid/squid.keytab - bestämmer sig för att använda denna speciella keytab-fil. I mitt fall är detta samma keytab-fil som vi skapade, som jag kopierade till katalogen /usr/local/etc/squid/ och döpte om den, eftersom bläckfisken inte ville vara vän med den katalogen, det fanns tydligen inte tillräckligt med rättigheter.

nyckel -t med mening -t ingen - inaktiverar cykliska förfrågningar till domänkontrollanten, vilket avsevärt minskar belastningen på den om du har fler än 50 användare.
Under testets varaktighet kan du också lägga till -d-nyckeln - dvs diagnostik, fler loggar kommer att visas.
auth_param förhandla barn 1000 - bestämmer hur många samtidiga auktoriseringsprocesser som kan köras
auth_param förhandla keep_alive på - tillåter inte att bryta anslutningen under polling av auktoriseringskedjan
acl auth proxy_auth KRÄVS - skapar och kräver en åtkomstkontrolllista som inkluderar användare som har godkänt behörighet
acl nonauth dstdomain "/etc/squid/nonauth.txt" - vi informerar bläckfisken om nonauth-åtkomstlistan, som innehåller destinationsdomäner, som alla alltid kommer att få tillgång till. Vi skapar själva filen, och inuti den anger vi domäner i formatet

.whatsapp.com
.whatsapp.net

Whatsapp används inte förgäves som exempel - det är väldigt kräsen med proxyn med autentisering och fungerar inte om det inte är tillåtet före autentisering.
http_access tillåt nonauth - Tillåt åtkomst till denna lista för alla
http_access neka !auth - vi förbjuder åtkomst till andra webbplatser för obehöriga användare
http_access tillåt auth - Tillåt åtkomst för behöriga användare.
Det är det, själva bläckfisken är konfigurerad, nu är det dags att börja filtrera efter grupper.

Konfigurera SquidGuard

Gå till ServicesSquidGuard Proxy Filter.

I LDAP-alternativ anger vi data 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 omges av enkla eller dubbla citattecken:

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

Se sedan till att markera dessa rutor:

Gratis proxyserver för företag med domänbehörighet

För att skära av onödig DOMAINpfsense DOMÄN.LOCAL som hela systemet är mycket känsligt för.

Nu går vi till Group Acl och binder våra domänåtkomstgrupper, jag använder enkla namn som group_0, group_1, etc. upp till 3, där 3 är åtkomst endast till den vita listan, och 0 - allt är möjligt.

Grupper är länkade enligt följande:

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

spara vår grupp, gå till Times, där skapade jag en lucka vilket betyder att det alltid kommer att fungera, gå nu till Målkategorier och skapa listor efter eget gottfinnande, efter att ha skapat listorna återvänder vi till våra grupper och inuti gruppen, använd knapparna för att välja vem kan gå vart och vem kan inte gå vart.

LightSquid och sqstat

Om vi ​​under konfigurationsprocessen valde en loopback i bläckfiskinställningarna och öppnade möjligheten att komma åt 7445 i brandväggen både på vårt nätverk och på själva pfSense, då när vi går till Squid Proxy Reports Diagnostics, kan vi enkelt öppna både sqstat och Lighsquid, för det senare kommer vi att behöva På samma ställe komma med ett användarnamn och lösenord, och det finns även möjlighet att välja design.

fullbordan

pfSense är ett mycket kraftfullt verktyg som kan göra många saker - både trafikproxy och kontroll över användaråtkomst till Internet är bara en bråkdel av hela funktionaliteten, men i ett företag med 500 maskiner löste detta problemet och sparade på köpa en proxy.

Jag hoppas att den här artikeln kommer att hjälpa någon att lösa ett problem som är ganska relevant för medelstora och stora företag.

Källa: will.com

Lägg en kommentar