Proxy gratuito per aziende con autorizzazione di dominio

Proxy gratuito per aziende con autorizzazione di dominio

pfSense+Squid con filtraggio HTTPS + Tecnologie di accesso unico (SSO) con filtraggio per gruppi Active Directory

Breve introduzione

Nell'azienda è emersa la necessità di implementare un server proxy in grado di filtrare l'accesso ai siti (inclusi quelli HTTPS) in base ai gruppi di AD, affinché gli utenti non dovessero inserire password aggiuntive e la gestione potesse avvenire tramite interfaccia web. Non è una bella idea, vero?

Una risposta corretta sarebbe stata quella di acquistare soluzioni come Kerio Control o UserGate, ma come al solito i soldi scarseggiano e c'è bisogno.

Qui entra in gioco il buon vecchio Squid, ma dove trovare un'interfaccia web? SAMS2? È moralmente obsoleto. Ed è qui che interviene pfSense.

Descrizione

In questo articolo verrà descritto il modo di configurare un server proxy Squid.
Per l'autenticazione degli utenti verrà utilizzato Kerberos.
Per il filtraggio in base ai gruppi di dominio verrà utilizzato SquidGuard.

Per il monitoraggio verranno utilizzati Lightsquid, sqstat e i sistemi di monitoraggio interni di pfSense.
Sarà inoltre risolta la comune problematica legata all'implementazione della tecnologia di Single Sign-On (SSO), vale a dire le applicazioni che tentano di connettersi a Internet con le credenziali del proprio sistema.

Preparazione all'installazione di Squid

Prenderemo come base pfSense, Istruzioni per l'installazione.

All'interno del quale organizzeremo l'autenticazione direttamente sul firewall utilizzando credenziali di dominio. Istruzioni.

Molto importante!

Prima di iniziare l'installazione di Squid, è necessario configurare il DNS server in pfSense, creando un record A e i record PTR sul nostro server DNS e configurando l'NTP in modo che l'ora non differisca da quella del controller di dominio.

E nella vostra rete, dovete consentire all'interfaccia WAN di pfSense di connettersi a Internet, e agli utenti nella rete locale di collegarsi all'interfaccia LAN, compresi le porte 7445 e 3128 (nel mio caso 8080).

Tutto pronto? La connessione con il dominio tramite LDAP per l'autenticazione su pfSense è stabilita e l'ora è sincronizzata? Ottimo. È tempo di procedere al processo principale.

Installazione e configurazione preliminare

Installeremo Squid, SquidGuard e LightSquid tramite il gestore pacchetti di pfSense nella sezione "Sistema/Gestore pacchetti".

Dopo un'installazione riuscita, andiamo su «Servizi/Squid Proxy server/» e, prima di tutto, nella scheda Cache locale configuriamo la memorizzazione nella cache; ho impostato tutto su 0, poiché non vedo un senso particolare nel memorizzare i siti, con cui i browser si occupano perfettamente. Dopo la configurazione, premiamo il tasto «Salva» in fondo allo schermo e questo ci permetterà di effettuare le impostazioni principali del proxy.

Portiamo le impostazioni principali al seguente stato:

Proxy gratuito per aziende con autorizzazione di dominio

La porta predefinita è 3128, ma preferisco usare 8080.

I parametri selezionati nella scheda Interfaccia Proxy determinano quali interfacce ascolterà il nostro proxy. un server. Poiché questo firewall è costruito in modo tale che guarda verso internet tramite l'interfaccia WAN, anche se LAN e WAN possono essere nella stessa sottorete locale, consiglio di utilizzare la LAN per il proxy.

Il loopback è necessario per il funzionamento di sqstat.

Di seguito troverai le impostazioni per il proxy Trasparente, così come il Filtro SSL, ma non ci interessano; il nostro proxy non sarà trasparente e per la filtrazione https non ci occuperemo della sostituzione del certificato (avendo documentazione, clienti bancari, ecc.), ma semplicemente daremo un'occhiata all'handshake.

A questo punto, dobbiamo accedere al nostro controller di dominio e creare un account per l'autenticazione (è possibile utilizzare anche quello configurato per l'autenticazione su pfSense). Qui c'è un fattore molto importante: se si intende utilizzare la crittografia AES128 o AES256, è necessario selezionare le opzioni corrispondenti nelle impostazioni dell'account.

Nel caso in cui il proprio dominio rappresenti una foresta piuttosto complessa con un gran numero di directory o se il proprio dominio è .local, è POSSIBILE, ma non certo, che sarà necessario utilizzare una password semplice per questo account. È un bug noto, ma con una password complessa potrebbe semplicemente non funzionare; è necessario controllare caso per caso specifico.

Proxy gratuito per aziende con autorizzazione di dominio

Dopo tutto questo, generiamo il file delle chiavi per Kerberos. Sul controller di dominio, apriamo il prompt dei comandi con diritti di amministratore e inseriamo:

# 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

Dove specifichiamo il nostro FQDN pfSense, facendo attenzione al maiuscolo. Nel parametro mapuser inseriamo il nostro account di dominio e la sua password, mentre in crypto scegliamo il metodo di crittografia; io ho utilizzato rc4 per il lavoro e nel campo -out scegliamo dove invieremo il nostro file delle chiavi pronto.
Dopo aver creato con successo il file delle chiavi, lo invieremo al nostro pfSense. Ho usato Far per questo, ma è possibile farlo anche tramite comandi, putty, o attraverso l'interfaccia web di pfSense nella sezione "Diagnostica | Riga di comando".

