Tenho visto muitas dúvidas de como fazer a rede local e compartilhar internet no Gnu/Linux. Pretendo com
esta pequena dica, em simples passos, informar como fazer isso. Também é possível ver o vídeo de como
deve ser feito e como é o funcionamento.
Como compartilhar Internet no Gnu/Linux:
No caso temos um micro com duas interfaces de rede, no caso a eth0 entra internet e eth1 vai usada pra
ser feito a rede local. Editar o arquivo interfaces:
# nano /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.20.1
netmask 255.255.255.0
network 192.168.20.0
broadcast 192.168.20.255
E depois executar o restart o networking:
# /etc/init.d/networking restart
Recomendo remover o network-manager-gnome e outros gerenciadores de rede gráficos, pois estes
aplicativos sempre acabam conflitantes com networking.
Vamos realizar a instalação do dhcp3-server no Debian Squeeze, que mudou nome pra isc-dhcp-server, é
importante saber pois ao ligar o serviço tem usar nome novo. No Ubuntu tem mantém o nome de dhcp3-
server (veja na distro que usa qual o nome).
Debian Squeeze:
# apt-get install isc-dhcp-server
Ubuntu:
# apt-get install dhcp3-server
Archlinux:
# pacman -S dhcp
Confira na sua distro e faça a instalação, e vamos pra configuração. Primeiro vamos informar qual placa o
isc-dhcp-server vai ouvir, edite o arquivo:
# nano /etc/default/isc-dhcp-server
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"
No caso vai ser eth1, pois usaremos esta interface.
Vamos configurar o dhcpd.conf - pra assim criar o range de ips e informar os valores da rede.
Debian Squeeze:
# nano /etc/dhcp/dhcpd.conf
Ubuntu:
# nano /etc/dhcp3/dhcpd.conf
Vamos editar algumas linhas e informar valores pra nossa rede, o mais importante é informar valores pra:
option domain-name-servers, option routers, subnet e o range - deve ficar algo próximo a isso:
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "redecasa";
option domain-name-servers 192.168.20.1,208.67.222.222,208.67.220.220;
default-lease-time 600;
max-lease-time 7200;
# This is a very basic subnet declaration.
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.20 192.168.20.220;
option routers 192.168.20.1;
}
Feito tudo... execute:
Debian Squeeze:
# /etc/init.d/isc-dhcp-server restart
Ubuntu:
sudo /etc/init.d/dhcp3-server restart
Bind9 pode ajudar a fazer cache dos domínios que são constantemente acessados:
# apt-get install bind9
Script de firewall com NAT
Caso não tenha nenhuma regra de firewall, crie este arquivo:
# nano /etc/init.d/compartilhamento
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
# Limpando as tabelas
iptables -F
iptables -t nat -F
iptables -t mangle -F
# Macarando conexões da rede
# se sua conexao estiver na interface ppp0 basta trocar o eth0 por
ppp0
# a interface ppp0 é usada tb em dial-up, entao, neste caso, troque o eth0
# por ppp0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dando permissão de executar e colocando pra iniciar no boot:
# chmod a+x /etc/init.d/compartilhamento
# update-rc.d -f compartilhamento defaults
Caso queria desligar o script compartilhamento rode na hora do boot, use pra remover:
# update-rc.d -f compartilhamento remove
Qualquer dúvida, veja o vídeo informado no início da dica.