Configuração das interfaces de rede
# vim /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens33
iface ens33 inet dhcp # not recommended in production
# for static ip
# address 192.168.0.xx/24
# gateway 192.168.0.xx
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.0.xx 192.168.x.xx
# The secondary network interface (DHCP)
auto ens37
iface ens37 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
# systemctl restart networking && ping 192.168.1.1 -c3
Instalação do ISC DHCP Server
# apt install isc-dhcp-server
Configuração da Interface de Rede
# sed -i.bak 's/INTERFACESv4=""/INTERFACESv4="ens37"/' /etc/default/isc-dhcp-server
Configuração do DHCP
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bkp && vim /etc/dhcp/dhcpd.conf
# Definições globais
option domain-name "jrf.local";
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
# Hosts
host srvTESTE {
hardware ethernet 08:00:27:9F:54:E7;
fixed-address 192.168.1.123;
}
option domain-name
define o nome do domínio local para a rede. Todos os clientes DHCP receberão esse nome de domínio, que pode ser usado para resolução de nomes dentro da rede local.default-lease-time
emax-lease-time
definem a duração dos leases DHCP em segundos.range
define o intervalo de endereços IP que serão oferecidos aos clientes.routers
define o gateway padrão para os clientes.domain-name-servers
define os servidores DNS que serão usados pelos clientes.
Ativar e Iniciar o Serviço DHCP
# systemctl enable isc-dhcp-server
# systemctl start isc-dhcp-server && systemctl status isc-dhcp-server
Configuração do Compartilhamento de Internet
*Se você também deseja compartilhar a internet do servidor para os clientes, você precisará configurar o IP forwarding e o NAT usando iptables.
# apt install iptables -y
Ativar IP forwarding
# echo "net.ipv4.ip_forward = 1" | tee -a /etc/sysctl.conf
# echo 1 | tee /proc/sys/net/ipv4/ip_forward
Configurar NAT
O comando iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
especifica que todo o tráfego que sair do servidor pela interface ens33
(a interface de internet) deve ter seu endereço IP de origem mascarado (alterado para o IP dessa interface), o que permite que os clientes na rede interna (ens37
) acessem a internet.
# /usr/sbin/iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
O comando iptables-save
salva as regras atuais do iptables para um arquivo para que elas possam ser restauradas na inicialização.
# /usr/sbin/iptables-save | tee /etc/iptables.up.rules
Persistindo as Regras do iptables
# vim /etc/systemd/system/iptables-load.service
Adicione o seguinte conteúdo ao arquivo:
[Unit]
Description=Load iptables rules at startup
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/iptables.up.rules
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Habilite e inicie o serviço:
# systemctl enable iptables-load.service
# systemctl start iptables-load.service
Faça os testes em uma maquina cliente:

Reinicie o servidor e confira se o acesso à internet foi restabelecido nos dispositivos clientes.
# systemctl reboot
Painel administrativo (em breve…)
Um simples painel administrativo em PHP que permite incluir, editar e apagar máquinas no DHCP.