Ora possiamo modificare o creare /etc/krb5.conf

Proxy gratuito per aziende con autorizzazione di dominio

dove /etc/krb5.keytab è il file delle chiavi che abbiamo creato.

Assicurati di controllare il funzionamento del Kerberos con kinit; se non funziona, non ha senso continuare a leggere.

Configurazione dell'autenticazione di Squid e della lista di accesso senza autenticazione

Dopo aver configurato con successo Kerberos, lo collegheremo al nostro Squid.

Per fare ciò, vai su Servizi | Squid Proxy Server e, nelle impostazioni principali, scorri fino in fondo; qui troverai il pulsante "Impostazioni avanzate".

Nel campo Opzioni personalizzate (Before Auth) inseriremo:

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

dove auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth sceglie il nostro helper di autenticazione Kerberos necessario.

Chiave -s con il valore GSS_C_NO_NAME definisce l'uso di qualsiasi account dal file di chiavi.

Chiave -k con il valore /usr/local/etc/squid/squid.keytab — determina di utilizzare proprio questo file keytab. Nel mio caso, è lo stesso file keytab che abbiamo generato, che ho copiato nella directory /usr/local/etc/squid/ e rinominato, perché Squid non voleva collaborare con quella directory, evidentemente i permessi non erano sufficienti.

Chiave -t con il valore -t none — disattiva le richieste cicliche al controller di dominio, riducendo notevolmente il carico su di esso se hai più di 50 utenti.
Durante il test, puoi anche aggiungere il flag -d, cioè diagnostica, così verranno visualizzati più log.
auth_param negotiate children 1000 — determina quanti processi di autorizzazione simultanei possono essere avviati
auth_param negotiate keep_alive on — impedisce la disconnessione durante l'interrogazione della catena di autorizzazione
acl auth proxy_auth REQUIRED — crea e richiede un elenco di controllo accessi, che include gli utenti autorizzati
acl nonauth dstdomain «/etc/squid/nonauth.txt» — informiamo Squid dell'elenco di accesso non autorizzato che contiene i domini di destinazione a cui sarà sempre consentito l'accesso a tutti. Creiamo il file e all'interno scriviamo i domini nel formato

.whatsapp.com
.whatsapp.net

Whatsapp è spesso citato come esempio poiché è molto esigente nei confronti dei proxy con autenticazione e non funzionerà se non viene autorizzato prima dell'autenticazione.
http_access allow nonauth — consentiamo l'accesso a questo elenco a tutti
http_access deny !auth — neghiamo l'accesso agli utenti non autenticati agli altri siti
http_access allow auth — permettiamo l'accesso agli utenti autenticati.
Tutto, ora hai configurato Squid, è tempo di iniziare a filtrare per gruppi.

Configurazione di SquidGuard

Andiamo su Servizi > SquidGuard Proxy Filter.

Nelle Opzioni LDAP inseriamo i dati del nostro account, utilizzato per l'autenticazione Kerberos, ma nel seguente formato:

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

Se ci sono spazi o caratteri non latini, è necessario racchiudere l'intero record tra virgolette singole o doppie:

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

Successivamente, assicurati di selezionare queste opzioni:

Proxy gratuito per aziende con autorizzazione di dominio

Per escludere i DOMAIN pfsense non necessari DOMAIN.LOCAL ai quali l'intero sistema è molto sensibile.

Adesso passiamo a Group Acl e colleghiamo i nostri gruppi di accesso ai domini. Utilizzo nomi semplici come group_0, group_1 e così via fino a 3, dove 3 significa accesso solo alla lista bianca e 0 significa accesso totale.

I gruppi vengono collegati nel seguente modo:

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

Salviamo il nostro gruppo, passiamo a Times, dove ho creato un intervallo che significa lavorare sempre. Ora passiamo a Target Categories e creiamo le liste a nostra discrezione. Dopo aver creato le liste, torniamo ai nostri gruppi e all'interno del gruppo selezioniamo con i pulsanti chi può fare cosa e chi no.

LightSquid e sqstat

Se durante la configurazione abbiamo selezionato il loopback nelle impostazioni di Squid e abbiamo aperto la possibilità di accedere alla porta 7445 nel firewall, sia nella nostra rete che direttamente su pfSense, possiamo facilmente aprire sia sqstat che LightSquid andando in Diagnostica > Rapporto Proxy Squid. Per quest'ultimo sarà necessario anche inventare un nome utente e una password, con la possibilità di scegliere anche un tema.

Conclusione

pfSense è uno strumento molto potente, in grado di fare tantissime cose: dal proxy del traffico al controllo dell'accesso degli utenti a Internet, questo è solo un assaggio delle sue capacità. Tuttavia, in un'azienda con 500 computer, ha risolto problemi e permesso di risparmiare sull'acquisto di proxy.

Spero che questo articolo possa aiutare qualcuno a risolvere una questione piuttosto attuale per le medie e grandi imprese.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster