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.
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
Stay connected