SERVIDOR DHCP

SERVIDOR DHCP - CONFIGURACIÓN

  • Editar el archivo /etc/default/isc-dhcp-server
INTERFACESv4="dhcp1 dhcp2" # las dos interfaces que usare para las redes
INTERFACESv6=""

  • Editar el archivo /etc/default/isc-dhcp-server
#configuraciones globales: para todas las subredes
option domain-name "ema.local";
option domain-name-servers 8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1;

default-lease-time 600; #una ip se asigna por este tiempo 
max-lease-time 7200; #timepo maximo que se puede dar una ip 

authoritative;                 # este servidor sera el univo servidor dhcp de la red 

ddns-update-style none; #no usare dns para los host 
log-facility local1; # con rsyslog guardo los logo dentro de un archivo diferente a syslog

#tiene mayor importancia los que se definan en local
subnet 192.168.103.0 netmask 255.255.255.0 { #red1
    range 192.168.103.100 192.168.103.200;
    option subnet-mask 255.255.255.0; 
    option routers 192.168.103.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1;
    option domain-name "lan1.local";
    default-lease-time 600;   
    max-lease-time 7200;     
}
subnet 192.168.104.0 netmask 255.255.255.0 { #red 2
    range 192.168.104.100 192.168.104.200;
    option routers 192.168.104.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1;
    option domain-name "lan2.local";
    default-lease-time 600;    
    max-lease-time 7200;        
}
# este equipo cuando se conecte a la red lan recibira una ip statica
host pc1{
	hardware ethernet 52:54:00:f1:41:17;
	fixed-address 192.168.104.222;
}

  • Editar el archivo /etc/logrotate.d/dhcp
/var/log/dhcp.log {
    rotate 7
    daily
    missingok 
    notifempty
    compress 
    delaycompress
    create 0644 root root  
}
  • rotate 7 : Solo se permiten 7 archivos de dhcp.log
  • daily : La rotacion es diara.
  • missingok : No genera error si el archivo no existe.
  • notifempty : Si esta vacio no hace la rotacion.
  • compress : Los archivos rotados se comprimen .gz.
  • delaycompress : Solo comprime el archivo actual en la proxima rotacion.
  • create 0644 root root : Crea el archivo con los siguientes permisos.

  • Reiniciar los servicios:
systemctl restart isc-dhcp-server.service 
systemctl restart rsyslog.service

  • Ver las IP prestadas:
cat /var/lib/dhcp/dhclient.enp1s0.leases

CLIENTE DHCP

  • Cliente DHCP /etc/network/interfaces
allow-hotplug enp1s0
iface enp1s0 inet dhcp

  • Ver las IP que el Servidor DHCP me asigno:
cat /var/lib/dhcp/dhclient.enp1s0.leases

Con esto se logra tener un servidor DHCP funcional.

QEMU/KVM

SERVIDOR DE VIRTUALIZACION

  • Crear interfaces virtuales

#! /bin/bash

echo "Creando red para servidor DHCP"
#interfaz 1
ip link add link br0 name dhcp1 type vlan id 103
ip addr add 192.168.103.1/24 brd 192.168.103.255 dev dhcp1
ip link set dhcp1 up

#interfaz 2
ip link add link br0 name dhcp2 type vlan id 104
ip addr add 192.168.104.1/24 brd 192.168.104.255 dev dhcp2
ip link set dhcp2 up

echo "Creacion de la interfaz DHCP finalizada"

  • PERMITIR PING:
#borrar
/usr/sbin/iptables -A INPUT -i dhcp1 -p icmp --icmp-type echo-request -j ACCEPT #PING
/usr/sbin/iptables -A INPUT -i dhcp1 -p icmp --icmp-type echo-request -j ACCEPT #PING
/usr/sbin/iptables -A OUTPUT -o dhcp1 -p icmp --icmp-type echo-request -j ACCEPT #PING
/usr/sbin/iptables -A OUTPUT -o dhcp2 -p icmp --icmp-type echo-request -j ACCEPT #PING
/usr/sbin/iptables -A FORWARD -i dhcp1 -o br0 -p icmp --icmp-type echo-request -j ACCEPT #PING
/usr/sbin/iptables -A FORWARD -i dhcp2 -o br0 -p icmp --icmp-type echo-request -j ACCEPT #PING

  • PERMITIR QUE DESDE EL FIREWALL ME PUEDA CONECTAR A LAS IP DETRAS DE LA INTEFAZ DHCP*
/usr/sbin/iptables -A OUTPUT -o dhcp1 -p tcp --dport 2222 -j ACCEPT #SSH
/usr/sbin/iptables -A OUTPUT -o dhcp1 -p tcp --dport 22 -j ACCEPT #SSH
/usr/sbin/iptables -A OUTPUT -o dhcp2 -p tcp --dport 22 -j ACCEPT #SSH

  • PUERTOS POR LOS QUE PODRAN SALIR LOS MIEMBROS DE LAS SUBRED

#dhcp1
/usr/sbin/iptables -A FORWARD -i dhcp1 -o br0 -p tcp --dport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp1 -o br0 -p tcp --dport 443 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp1 -o br0 -p tcp --dport 53 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp1 -o br0 -p udp --dport 53 -j ACCEPT
#dhcp2
/usr/sbin/iptables -A FORWARD -i dhcp2 -o br0 -p tcp --dport 80 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp2 -o br0 -p tcp --dport 443 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp2 -o br0 -p tcp --dport 53 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i dhcp2 -o br0 -p udp --dport 53 -j ACCEPT

  • EL TRAFICO QUE SE ORIGINE EN LAS SIGUIENTES REDES SE ENMASCARA
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE 
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.101.0/24 -j MASQUERADE 
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.102.0/24 -j MASQUERADE
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.103.0/24 -j MASQUERADE
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.104.0/24 -j MASQUERADE 

  • RESPUESTA A LAS COMUNICACIONES YA ESTABLECIDAS
/usr/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

CLIENTES

  • Configurar la interfaz de red.
#! /bin/bash

echo "Iniciando configuracion de las interfaces"
ip link add link enp1s0 name dhcp2 type vlan id 104 #enp1s0 pertene a la subred 104 (dhcp2)
ip link set dhcp2 up #levanto la interfaz
/usr/sbin/dhclient dhcp2 #solicito la ip y las demas configuraciones
ip addr del 192.168.0.101/24 dev enp1s0 #elimino ip estatica
ip route add default via 192.168.104.1 #defino el gateway
echo "Fin de la configuracion de las interfaces"

SERVIDOR DHCP

#! /bin/bash

echo "Configurando interfaz de red"

#RED 1
ip link set enp7s0 up

ip link add link enp7s0 name dhcp1 type vlan id 103

ip addr add 192.168.103.1/24 brd 192.168.103.255 dev dhcp1

ip link set dhcp1 up

#RED 2
ip link set enp8s0  up

ip link add link enp8s0 name dhcp2 type vlan id 104

ip addr add 192.168.104.1/24 brd 192.168.104.255 dev dhcp2

ip link set dhcp2 up

echo "Configuración Finalizada"

LECTURA

dhcp