Home > Uncategorized > Configurando uma rede wireless segura

Configurando uma rede wireless segura

Caros,

Venho pesquisando sobre segurança wireless, vendo soluções para implementações segura usando essa tecnologia e achei um excelente tutorial do Manoel Lobo no Guia do Hardware sobre o assunto e estou transcrevendo para a mocada do Planeta.

"Todos 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". "

Categories: Uncategorized Tags:
  1. fabio
    09/19/2007 at 3:41 PM

    aaaaa

  2. Fabio
    10/16/2007 at 1:19 PM

    gostaria de esclarecer uma duvida, configurei uma rede com o seguinte ip 10.1.1.x, gateway 10.1.1.1, no switch tudo funciona bem, mas preciso add um access point wireless e não consigo definir a mascara para 255.0.0.0, alguém tem uma dica ????

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: