Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
Servidor DHCP
Conceitos
DHCP é abreviação de Dynamic Host Configuration Protocol – Protocolo de Configuração de
Host (computadores) Dinâmico.Em uma rede baseada no protocolo TCP/IP, todo computador
deve possuir um endereço IP distinto (exceto qundo temos um roteador).
Isso significa que antes de colocar uma nova estação na rede teríamos que escolher um
endereço IP que não esteja sendo utilizado por outra máquina. Em pequenas redes
isso é fácil de ser feito, mas em grandes redes isso se torna uma tarefa muito trabalhosa
e bastante sujeita a falhas. Para evitar esse problema, foi criado o DHCP, que tem como
função principal fornecer um endereço IP dinamicamente a um computador no momento
de sua conexão à rede.
O servidor de DHCP verifica qual o endereço IP disponível em uma tabela
cadastrada previamente dentro deste e informa ao solicitante esse endereço, tornando-o
disponível para outras solicitações.
Dessa maneira, a administração dos endereços IP é feita automaticamente e não
existem problemas de conflito. Quando a máquina solicitante sai da rede, o servidor
DHCP torna o endereço IP dessa máquina disponível novamente.
O protocolo DHCP (Dynamic Host Configuration Protocol) permite que clientes
dentro de uma mesma rede física possam efetuar suas configurações de rede de forma
automática.
Dessa maneira, com o uso do serviço DHCP, estações podem buscar em um
servidor várias
informações como, por exemplo:
- endereços e máscaras de rede (IP);
- endereço de roteadores (gateways);
- endereços de servidores de nomes;
- endereços de servidores de fontes;
- endereços de servidores WINS (Windows Name Server);
- endereços de servidores proxy.
Outras informações podem ser fornecidas via DHCP, mas essas o mais comum é
utilizar um servidor DHCP para compartilhar as três primeiras. Para Linux, existem dois
clientes: o dhcpcd, ou o pump. O servidor disponível é o dhcpd da ISC.
Antes de instalar um servidor DHCP, o administrador deve pesar os prós e contras
dessa tecnologia.
Com o uso normal do DHCP, qualquer usuário pode plugar uma máquina na rede e
fazer uso dela. Assim, na forma de uso mais comum do DHCP, o administrador pode mais
facilmente perder o controle sobre os endereços da rede. Por outro lado, ele não se vê
obrigado a configurar máquinas de usuários iniciantes.
DHCP também é extremamente útil quando há mais máquinas que IP em uma dada
rede, mas nem todas as máquinas estão ligadas ao mesmo tempo. Dessa maneira,
DHCP é utilizada com freqüência em provedores.
8.2 Instalando o dhcp
Para instalar o dhcp, pode-se utilizar o repositório da distribuição.
- Família Debian (Debian, Ubuntu e etc.):
# apt-get install dhcp3-server
- Família Red-Hat (Red-Hat, Fedora, CentOS):
# yum install dhcpd-server
- ou fazendo download do pacote em:
http://sourceforge.net/projects/dhcpserver/files/Open%20DHCP
%20Server/1.40%20Stable/opendhcpV1.40.tar.gz/download
E fazendo a compilação do pacote via os comandos:
# ./configure
# make
# make install
Instalação Debian MV
root@server:~# aptitude install isc-dhcp-server
Configuração
O serviço DHCP só deverá estar disponível para a rede interna. Por isso só deverá aceitar
ligações pela interface interna (eth0, neste caso), o que é definido no ficheiro de
configuração /etc/default/isc-dhcp-server:
/etc/default/isc-dhcp-server
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer
scripts
# This is a POSIX shell fragment
# [...]
# On what interfaces should the DHCP server (dhcpd) serve DHCP
requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"
A parte principal da configuração é mantida no ficheiro /etc/dhcp/dhcpd.conf.
Neste arquivo é indicado o nome de domínio (option domain-name “home.lan”;), os
endereços dos servidoresDNS (option domain-name-servers 192.168.1.100,
192.168.1.1;). Na opção domain-name-servers poderá indicar o nome do servidor dns local
(exemplo: ns.home.lan) em vez do endereço ip, caso tenha o configurado o servidor DNS.
É também definida a duração normal e máxima da atribuição do endereço IP atribuído
(default-lease-time 600; max-lease-time 7200;). O cliente poderá sempre pedir uma nova
atribuição antes da atual expirar, podendo receber ou não o mesmo endereço IP.
Finalmente, para o segmento de rede 192.168.1.0, é indicada a gama de endereços
disponível para a atribuição (range 192.168.1.32 192.168.1.63;), qual o router a utilizar
(option routers 192.168.1.1;) e qual o endereço debroadcast (option broadcast-address
192.168.1.255;)
/etc/dhcp/dhcpd.conf
# Sample configuration file for ISC dhcpd for Debian
# The ddns-updates-style parameter controls whether or not the
server will
# attempt to do a DNS update when a lease is confirmed. We default
to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "home.lan";
option domain-name-servers 192.168.1.100, 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# [...]
## SubNet home.lan
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.32 192.168.1.63;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}
O protocolo DHCP possibilita a atribuição endereços específicos a determinados sistemas,
associando o número da placa de rede ao endereço pretendido. No entanto, estes
endereços fixos não devem estar na gama dos endereços reservados para atribuição
dinâmica.
/etc/dhcp/dhcpd.conf
# [...]
# Fixed IP addresses can also be specified for hosts. These
addresses
# should not also be listed as being available for dynamic
assignment.
# Hosts for which fixed IP addresses have been specified can boot
using
# BOOTP or DHCP. Hosts for which no fixed address is specified
can only
# be booted with DHCP, unless there is an address range on the
subnet
# to which a BOOTP client is connected which has the dynamic-bootp
flag
# set.
host desktop {
hardware ethernet 01:23:45:67:89:10;
fixed-address 192.168.1.2;
}
host laptop {
hardware ethernet 01:23:45:67:89:11;
fixed-address 192.168.1.3;
}
# [...]
Reiniciar o serviço dhcp:
root@server:~# /etc/init.d/isc-dhcp-server restart
Configuração dos clientes
Linux
Num cliente Linux, basta instalar o pacote dhcp client. A configuração gerada durante a
instalação deverá ser suficiente.
root@server:~# aptitude install isc-dhcp-client
Windows
Num cliente Windows, deverá ser ativada a opção “Obter automaticamente um endereço
IP”, nas propriedades TCP/IP da interface de rede. Numa rede caseira, com acesso à
Internet via modem ADSL ou cabo, esta opção deverá, em princípio, já estar ativada.
Entendendo o exemplo acima:
A linha 1:
ddns-update-style
diz respeito a forma que o DHCP irá armazenar as informações de redes dos
clientes. Atualmente são implementados dois esquemas de atualização do DNS — o
modo de atualização do DNS improvisado e o modo de atualização do esquema de
interação do intervalo DHCP-DNS. O servidor
DHCP deve ser configurado para usar um dos dois esquemas atuais. A versão
3.0b2pl11 e a anterior usaram o modo improvisado; no entanto, este não é mais
aprovado.
Exemplos:
Este modo desativa o suporte a DNS dinâmico:
ddns-update-style none;
Para manter o mesmo comportamento e compatibilidade com versões anteriores,manter a
linha no topo do arquivo de configuração:
ddns-update-style ad-hoc;
Adicione esta outra para usar o modo recomendado, no topo do arquivo de
configuração, basicamente essa linha será apenas pra manter o padrão de suporte a
versão mais antiga:
ddns-update-style interim;
Note na Figura 1 que o servidor configura uma rede 192.168.1 na faixa entre
192.168.1.10 e 192.168.1.100 e entre 192.168.1.150 e 192.168.1.200.
Além disso, como mostra essa mesma figura, é possível usar o DHCP para atribuir
automaticamente um endereço específico a uma dada máquina. No caso, a máquina com
placa de rede possuidora do endereço MAC 08:00:2b:4c:59:23 receberá o nome dbowie e
o endereço 192.168.1.6.
Com o uso da diretiva host, inclusive, é possível incrementar a segurança na rede,
pois apenas máquinas com placas de redes já conhecidas poderão utilizar os recursos de
rede. Entretanto isso implicará em trabalho adicional para o administrador que precisará
identificar o endereço MAC de qualquer placa de rede que precise de acesso à rede. Note
que o endereço MAC de uma dada máquina host1 pode ser verificado através do
comando arp -a host1.
$ arp -a host1
8.4 Arquivo leases do dhcp
O arquivo para verificar as concessões de endereços aos hosts está localizado em :
/var/lib/dhcp/dhcpd.leases.
Muitas vezes precisamos acessar computadores remotamente, no entanto não
sabemos os seus respectivos endereçamentos IPs. Por exemplo, acessar o computador
vendas, ou ainda faturamento.
Para visualizar os hosts clientes acessar o arquivo leases em:
$ less /var/lib/dhcp3/dhcpd.leases
lease 192.168.9.8 {
starts 3 2010/04/26 21:41:20;
ends 4 2010/04/27 03:41:20;
binding state active;
next binding state free;
hardware ethernet 00:07:95:fa:3d:93;
} Logo em seguida aparecerão os endereços que foram atribuídos dinamicamente
pelo serviço DHCP.
Estes dados podem ser obtidos também através do comando a seguir, que mostra
um log geral do sistema, inclusive do serviço DHCP.
# less /var/log/messages
No host cliente pode-se também, através do arquivo /var/lib/dhcp3/dhclient.leases,
todas as locações feitas pelo host.
$ less /var/lib/dhcp3/dhclient.leases
lease {
interface "wlan0";
fixed-address 192.168.1.76;
option subnet-mask 255.255.255.0;
option routers 192.168.1.75;
option dhcp-lease-time 7200;
option dhcp-option-overload 3;
option dhcp-message-type 5;
option domain-name-servers 192.168.1.75,192.168.1.1;
option dhcp-server-identifier 192.168.1.1;
option interface-mtu 576;
option broadcast-address 255.255.255.255;
renew 2 2010/05/11 13:47:13;
rebind 2 2010/05/11 13:47:13;
expire 2 2010/05/11 13:47:13;
}
lease {
interface "eth0";
fixed-address 10.40.31.38;
option subnet-mask 255.255.0.0;
option dhcp-lease-time 28800;
option routers 10.40.0.1;
option dhcp-option-overload 3;
option dhcp-message-type 5;
option dhcp-server-identifier 10.40.31.35;
option domain-name-servers 10.40.0.2,10.40.0.1;
option interface-mtu 576;
option broadcast-address 255.255.255.255;
renew 2 2010/05/11 12:10:46;
rebind 2 2010/05/11 12:10:46;
expire 2 2010/05/11 12:10:46;
} 8.6 Inicializando o servidor dhcp
- parar o servidor dhcp:
# /etc/init.d/dhcp stop
- iniciar o servidor dhcp:
# /etc/init.d/dhcp start
- reinciar o servidor dhcp:
# /etc/init.d/dhcp restart
8.7 Outro exemplo de arquivo /etc/dhcp3/dhcpd.conf
Outro exemplo de arquivo dhcpd.conf pode ser visualizado na Figura 2 a seguir:
# authoritative;
# opcional – ver abaixo
# log-facility local7;
# opcional – ver abaixo
ddns-update-style ad-hoc;
default-lease-time 172800; # 2 dias
max-lease-time 345600; # 4 dias
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.2;
option domain-name "empresa.com.br";
option domain-name-servers 192.168.1.2,192.168.1.3;
option ntp-servers 192.168.1.2;
# aponta para o servidor wins caso haja
#option netbios-name-servers 192.168.1.3;
range 192.168.1.100 192.168.1.200;
host estacao
{
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.90; }
}
Outros itens de configuração do DHCP:
authoritative;
Informa que esse é o servidor DHCP com autoridade sobre a rede.
Sempre mantenho um único servidor DHCP na rede, porém, caso se tenha mais de
um é bom definir qual é o principal.
Caso se queira alterar o local do log do dhcp dos arquivos /var/log/syslog
e/var/log/daemon.log, no arquivo dhcpd.conf coloca-se a seguinte linha:
log-facility local7;
A seguir, editar o arquivo /etc/rsyslog.conf e adicionar:
local7.*
/var/log/dhcpd.log
Após isso reinicia-se o serviço do syslog e aí sim reinicia o serviço do dhcp e então o
novo endereço do log do dhcp passa a ser:
/var/log/dhcpd.log