Introdução
Você deverá ter duas placas de rede instaladas no computador, que será o servidor DHCP.
Todo servidor deve ser configurado para iniciar automaticamente em caso de queda de energia. A configuração deve ser feita acessando-se o Setup do CMOS (o popular BIOS) da placa-mãe. Geralmente, essa configuração está na aba “Power” ou “Energy” ou “Advanced” ou similar. A opção a ser configurada, geralmente, aparece como “Restore on AC Power Loss” ou similar. Esta opção deve ser colocada como “Power on”. Isto fará com que a máquina seja reiniciada automaticamente. Com essa opção ligada (Power on), a placa-mãe detectará o retorno da energia e ligará a máquina automaticamente colocando o servidor em funcionamento. 1. Instalar o pacote DHCP como root: # aptitude safe-upgrade Aguarde terminar a instalação. Deverá dar falha: “failed”, em vermelho – Isso é normal, uma vez que ainda não configuramos o DHCP. Antes do próximo passo, você já deverá ter sua subnet (subrede) planejada com seus endereços IPs. O IP da placa de rede que irá servir o DHCP será também, automaticamente, o IP do gateway/compartilhamento da nossa configuração (no caso, a eth0). Tecnicamente falando, quando fazemos o compartilhamento, não estamos transformando o GNU/Linux em um roteador, somente estamos compartilhando os dados de entrada de uma interface de rede com a(s) outra(s). 2. Configure os endereços IPs das placas de rede: # vim /etc/network/interfaces Não mexa nas linhas iniciais do arquivo. As configurações abaixo das linhas iniciais devem ficar como está abaixo. * Lembrando que a placa de rede Onboard nem sempre é a eth0 e a Offboard nem sempre é a eth1. O arquivo abaixo é somente o exemplo da nossa configuração: # This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # The looback network interface # Primeira interface de rede – offboard # Segunda interface de rede – onboard Salve e saia do arquivo. Os números de IPs devem estar de acordo com o arquivo /etc/dhcp/dhcpd.conf, que você mesmo irá configurar mais adiante. A placa de rede que recebe a Internet é a eth1. Deixei ela com IP dinâmico. Caso queira fixar o IP da placa que recebe a Internet, no caso a eth1, ela deverá ter como gateway, o IP do roteador ADSL ou do roteador da rede. * Lembrando que, no arquivo /etc/network/interfaces, você deve acrescentar todas as placas de rede que estiverem instaladas na máquina: eth0, eth1, eth2 e assim por diante. 3. Verifique também o arquivo /etc/resolv.conf, que deverá estar com um ou dois DNSs adicionados. Exemplo: # vim /etc/resolv.conf Dentro do arquivo deverá ter: domain xxxxxxxxxxxx
search xxxxxxxxxxxxx nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx Onde:
Caso não tenha nada no arquivo, acrescente o IP do Gateway (roteador) ou do DNS da rede (se houver). Este arquivo se renova a cada reinicialização da máquina. Se não tiver esse arquivot você deve ciá-lo: # vim /etc/resolv.conf E acrescentar, pelo menos, um “nameserver”. Na próxima reinicialização ele virá correto. 4. Para configurar o serviço DHCP, devemos alterar somente dois arquivos:
Entre no arquivo com o seu editor de texto favorito, o Nano, o Pico, o Vim, etc. Usarei o Vim como exemplo: # vim /etc/default/isc-dhcp-server Na linha onde diz:
Coloque entre as aspas a interface de rede que irá responder pelo DHCP. Exemplo: INTERFACES=”eth0“
Salve e saia do arquivo. 5. Abra o arquivo /etc/dhcp/dhcp.conf: # vim /etc/dhcp/dhcpd.conf Comente as duas linhas que iniciam com “option domain” colocando um “#” na frente. Procure a linha onde tem escrito: # authoritative;
E se já não estiver sem, tire o “#” da frente. Após, procure a linha onde diz:
Dê um ENTER colocando uma linha em branco e acrescente (antes leia abaixo a definição das linhas do arquivo): subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.5 192.168.2.125; option routers 192.168.2.1; option broadcast-address 192.168.2.255; option domain-name-servers 192.168.2.2, xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx, 192.168.2.1; } deny unknown-clients; ignore unknown-clients; group servidores { use-host-decl-names true; host dhcp { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.2.1; } host dns { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.2.2; } } group clientes { use-host-decl-names true; host maquina01 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.2.5; } } Acrescente tantos quantos hosts forem necessários para você. Na primeira linha definimos:
Escolhemos isso dentro das 3 faixas de IPs reservadas para redes internas privadas de acordo com a RFC 1918: 10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255 Definição:
* Importante: Se você deixar as linhas “deny …” e “ignore …” descomentadas, as máquinas clientes que estiverem com IP automático e não estiverem cadastradas, NÃO obterão IP e, logicamente, só navegarão se o IP for fixado manualmente na própria máquina. No grupo “servidores” estamos fixando os IPs dos servidores através do MAC da placa de rede. Para ver o MAC da placa de rede, execute ifconfig e veja o HW da placa de rede que responde pelo servidor e coloque ali em cima. Caso não haja DNS interno na rede, o “host dns” deve ser omitido. No grupo “clientes”, definimos os IPs dos clientes através do MAC da placa de rede de cada máquina. A opção GROUP serve para separar a configuração por grupos dentro da mesma rede/subrede. Por exemplo, você quer que um determinado grupo composto por algumas máquinas tenha uma configuração distinta de outro grupo ou do resto da rede e quer que usem, por exemplo, um outro gateway (option routers), ou qualquer outra configuração permitida a somente uma máquina pelo dhcpd.conf, você pode especificar isso através do “group” sem aplicar para toda a rede. Salve e saia do arquivo. |
|
Habilitando o compartilhamento
6. Compartilhando a conexão.
Criando o arquivo de configuração do IPtables: # vim /etc/init.d/firewall.sh Obs.: Aqui você pode dar o nome que quiser ao arquivo. Dentro do arquivo coloque exatamente o seguinte: #!/bin/bash
modprobe iptable_nat echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Onde:
Salve e saia do arquivo. É uma configuração extremamente básica e sem segurança nenhuma. Para maior aprofundamento, estude as regras do IPtables. Vamos transformar o arquivo que criamos em um arquivo executável: # chmod +x /etc/init.d/firewall.sh Agora vamos fazer com que esse arquivo seja executado automaticamente na inicialização. Entre no arquivo “rc.local”: # vim /etc/rc.local Logo acima da linha “exit 0”, coloque o caminho para o arquivo, ficando assim: /etc/init.d/firewall.sh start
exit 0 Salve e saia do arquivo. 7. Reinicie o sistema: # shutdown -r now Com isso, o servidor deverá estar fazendo o compartilhamento e servindo endereços IPs para a rede local (Lan). A lógica é a seguinte: A Internet entra por uma placa de rede, o sistema “pega” essa Internet e através do arquivo do IPtables, faz com que ela seja distribuída para as outras placas de rede, não importando quantas mais tenha na máquina. Para remover completamente o serviço de DHCP da máquina, se for o caso, execute: # apt-get purge isc-dhcp-server Depois coloque todas as placas de rede com IP automático (DHCP) e reinicie: # shutdown -r now Daí é só reinstalar o serviço e fazer as configurações novamente. |
|
Controle de IPs pela tabela ARP
8. Para evitar que algum cliente acesse a Internet fixando manualmente o IP na sua máquina, devemos acrescentar na tabela ARP os IPs, criando o arquivo /etc/ethers:
# vim /etc/ethers Coloque dentro do arquivo o IP e o MAC da seguinte maneira, um por linha: 192.168.2.2 xx.xx.xx.xx.xx.xx
192.168.2.3 xx.xx.xx.xx.xx.xx E assim por diante. Você pode também preencher com MACs falsos, os IPs que não estão em uso, por exemplo: 192.168.2.126 00:00:00:ff:ee:11
Ficaria assim o arquivo /etc/ethers: 192.168.2.5 xx.xx.xx.xx.xx.xx
192.168.2.6 xx.xx.xx.xx.xx.xx 192.168.2.126 00:00:00:ff:ee:11 192.168.2.127 00:00:00:ff:ee:11 * Lembrando que os IPs que não estão em uso, são os que não estão cadastrados nos grupos “servidores” e “clientes”. Se você tem uma faixa de IPs classe C (recomendada para estes casos), então são 253 linhas para você colocar no /etc/ethers, entre IPs em uso e não-uso. O endereço do gateway, da rede e do broadcast não é necessário colocar. Agora, precisamos carregar o arquivo /etc/ethers na tabela ARP durante a inicialização. Entre no arquivo /etc/rc.local e coloque “arp -f” acima da linha exit 0: /etc/init.d/firewall.sh start
arp -f exit 0 Para o controle de MAC por ARP funcionar, o servidor GNU/Linux terá que ser o gateway da rede, ou seja, deverá haver o compartilhamento. E, não esqueça, quando a linha “range” estiver descomentada, as linhas “deny…” e “ignore…” devem estar comentadas e vice-versa. Assim, se alguém não cadastrado no DHCP fixar manualmente um IP na máquina, mesmo estando dentro da faixa de rede utilizada, a máquina não navegará na Internet. Você pode fazer esse controle de IPs por MAC também pelo IPtables, porém, tendo muitas máquinas na rede tornará o servidor um pouco lento. É preferível fazer pela tabela ARP. |