Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze

Configuração do sistema, instalação e configuração de DHCP (com compartilhamento) e instalação e configuração de DNS para rede interna. Aqui iremos trabalhar com o sistema operacional Debian Squeeze instalado em modo texto (console), ou seja, sem a interface gráfica. Porém, em ambiente real é recomendável ter uma máquina de configuração compatível com o serviço e instalar com a interface gráfica.

[ Hits: 86.858 ]

Por: Buckminster em 03/10/2012


DHCP e compartilhamento



Você deverá ter duas placas de rede instaladas no computador que será o servidor DHCP e deverá ter feito as configurações anteriores do sistema básico.

1. Instalar o pacote DHCP como root:

# aptitude safe-upgrade
# apt-get update
# aptitude install isc-dhcp-server


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 IP. O IP da placa de rede que irá servir o DHCP será também o IP do gateway/roteador da nossa configuração básica (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
auto lo
iface lo inet loopback

# Primeira interface de rede - offboard
allow-hotplug  eth0
iface  eth0  inet  static
address  192.168.2.1
netmask  255.255.255.0
broadcast  192.168.2.255

# Segunda interface de rede - onboard
allow-hotplug  eth1
iface  eth1  inet  dhcp

Salve e saia do arquivo.

Os números de IP devem estar de acordo com o arquivo /etc/dhcp/dhcpd.conf que você mesmo irá configurar mais diante.

A placa de rede que recebe a Internet é a eth1. Deixei ela com IP dinâmico. Caso queiram fixar o IP da placa que recebe a Internet, no caso a eth1, ela deverá ter como gateway o IP do roteador. 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.

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 uma ou duas linhas:

nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

XXX são os números de IPs. Caso não tenha nada no arquivo, acrescente o IP do Gateway (roteador) ou do DNS da rede (se houver).

3. Caso exista proxy na sua rede, entre no arquivo abaixo:

# vim /etc/profile

E acrescente as seguintes linhas no final do arquivo:

http_proxy="http_proxy://ip_proxy:porta"
ftp_proxy="ftp_proxy://ip_proxy:porta"
export http_proxy ftp_proxy

Exemplo:

http_proxy="http_proxy://192.168.200.253:8080"
ftp_proxy="ftp_proxy://192.168.200.253:21"
export http_proxy ftp_proxy

Salve e saia do arquivo. Reinicie o sistema:

# shutdown -r now

4. Para configurar o serviço DHCP devemos alterar somente dois arquivos:
  • /etc/default/isc-dhcp-server
  • /etc/dhcp/dhcpd.conf

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:

INTERFACES=""

Coloque entre as aspas a interface de rede que irá responder pelo DHCP. Exemplo:

INTERFACES="eth0"

Salve e saia do arquivo.

5. Edite:

# 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.

authoritative;

Após, procure a linha onde diz:

# This is a very basic subnet declaration.

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.25;
      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;
   }

host dns {
hardware ethernet XX:XX:XX:XX:XX:XX;
fixed-address 192.168.2.2;
}

Onde:
  • Na primeira linha definimos a nossa subrede: 192.168.2.0 e a máscara dessa subrede: 255.255.255.0 (escolhemos isso dentro das 3 faixas de IPs reservados para redes internas privadas 10.0.0.0, 172.16.0.0 ou 192.168.0.0).
  • Na linha range definimos a nossa faixa e a quantidade de IPs que queremos que o DHCP distribua (depende do número de computadores que temos na rede).
  • Na linha option routers definimos o IP do roteador, que no nosso caso, deve ser o mesmo da placa de rede que responde pelo DHCP, a eth0.
  • Na linha option broadcast-address definimos o broadcast da rede.
  • Na linha option domain-name-servers definimos por primeiro o DNS interno da rede (se houver) seguido de DNSs públicos e abertos e terminando sempre com o IP do gateway/roteador para redundância. Caso não haja DNS interno na rede esta linha deve ser omitida.
  • No bloco "host dns..." estamos fixando o IP do DNS através do MAC da placa de rede. Para ver o MAC da placa de rede execute ifconfig e veja o HW da placa eth0 (offboard) do DNS e coloque ali em cima. Caso não haja DNS interno na rede este bloco deve ser omitido.

Salve e saia do arquivo.

6. Compartilhando a conexão.

Criando o arquivo de configuração do iptables:

