Configuración de Zentyal como pasarela de acceso a Internet
Características de Zentyal como pasarela de acceso a Internet
Zentyal inclúe dentro do módulo de Gateway distintos servizos para ofrecer todas as funcións necesarias para unha pasarela de acceso a Internet:
- O servizo de firewall (cortafogos), utilizando o subsistema netfilter do núcleo de Linux. Este servizo permitiranos configurar que conexións se permiten ou se rexeitan na nosa rede local.
- O servizo de enrutamento, utilizando o subsistema de encamiñamento do núcleo de Linux configurándoo con iproute2. Este servizo permitirá encamiñar todas as conexións que non sexan atendidas polo proxy (é dicir, que non usen protocolo HTTP ou HTTPS).
- O servizo de proxy mediante o servidor squid, e o filtro de contidos con dansguardian. Este servizo encamiñará todas as conexións á web dende a rede local.
Con estes servizos, teremos unha completa solución para cubrir co servidor Zentyal as necesidades que se requiren para a pasarela de acceso a Internet.
Instalación do módulo de Proxy HTTP
En primeiro lugar, teremos que instalar no servidor Zentyal o módulo de Proxy HTTP:
Configuración das interfaces de rede
Haberá que configurar as interfaces de rede da nosa pasarela, igual que o fixemos no caso do enrotamento en Windows. O máis habitual será que a pasarela de acceso a Internet conte con dúas interfaces de rede, se queremos que a rede local estea separada fisicamente da rede externa. No noso caso, poñerémoslle á máquina dúas interfaces de rede, a primeira conectada á rede interna que será pola que se conecten os equipos da rede local e a segunda conectada por NAT que será pola que se terá o acceso a Internet:
Configuramos a interface de rede conectada á rede interna (eth0) coa dirección 172.16.0.2. Esta interface non a marcaremos como externa, xa que así Zentyal saberá que esta será a interface conectada á rede local, e será por onde recibirá as peticións dos clientes para conectarse a Internet. Zentyal configurará automaticamente o servizo de firewall e o proxy atendendo a esta información.
Pero cando intentamos cambiar a configuración da interface, vemos unha mensaxe de erro que indica que este cambio faría que a dirección IP que está configurada como porta de enlace predeterminada (o equipo que permite saír a Internet) fora inaccesible dende o equipo, así que antes temos que eliminar esa porta de enlace. Imos aló.
Configuración do proxy en modo transparente
Imos ver en primeiro lugar os pasos para configurar un proxy transparente, xa que a configuración dos equipos cliente é máis simple deste xeito.
Configuración do proxy no servidor Zentyal
A configuración de Zentyal é moi simple, xa que só teremos que indicar que queremos habilitar o proxy transparente:
Imos ao apartado de Proxy HTTP->Configuración Xeral, habilitamos a opción de proxy transparente e picamos no botón de Cambiar. Aquí vemos as opcións máis básicas do proxy, que son o porto no que escoita (por defecto o 3128), o bloqueo da publicidade nas páxinas web e o espazo en disco que se utilizará para almacenar temporalmente o contido descargado para evitar ter que descargalo de novo (caché).
Configuración dos clientes da rede local
A configuración dos clientes co proxy transparente é moi sinxela, xa que simplemente teremos que poñer a dirección IP do servidor (a da interface interna coa que están conectados con unha tarxeta que tamén configuraremos conectada á rede interna) como porta de enlace predeterminada, igual que se fose un router.
Con respecto á configuración do servidor de DNS nos clientes para poder conectarnos a Internet utilizando os nomes dos servidores (www.google.es, www.xunta.es, etc.), dado que o servizo de proxy en Zentyal obriga a activar o de Controlador de dominio e compartición de ficheiros e este require activar o de DNS, neste momento o noso servidor Zentyal xa pode actuar como servidor de DNS para estes equipos. Polo tanto, temos dúas posibilidades:
- Poñer a dirección IP do servidor Zentyal como servidor de DNS (como se ve na máquina Ubuntu).
- Poñer a dirección IP do servidor DNS que teñamos na nosa rede (como se pode ver na máquina Windows). Neste caso, cada quen terá que poñer as direccións dos servidores DNS que lle proporciona o seu ISP (Provedor de Servizo de Internet).
Configuración do firewall no servidor Zentyal
A configuración do firewall é moi importante xa que vainos permitir configurar que conexións se permitirán e cales non daquelas que non son encamiñadas polo proxy, que serán todas as aquelas que non sexan do protocolo HTTP (téñase en conta que o proxy transparente tampouco captura as conexións HTTPS); como por exemplo conexións a servidores de correo, servidores DNS, polo protocolo HTTPS ou calquera outro protocolo.
Para facilitar a configuración do firewall, Zentyal agrupa as regras segundo os tipos de conexións que se poden dar, tendo en conta que interfaces de rede están marcadas como externas e cales non:
Como se pode ver no diagrama, teremos as seguintes regras de filtrado no firewall:
- Dende redes internas a Zentyal: Englobará aquelas conexión que cheguen con destino á propia máquina dende un equipo conectado a algunha interface de rede non marcada como externa.
- Para as redes internas: Englobará todo o tráfico que se reciba dende un equipo conectado a algunha interface non marcada como externa que vai dirixido a outro equipo, xa sexa este último dunha rede interna ou externa.
- Dende redes externas a Zentyal: Englobará aquelas conexión que cheguen con destino á propia máquina dende un equipo conectado a algunha interface de rede marcada como externa. Normalmente deberemos ser bastante restritivos neste apartado.
- Tráfico saínte de Zentyal: Serán os paquetes enviados polo propio equipo.
Imos pois coa configuración do firewall:
Efectivamente, o que está pasando é que estas conexións non van dirixidas ao porto 80 (onde o proxy está capturando as conexións para redirixilas de forma transparente), senón que van ao porto 443 (que é o porto asociado a unha conexión https). O que pasa neste caso é que Zentyal encamiña estas conexións a nivel de rede co servizo de enrutamento, e como a regra do firewall establece que se acepten todas as conexións, déixanse pasar. Isto pode ser un problema porque hai programas como Ultrasurf que se saltan os proxys creando conexións HTTPS, así que imos ver como denegalas. Deberemos ter definido un servizo que identifique este tipo de conexións: Imos ao apartado de Rede->Servizos para ver os servizos definidos e atopamos que xa aparece o servizo HTTPS. Entramos na súa configuración
Configuración do proxy en modo non transparente
Imos ver agora como configuraríamos un proxy non transparente na nosa rede local, o cal vai implicar unha configuración explícita do servidor proxy nos equipos.
Configuración do proxy no servidor Zentyal
Realmente non é necesario facer ningún cambio na configuración do proxy para utilizar o proxy en modo non transparente, xa que podemos configurar o servidor proxy explicitamente nos equipos cliente e deixar igual a opción de proxy transparente activada. De feito, esta opción sería moi recomendable porque así os equipos que teñan o proxy configurado poden usalo para conexións HTTPS, pero os que non o teñan tamén poden usalo de forma transparente polo menos para as conexións HTTP.
De todas formas, imos desactivar a opción de proxy transparente para forzar neste caso a que os equipos da rede interna teñan que facer unha configuración explícita do proxy para poder ter acceso a Internet:
Configuración dos clientes da rede local
Nos clientes da rede local teremos que configurar o servidor proxy para que poidan conectarse a Internet. Imos ver como podemos facelo tanto en clientes Windows como Linux:
Configuración do firewall no servidor Zentyal
Configurando o proxy en modo non transparente, cómpre denegar as conexións HTTP (as que reciban polo porto 80) se queremos forzar aos clientes a que utilicen o proxy para saír a Internet.
Nota: A configuración do firewall que se mostra en calquera dos casos no servidor Zentyal é simplemente a modo de exemplo e para poder explicar o funcionamento básico do firewall en Zentyal, pero en cada caso particular esta configuración pode variar en función das conexións que se queiran permitir ou denegar na rede local ¿Queremos adoptar unha política permisiva (permitir todas as conexións salvo algúns tipos de tráfico concreto, como neste caso) ou restrictiva (denegar todas as conexións salvo o tráfico que estea explicitamente autorizado? ¿Que tipo de conexións queremos que se poidan establecer dende os equipos da rede local (POP, IMAP, FTP, SSH, etc.)? ¿A que ou dende que equipos? En función disto en cada caso teremos que introducir as regras correspondentes.
Os seguintes enlaces da documentación de Zentyal abordan a configuración do servizo de firewall, encamiñamento e proxy HTTP:
-- Antonio de Andrés Lema e Carlos Carrión Álvarez -- (xan 2015).