Servidor proxy gratuíto para empresas con autorización de dominio

Servidor proxy gratuíto para empresas con autorización de dominio

pfSense+Squid con filtrado https + Inicio de sesión único (SSO) con filtrado de grupo de Active Directory

Breve fondo

A empresa necesitaba implementar un servidor proxy coa capacidade de filtrar o acceso aos sitios (incluído https) por grupos de AD para que os usuarios non introduzan ningún contrasinal adicionais e poidan ser administrados desde a interface web. Boa aplicación, non?

A resposta correcta sería mercar solucións como Kerio Control ou UserGate, pero coma sempre non hai cartos, pero hai unha necesidade.

Aquí é onde o bo vello Squid vén ao rescate, pero de novo, onde podo conseguir unha interface web? SAMS2? Moralmente obsoleto. Aquí é onde pfSense vén ao rescate.

Descrición

Este artigo describirá como configurar o servidor proxy Squid.
Usarase Kerberos para autorizar os usuarios.
Usarase SquidGuard para filtrar por grupos de dominios.

Para o seguimento utilizaranse sistemas de vixilancia Lightsquid, sqstat e pfSense internos.
Tamén resolverá un problema común asociado á introdución da tecnoloxía de inicio de sesión único (SSO), é dicir, as aplicacións que tentan navegar por Internet baixo a conta do compás coa súa conta do sistema.

Preparando a instalación de Squid

pfSense tomarase como base, Instrucións de instalación.

Dentro do cal organizamos a autenticación no propio firewall mediante contas de dominio. Instrucións.

É moi importante!

Antes de comezar a instalar Squid, cómpre configurar o servidor DNS en pfsense, facer un rexistro A e un rexistro PTR no noso servidor DNS e configurar NTP para que a hora non difira da hora do controlador de dominio.

E na súa rede, proporcione a posibilidade de que a interface WAN de pfSense acceda a Internet e que os usuarios da rede local se conecten á interface LAN, incluídos os portos 7445 e 3128 (no meu caso 8080).

Todo listo? Establécese a conexión LDAP co dominio para a autorización en pfSense e a hora está sincronizada? Genial. É hora de comezar o proceso principal.

Instalación e preconfiguración

Squid, SquidGuard e LightSquid instalaranse desde o xestor de paquetes pfSense na sección "Sistema / Xestor de paquetes".

Despois da instalación exitosa, vaia a "Servizos / Servidor Squid Proxy /" e, en primeiro lugar, na pestana Caché local, configure o caché, configurei todo en 0, porque Non lle vexo moito sentido a almacenar en caché os sitios, os navegadores fan un gran traballo con isto. Despois de configurar, preme o botón "Gardar" na parte inferior da pantalla e isto daranos a oportunidade de facer a configuración básica do proxy.

As principais configuracións son as seguintes:

Servidor proxy gratuíto para empresas con autorización de dominio

O porto predeterminado é 3128, pero prefiro usar 8080.

Os parámetros seleccionados na pestana Interface proxy determinan as interfaces nas que escoitará o noso servidor proxy. Dado que este firewall está construído de tal xeito que parece en Internet como unha interface WAN, aínda que a LAN e a WAN poden estar na mesma subrede local, recomendo usar LAN para o proxy.

O loopback é necesario para que sqstat funcione.

A continuación atoparás a configuración do proxy transparente (transparente), así como o filtro SSL, pero non os necesitamos, o noso proxy non será transparente, e para o filtrado https non substituiremos o certificado (temos fluxo de documentos, banco clientes, etc.), vexamos só o apretón de mans.

Nesta fase, necesitamos ir ao noso controlador de dominio, crear nel unha conta de autenticación (tamén podes usar a que estaba configurada para a autenticación no propio pfSense). Aquí tes un factor moi importante: se queres usar o cifrado AES128 ou AES256, marque as caixas adecuadas na configuración da túa conta.

Se o teu dominio é un bosque moi complexo con un gran número de directorios ou o teu dominio é .local, entón é POSIBLE, pero non seguro, que teñas que usar un contrasinal simple para esta conta, o erro é coñecido, pero pode que simplemente non funcione cun contrasinal complexo, debes comprobar un caso específico específico.

Servidor proxy gratuíto para empresas con autorización de dominio

Despois diso, creamos un ficheiro de clave para kerberos, abrimos un símbolo do sistema con dereitos de administrador no controlador de dominio e introducimos:

# 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

Onde indicamos o noso FQDN pfSense, asegúrese de respectar o caso, introduza a nosa conta de dominio e o seu contrasinal no parámetro mapuser, e en crypto seleccionamos o método de cifrado, usei rc4 para traballar e no campo -out seleccionamos onde imos enviaremos o noso ficheiro de chave rematado.
Despois de crear con éxito o ficheiro de chave, enviarémolo ao noso pfSense, eu usei Far para iso, pero tamén podes facelo tanto con comandos como con putty ou a través da interface web de pfSense na sección "Liña de comandos de diagnóstico".