Obs.: Aqui você pode dar o nome que quiser ao arquivo.

# vim /etc/init.d/firewall.sh

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

A placa eth1 é a que recebe a Internet. Se a sua for a eth0, você deve colocar... -o eth0 -j... Atente para isso: a interface que vai ali é SEMPRE a interface que recebe a Internet, ou seja, é nesta placa de rede que deverá ser conectado o "fio" de entrada dos dados/Internet.

A primeira linha é somente um comentário que identifica o interpretador de comandos, no caso o bash.

Na segunda linha estamos levantando o módulo de compartilhamento.

Na terceira linha estamos ativando o compartilhamento.

Na quarta linha estamos dizendo para o iptables que tudo que entrar pela placa de rede eth1 deve ser compartilhado com as outras placas de rede do computador.

Salve e saia do arquivo.

É uma configuração extremamente básica e sem segurança nenhuma. Para maior aprofundamento estude as regras do iptables.

Agora vamos transformar o arquivo que criamos em um arquivo executável:

# chmod +x /etc/init.d/firewall.sh

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

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração do sistema
   3. DHCP e compartilhamento
   4. DNS
Outros artigos deste autor

Compilação do Kernel

Encapsulando BIND 9 e Apache 2 para obter maior segurança

IPv6, DNSv6 e DHCPv6

Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg

ClamAV, o kit de ferramentas antivírus

Leitura recomendada

Sincronizando o Linux com a Hora Legal Brasileira usando o NTP.br

Pós-instalação do Fedora 19 (GNOME Shell)

Debmirror: Criando um repositório Debian na rede local

Emergindo grandes pacotes em hardwares fracos com o auxílio de outro computador no Gentoo Linux

Ubuntu 7.10 "levinho" para PCs antigos

  
Comentários
[1] Comentário enviado por danniel-lara em 04/10/2012 - 00:06h

Parabéns pelo artigo

[2] Comentário enviado por Buckminster em 04/10/2012 - 20:31h

Obrigado Daniel.

[3] Comentário enviado por liciomz em 15/10/2012 - 13:20h

Ótimo post pra quem está começando como eu.

[4] Comentário enviado por Buckminster em 07/11/2012 - 20:55h

Grato. Estamos aí.

[5] Comentário enviado por TioRoni em 23/04/2013 - 13:36h

Estou fazendo a instalação do Debian Squeeze, mas no cd que estou usando, ele não carrega as opções de partição Ext3, Ext4 e JFS, somente Ext2, UFS, Swap, Fat16 e Fat32.

O que pode estar havendo?

[6] Comentário enviado por saitam em 12/05/2013 - 18:44h

Primeiramente parabéns pelo artigo.

Apenas acrescentando para os iniciantes que tem dúvida quanto em deixar o modem modo bridge ou roteado.

No seu caso acho que seu modem esta roteado, ou seja, já faz autentação com provedor de internet, pois se caso tivesse em modo bridge teria que configurar conexão com provedor via pppoeconf (criar um script Shell e habilitar para startar no boot).



[7] Comentário enviado por Buckminster em 24/05/2013 - 06:58h


[6] Comentário enviado por saitam em 12/05/2013 - 18:44h:

Primeiramente parabéns pelo artigo.

Apenas acrescentando para os iniciantes que tem dúvida quanto em deixar o modem modo bridge ou roteado.

No seu caso acho que seu modem esta roteado, ou seja, já faz autentação com provedor de internet, pois se caso tivesse em modo bridge teria que configurar conexão com provedor via pppoeconf (criar um script Shell e habilitar para startar no boot).



Obrigado.

Procure deixar sempre o modem como roteador.
Em modo bridge teria que configurar via pppoeconf somente o servidor com DHCP e IPtables.

[8] Comentário enviado por guilhermediasfj em 10/03/2016 - 17:37h

Duvida na parte do DNS.
Tem que ser outra maquina para instalar o DNS ou pode ser junto com o DHCP?

[9] Comentário enviado por Buckminster em 31/03/2016 - 08:30h


[8] Comentário enviado por guilhermediasfj em 10/03/2016 - 17:37h

Duvida na parte do DNS.
Tem que ser outra maquina para instalar o DNS ou pode ser junto com o DHCP?


Pode ser junto com o DHCP, mas o aconselhável e recomendável é colocar uma máquina somente para o DNS.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts