Configurando uma rede wireless segura!
Autor: Nathália Leal | Publicado: 2011-08-16T07:32:00-07:00

IntroduçãoTodos nós sabemos que o atual modelo de redes sem fio (conhecido como  Wi-Fi) não é seguro, mesmo utilizando criptografia WEP/WPA,  desabilitando o broadcast do SSID no Access Point, ou fazendo controle  de acesso por endereços MAC, você realmente não está imune à invasões ou captura de dados sigilosos na sua rede.

Este artigo demonstra como implementar uma camada de segurança realmente eficaz na sua rede sem fio.

Vamos supor que você tenha toda uma rede montada, sua estrutura é  composta por cabos, switches, vários computadores (incluindo um servidor  com Linux, que é o ponto mais importante deste artigo) e pelo menos um  Access Point.

Um Access Point nada mais é do que um switch sem fio e uma ponte entre  as duas redes (sem fio e cabeada), ele está ligado diretamente ao  backbone da rede por meio de um dos switches presentes. Iremos isolar o  Access Point desconectando-o do switch e conectando-o em uma placa de rede adicional instalada no servidor.


Configurando as interfaces do servidor

Instale o pacote "bridge-utils":

$ apt-get install bridge-utils
Edite o arquivo "/etc/network/interfaces", substitua a interface "eth0"  pela "br0" (bridge), configure também a interface "eth1".

Exemplo do novo "/etc/network/interfaces":

# Loopback
auto lo
iface lo inet loopback

# Rede local com interface bridge
auto br0
iface br0 inet static
address 192.168.0.254
netmask 255.255.255.0
gateway 1.2.3.4
bridge_ports eth0

# Interface para o Access Point
auto eth1
iface eth1 inet static
address 10.0.0.254
netmask 255.255.255.0
Reinicie a rede:

$ /etc/init.d/network stop
$ /etc/init.d/network start
Configurando o servidor VPN

Não pretendo me aprofundar muito no OpenVPN com este artigo, iremos  utilizar chaves estáticas, o que é mais simples de implementar, porém, a  melhor maneira de explorar os recursos do programa, é utilizando  certificados (é muito mais seguro), maiores detalhes em http://www.openvpn.net.


Instale o OpenVPN:

$ apt-get install openvpn

Configure o OpenVPN:

Crie o arquivo "/etc/openvpn/servidor-cliente1.conf", este servirá para  atender o primeiro participante da rede sem fio que irá utilizar a VPN, é  possível executar um único daemon para atender vários clientes, porém,  na minha opinião, fica mais fácil controlar os mesmos com um daemon para cada um.

Conteúdo do "/etc/openvpn/servidor-cliente1.conf":

# Endereço e porta do serviço
local 10.0.0.254
port 1194

# Chave secreta
secret chave_secreta1.key

# Nome e tipo da interface para a VPN
dev tap0

# Endereço IP para a interface VPN (isso mesmo, endereço loopback)
ifconfig 127.0.0.1 255.0.0.0

# Script para adição da interface VPN à bridge
up ./servidor-cliente1.up

# Mantendo o link sempre ativo
ping 15
ping-restart 45
ping-timer-rem

# Executando como não-root
user nobody
group nogroup
persist-tun
persist-key

# Nível de verbosidade
verb 3
Gere a chave secreta:

$ openvpn --genkey --secret /etc/openvpn/chave_secreta1.key
Crie o arquivo "/etc/openvpn/servidor-cliente1.up" com o conteúdo abaixo e torne-o executável:

#!/bin/sh
/usr/sbin/brctl addif br0 tap0 || /bin/true
$ chmod 755 /etc/openvpn/servidor-cliente1.up

Reinicie o OpenVPN:

$ /etc/init.d/openvpn restart
Configurando o Access Point

Configure o endereço IP do seu Access Point para 10.0.0.253, conecte-o à  interface "eth1" do servidor Linux, execute o "ping" para verificar se a  rede entre o Access Point e o servidor Linux está operante.

Mesmo que os recursos de segurança do Access Point/redes sem fio não  sejam suficientes (essa é a razão deste artigo), configure-os para ficar  da maneira mais "apertada" possível, habilite a criptografia WEP/WPA,  desabilite o broadcast do SSID e faça o controle de acesso por MAC.


Configurando a interface do cliente

Pressupondo que o cliente consiga ingressar na rede sem fio, basta  especificar o endereço IP e a máscara de sub-rede do mesmo, veja o  exemplo abaixo:

Endereço IP: 10.0.0.1
Máscara de sub-rede: 255.255.255.0

Não é necessário especificar o gateway padrão, esta configuração acima  serve apenas para o cliente poder conectar no servidor VPN e estabelecer  o link seguro, que será o responsável pelo tráfego dos dados que  realmente nos interessam, configure também o "/etc/resolv.conf", apontando os servidores DNS.


Configurando a VPN no cliente

A configuração da VPN no cliente é bastante similar à do servidor, o que muda são apenas algumas linhas.

Crie o arquivo "/etc/openvpn/cliente1-servidor.conf" com o seguinte conteúdo:

# Endereço e porta do serviço
local 10.0.0.1
remote 10.0.0.254
port 1194

# Chave secreta
secret chave_secreta1.key

# Nome e tipo da interface para a VPN
dev tap0

# Caso seu cliente seja Windows, descomente a linha abaixo
# dev-node "conexão local 2"

# Endereço IP para a interface VPN (agora com um endereço válido)
ifconfig 192.168.0.1 255.255.255.0

# Script para adição do gateway padrão
up ./cliente1-servidor.up

# Mantendo o link sempre ativo
ping 15
ping-restart 45
ping-timer-rem

# Executando como não-root
# Caso seu cliente seja Windows, comente as duas linhas abaixo
user nobody
group nogroup
persist-tun
persist-key

# Nível de verbosidade
verb 3
Copie a chave secreta do servidor para o cliente (no diretório "/etc/openvpn"), utilizando um meio de transporte seguro.

A chave deverá ter a permissão "600", e pertencer ao usuário "root" e grupo "root".


Script para adição do gateway padrão

O script "/etc/openvpn/cliente1-servidor.up", serve apenas para  adicionar o gateway padrão, opcionalmente você poderá incluir outros  comandos, veja o conteúdo abaixo:

#!/bin/sh
/sbin/route add default gw 192.168.0.254 dev tap0 || /bin/true
Agora torne-o executável:

$ chmod 755 /etc/openvpn/cliente1-servidor.up

Reinicie o OpenVPN:

$ /etc/init.d/openvpn/restart

Sua rede sem fio segura está pronta!


Notas

Para que sua rede sem fio seja realmente segura, é necessário que você  configure o firewall do cliente para não permitir tráfego algum na  interface real (sem fio), exceto aquele destinado ao endereço IP da  interface "eth1" no servidor, porta UDP 1194.

O tráfego na interface "tap0" deverá ser liberado.

Configure também o firewall do servidor para não permitir tráfego na  interface "eth1" que não seja destinado ao uso do VPN, o roteamento  entre as interfaces "br0" e "eth1" deverá ser proibido.

Suponha alguém consiga invadir sua rede sem fio e capturar seus dados,  não há motivos para se preocupar, os mesmos estão encapsulados na VPN,  onde a criptografia é de alto nível.

Caso seu Access Point tenha a opção de isolar os clientes sem fio  (impedir a comunicação entre eles), habilite-a, isto evitará que sua  infra-estrutura seja utilizada como "playground" pelos invasores,

O máximo que poderá acontecer no caso de uma invasão é exatamente  *nada*, (isso mesmo), a isolação é realmente segura por causa do modelo  de conexão utilizado para com a rede cabeada/Access Point, e por causa  da VPN utilizada.

Todo o procedimento acima deverá ser executado como "root".