OpenWRT – Como configurar uma zona desmilitarizada (DMZ)

[dropcap]O[/dropcap]penWrt é um firmware de código aberto baseado no Kernel Linux, com uma comunidade muito ativa e com uma gama enorme de roteadores e dispositivos suportados.
Entre as algumas funcionalidades está o suporte ao IPV4 e IPV6, iproute2, Quagga, BIRD, B.A.T.M.A.N., OLSR, Firewall dinâmico, suporte a dispositivos como impressoras, câmeras e outros. Ainda conta com uma poderosa interface web, baseada no projeto LuCI que é desenvolvido na linguagem LUA.
Outra vantagens do OpenWrt é o suporte a instalação de pacotes adicionais, que adicionam funções a sua firmware e permitem até mesmo ter uma interface alternativa para seu gerenciamento.
DMZ no OpenWRT
Neste artigos vamos configurar uma DMZ (demilitarized zone) no OpenWRT, isolando todos os serviços que possuem acesso externo (tais como servidores HTTP, FTP, etc…) junto em uma rede local, limitando assim o potencial dano em caso de comprometimento de algum destes serviços por um invasor.
Para esta configuração estou utilizando um TP-LINK WR2543 com a versão Chaos Calmer 15.05 do OpenWrt. As interfaces físicas estão configuradas da seguinte forma:
- eth0 (switch)
- eth0.1 (lan)
- eth0.2 (wan)
- wlan (wireless card)
Switch
O switch (eth0) inclui uma série de portas, incluindo as quatro físicas na parte de trás do roteador, um quinto que não é utilizado, além daquele que se conecta à CPU.
O switch suporta VLANs (LANs virtuais) e, por padrão OpenWRT coloca todas essas portas na VLAN1. Isso significa que as conexões físicas nessas quatro portas estão no mesmo switch virtual e são capazes de se comunicar uns com os outros.
Para criamos a DMZ, precisamos mudar a VLAN de uma dessas portas para outra, neste caso VLAN15, também precisamos marcar as portas como tagged. O dispositivo conectado a essa porta não será mais capaz de se comunicar com outros dispositivos no switch. Esta é a base da nossa DMZ.
VLAN1 na verdade, cria uma nova interface no roteador: eth0.1 . A configuração do switch (incluindo o mapeamento de portas a VLANs) está disponível sob o menu Network -> Switch.
obs1: Um erro na interface do wr2543 o faz exibir mais portas do que ele realmente possui, conforme a imagem acima. Basta ignorar as demais portas e lembrar que a porta WAN sempre será a “port 0”.
obs2: Em alguns roteadores (ex: wr1043) a CPU pode ser representada como “port 1”, fazendo com que as demais portas fiquem fora de ordem. Para evitar confusão, verifique se roteador está listando as portas de forma correta.
Criando uma VLAN
Vamos criar a VLAN15 e atribuir as portas para essa VLAN, removendo da VLAN1. Para isso siga os passos:
- Vá em Network -> Switch;
- Clique Add e crie uma entrada para VLAN;
- Configure o ID da VLAN para 15;
- Na linha da VLAN 1, altere a “port 0” para off;
- Na linha da VLAN 15, altere a “port 0” para untagged;
- Na linha da VLAN 15, altere a porta da CPU para tagged;
- Na linha da VLAN 15, especifique uma porta que irá ficar exclusiva para VLAN 15 ou selecione todas conforme a imagem abaixo.
- Clique em Save & Apply.
Criando uma nova interface
Uma vez que criamos a nossa nova VLAN, vamos criar uma nova interface para o DMZ. Da mesma forma que a VLAN 1 e eth0.1, estão conectados à interface LAN. A VLAN 10 e eth0.10 estarão conectados nossa nova interface DMZ.
- Vá em Network -> Interfaces
- Clique em Add New Interface;
- Coloque o nome da interface de DMZ;
- Deixe o protocolo da nova interface como static;
- Deixe a opção “bridge over multiple interfaces” desmarcada;
- Selecione apenas a VLAN Interface: “eth0.15”;
- Clique em Save & Apply.
Conforme a imagem abaixo, configure na aba General Setup o ip da rede DMZ, lembrando que este deverá ser diferente da rede LAN. Após essa configuração, verifique se a opção “Bring up on boot” está marcada.
Caso queira utilizar um DHCP na rede DMZ, basta configurar no final da pagina da interface.
Firewall
É preciso também criar o firewall da interface DMZ. Para isso ainda na configuração da interface, vá na aba Firewall Settings e em Create / Assign firewall-zone selecione a opção unspecified -or- create atribuindo o nome dmz, conforme a imagem.
Regras
Agora vamos criar as seguintes regras para funcionamento da dmz.
- Permitir acesso da DMZ com a WAN;
- Permitir acesso da LAN para DMZ (o inverso não se aplica);
- Permitir tráfigo DNS e DHCP, abrir portas 53 e 67;
- Encaminhar porta 80 da WAN para webserver na DMZ;
Primeiramente vamos configurar a zona em Network -> Firewall;
- Na aba Gerenal Settings, seção Zones, edite a zona DMZ;
- Configure o input para reject, assim todos os pacotes de entrada serão rejeitados por padrão;
- Deixe ouput como accept;
- Deixe Masquerading e MSS clamping desabilitados;
- Selecione Covered networks apenas para dmz;
Mais abaixo, na seção Inter-Zone Forwarding configure conforme a imagem abaixo:
Agora vamos para as port forwards e configurar o encaminhamento da porta 80 para nosso webserver;
- Clique na aba Port Forwards;
- Na seção New port forward, atribua um nome dmz-webserver;
- Configure o protocolo para TCP;
- Configure o External zone para WAN;
- Configure o External port para 80;
- Configure o Internal zone para DMZ;
- Configure o Internal IP address para o ip do seu webserver na rede DMZ (ex: 192.168.15.2);
- Configure o Internal port para 80;
- Clique em Save & Apply.
- Repita estes passos para os demais servidores da rede;
Para finalizar, basta configurar as regras de tráfego.
- Vá para aba Traffic Rules;
- Na seção Open ports on router, atribua o nome dns-dmz
- Em Protocol, selecione UDP;
- Em Port, configure a 53;
- Adicione;
- Encontre a regra criada e edite;
- Configure o Set Destination address para o ip da rede DMZ do roteador, neste caso 192.168.15.1;
- Repita os passos caso use DHCP, alterando a porta para 67. Neste caso não configure o endereço de destino, uma vez que o DHCP funciona via broadcast.
É isso, seguindo estes passos sua rede DMZ já deve estar funcionando!!
OpenWRT – Como configurar uma zona desmilitarizada (DMZ)
História do Rocket Chat; Instalação Servidor de Mensagem Web
Instalando DNS com Bind9 e Webmin no Ubuntu 14.04
Instalando DNS com Bind9 e Webmin no Ubuntu 14.04