Agora podemos editar/crear /etc/krb5.conf

Servidor proxy gratuíto para empresas con autorización de dominio

onde /etc/krb5.keytab é o ficheiro de chave que creamos.

Asegúrate de comprobar o funcionamento de kerberos usando kinit, se non funciona, non ten sentido ler máis.

Configurar a autenticación Squid e a lista de acceso sen autenticación

Unha vez configurado correctamente kerberos, fixarémolo ao noso Squid.

Para iso, vai a ServicesSquid Proxy Server e na configuración principal baixa ata o fondo, alí atoparemos o botón "Configuración avanzada".

No campo Opcións personalizadas (antes da autenticación), introduza:

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

onde programa de negociación auth_param /usr/local/libexec/squid/negotiate_kerberos_auth - selecciona o axudante de kerberos de autenticación que necesitamos.

Clave -s con significado GSS_C_NO_NAME — define o uso de calquera conta do ficheiro clave.

Clave -k con significado /usr/local/etc/squid/squid.keytab - determina usar este ficheiro de keytab en particular. No meu caso, este é o mesmo ficheiro keytab que creamos, que copiei no directorio /usr/local/etc/squid/ e cambiei o nome, porque o squid non quería ser amigo dese directorio, ao parecer non había dereitos suficientes.

Clave -t con significado -t ningún - desactiva as solicitudes cíclicas ao controlador de dominio, o que reduce moito a carga sobre el se tes máis de 50 usuarios.
Durante a duración da proba, tamén pode engadir a tecla -d, é dicir, diagnósticos, mostraranse máis rexistros.
auth_param negociar nenos 1000 - determina cantos procesos de autorización simultáneos se poden executar
auth_param negociar keep_alive on - non permite romper a conexión durante a votación da cadea de autorización
acl auth proxy_auth NECESARIO - crea e require unha lista de control de acceso que inclúa usuarios que pasaron a autorización
acl nonauth dstdomain "/etc/squid/nonauth.txt" - informamos ao calamar sobre a lista de acceso non auth, que contén dominios de destino, aos que sempre se permitirá o acceso a todos. Creamos o propio ficheiro, e dentro del introducimos dominios no formato

.whatsapp.com
.whatsapp.net

Whatsapp non se usa en balde como exemplo: é moi esixente co proxy con autenticación e non funcionará se non se permite antes da autenticación.
http_access permitir nonauth - permitir o acceso a esta lista a todos
http_access denegar !auth - Prohibimos o acceso a outros sitios a usuarios non autorizados
http_access permitir autenticación - Permitir o acceso aos usuarios autorizados.
Xa está, o propio calamar está configurado, agora toca comezar a filtrar por grupos.

Configuración de SquidGuard

Vaia a Filtro proxy de ServicesSquidGuard.

En Opcións LDAP introducimos os datos da nosa conta empregados para a autenticación kerberos, pero no seguinte formato:

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

Se hai espazos ou caracteres non latinos, esta entrada completa debe ir entre comiñas simples ou dobres:

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

A continuación, asegúrate de marcar estas caixas:

Servidor proxy gratuíto para empresas con autorización de dominio

Para cortar DOMAINpfsense innecesario DOMAIN.LOCAL ao que todo o sistema é moi sensible.

Agora imos ao Grupo Acl e unimos os nosos grupos de acceso ao dominio, uso nomes sinxelos como group_0, group_1, etc. ata 3, onde 3 é o acceso só á lista branca e 0 - todo é posible.

Os grupos están ligados do seguinte xeito:

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

gardar o noso grupo, vai a Times, alí creei un oco que significa traballar sempre, agora vai a Categorías de destino e crea listas ao noso criterio, despois de crear as listas volvemos aos nosos grupos e dentro do grupo con botóns seleccionamos quen pode ir. onde, e quen non pode onde.

LightSquid e sqstat

Se durante o proceso de configuración seleccionamos un loopback na configuración de squid e abrimos a posibilidade de acceder a 7445 no firewall tanto na nosa rede como no propio pfSense, entón cando imos a Diagnóstico dos informes de Squid Proxy, podemos abrir facilmente tanto sqstat como Lighsquid, para este último necesitaremos No mesmo lugar, dar cun nome de usuario e contrasinal, e tamén hai a oportunidade de escoller un deseño.

Realización

pfSense é unha ferramenta moi poderosa que pode facer moitas cousas: tanto o proxy de tráfico como o control sobre o acceso dos usuarios a Internet son só unha fracción de toda a funcionalidade, con todo, nunha empresa con 500 máquinas, isto resolveu o problema e aforrou comprando un proxy.

Espero que este artigo axude a alguén a resolver un problema que é bastante relevante para medianas e grandes empresas.

Fonte: www.habr.com

Engadir un comentario