Vamos falar de papo nerd? Se você tem um velho PC em casa e gostaria de controlar melhor sua rede de computadores, pode transforma-lo num servidor DHCP com o sistema operacional grátis Linux Ubuntu. Você precisa só colocar mais uma placa de rede nele pois precisamos de duas entradas de rede.

Instalar o Ubuntu no seu PC é fácil, basta baixar o arquivo imagem ISO de instalação grátis na internet, gravar para um CD e iniciar seu computador com ele dentro. Depois disso siga este guia para torna-lo seu servidor de rede dhcp. Para quem não sabe o servidor DHCP distribui os endereços de rede automaticamente quando você liga um computador na rede.

ubuntu logo

Cenário do PC Ubuntu com Servidor DHCP

Meu servidor é um PC com Ubuntu, com duas placas de rede, uma conectada ao modem DSL e a outra na subrede interna através de um switch que você pode comprar baratinho em qualquer loja de informática. Vamos checar as configurações das interfaces de rede:

Internet <<==>> eth1 <> Ubuntu gateway <> eth0 <<==>> Client PC

IP Interno Modem DSL – 192.168.0.1

Máquina Ubuntu Conectada ao Modem DSL com IP – 192.168.0.2 (eth1) –

Rede interna para distribuir os IPs na sub rede.

A segunda placa de rede (eth0) ficou com o IP fixo 10.100.254.54 (eth0)

Um cabo de rede liga o servidor Ubuntu da porta eth0 ao switch onde os computadores são conectados na subrede interna 10.100.254.0.

1. Configuração de Placas de Rede

Edite o arquivo interfaces

sudo nano /etc/network/interfaces

Você irá ter um conteúdo parecido com esse, altere para os seus valores de endereços IP.


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.100.254.54
netmask 255.255.255.0
network 10.100.254.0
gateway 192.168.0.1
broadcast 10.100.254.255

auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.1
broadcast 192.168.0.255

Para reiniciar as placas de rede e fazer as configurações valerem o comando é:

sudo /etc/init.d/networking restart

2. Instalando o DHCPD

Para instalar o servidor de DHCP entre o comando:

sudo apt-get install dhcp3-server

Altere o arquivo /etc/default/dhcp3-server para indicar a interface de rede que será usada na rede interna.

sudo nano /etc/default/dhcp3-server

No meu caso foi a placa de rede eth0

INTERFACES="eth0"

Agora vamos as configurações do servidor de DHCP, editando o arquivo dhcpd.conf

sudo nano /etc/dhcp3/dhcpd.conf

Que deve conter somente a seguinte informação:


ddns-update-style none;
option domain-name "clnetwork";
default-lease-time 3600;
max-lease-time 7200;
log-facility local7;

subnet 10.100.254.0 netmask 255.255.255.0 {
range 10.100.254.2 10.100.254.210;
option domain-name-servers 200.196.48.20,200.196.48.21;
option routers 10.100.254.54;
option broadcast-address 10.100.254.54;
}

Reinicie o servidor DHCP

sudo /etc/init.d/dhcp3-server restart

Ao reiniciar o seu computador, talvez o arquivo que contém os servidores DNS, que servem para principalmente navegar na internet, tenha seu conteúdo apagado. Conserte isso reinserindo estas informações:

sudo nano /etc/resolv.conf


# Generated by NetworkManager

nameserver 8.8.8.8
nameserver 8.8.4.4

Até aqui as máquinas que se conectarem na sua rede conseguem pegar seus endereços IPs através do seu servidor DHCP porém elas ainda não tem acesso a internet. Temos que programar um redirecionamento da placa de rede que acessa a internet para a que serve a rede dhcp.

Para ver os IPs liberados via dhcp, dê o seguinte comando no servidor:

cat /var/lib/dhcp3/dhcpd.leases

Redirecionando o tráfego de eth1 para eth0 via iptables

Vamos configurar o servidor para redirecionar o tráfego das interfaces de rede e fazer as máquinas clientes conseguirem acessar a internet.

sudo nano /proc/sys/net/ipv4/ip_forward

dentro do arquivo ip_forward deve haver o número 1 somente

sudo nano /etc/sysctl.conf

altere os seguintes parâmetros dentro do arquivo sysctl.conf:

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1

Agora por último a configuração de iptables:


sudo iptables -P INPUT ACCEPT
sudo iptables -F INPUT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F OUTPUT
sudo iptables -P FORWARD DROP
sudo iptables -F FORWARD
sudo iptables -t nat -F

sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -j LOG

sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

OBS: Não se assuste, a internet só funciona nas máquinas clientes que pegam ip via seu servidor de dhcp após o último comando iptables “MASQUERADE”.

O comando “iptables -t nat -F” limpa a tabela de redirecionamento e depois que você digitou todos estes comandos, vamos salvar para um arquivo texto para quando a máquina reiniciar eles sejam automaticamentes reprogramados:

sudo iptables-save > /etc/network/iptables.rules

vamos criar um script de incialização chamado de “iptables”:

sudo nano /etc/network/if-up.d/iptables

com o seguinte conteúdo:


#!/bin/sh
# script: iptables
/sbin/iptables-restore /etc/network/iptables.rules

Salve e depois altere as permissões para execução:

sudo chmod 755 /etc/network/if-up.d/iptables

Análise de Tráfego nos IPs da rede DHCP

Para analisar o tráfego utilizado nos IPs da sua rede, você pode usar o tcptrack. Instale o tcptrack com o seguinte comando:

sudo apt-get install tcptrack

Usar o tcptrack é fácil, vamos por exemplo analisar o tráfego na porta 80:

sudo tcptrack -i eth0 port 80

Conclusões

Com um PC velho em casa e um sistema operacional como o Ubuntu você pode controlar sua rede interna através da instalação de um servidor DHCP. Seguindo este guia vimos como instalar o servidor DHCP no Ubuntu e configura-lo