A DHCP a Dynamic Host Configuration Protocol rövidítése. Dinamikus állomáskonfiguráló protokoll néven fordítható.
A DHCP szerver IP címeket, és hozzátartozó adatokat szolgáltat más számítógépek számára. Az IP címhez tartozó adatok lehetnek a tartománynév, az elérhető DNS szerverek, az alapértelmezett átjáró stb.
Elsőnként állítsuk be a szerver IP címét. Tegyük fel, hogy a hálózati kártya ahol IP címeket szeretnénk osztani, az enp1s0.
nano /etc/network/interfaces
auto lo iface lo inet loopback allow-hotplug enp1s0 iface enp0s3 inet static address 192.168.10.1 netmask 255.255.255.0
Állítsuk be az IP címet.
ifdown enp0s3 ifup enp0s3
apt install isc-dhcp-server
Telepítés után, a program nem indul el, hibát jelez. Végezzük el a beállításokat.
Telepítés után létrejön a /etc/dhcp/dhcpd.conf állomány. Itt felvehetünk alhálózatokat, amelyek részére szeretnénk IP címet szolgáltatni.
option domain-name "zold.lan"; option domain-name-servers 192.168.10.1, 8.8.8.8; default-lease-time 600; max-lease-time 7200; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.101 192.168.10.254; option routers 192.168.10.1; }
A /etc/default/isc-dhcp-server fájlban állítsuk be a hálózatikártyát:
INTERFACESv4="enp0s3"
dhcpd -t
Indítsuk újra a DHCP szervert:
systemctl start isc-dhcp-server
Gyakran szeretnénk az IP címeket gépekhez rendelni. A számítógép hálózati kártyájának hardvercímét kiderítve megtehetjük:
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.199; [...] } host gep1 { hardware ethernet 00:c0:c3:45:bc:44; fixed-address 192.168.10.2; } host gep2 { hardware ethernet a2:g0:e3:22:ac:42; fixed-address 192.168.10.3; }
A fizikailag vagy logikailag egy helyre tartozó gépek számára csoportokat szokás képezni:
group { host gep1 { hardware ethernet 00:c0:c3:45:bc:44; fixed-address 192.168.10.2; } host gep2 { hardware ethernet a2:g0:e3:22:ac:42; fixed-address 192.168.10.3; } }
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.100 192.168.10.254; option routers 192.168.10.1; option domain-name "zold.and"; option domain-name-servers 192.168.10.2; range dynamic-bootp 192.168.20.100 192.168.20.254; } include "/etc/dhcp/gepek.txt";
A fix IP címmel rendelkező gépeket tegyük a gepek.txt fájlba.
host gep01{ hardware ethernet 00:23:8B:2A:B7:23; fixed-address 192.168.30.11; }
Az alapértelmezett konfigurációs fájlok tesztelése:
dhcpd -t
Ha nem az alapértelmezett útvonalon szeretnénk fájlokat tesztelni, használjuk a -cf kapcsolópárost:
dhcpd -t -cf /útvonal/dhcpd.conf
A kapcsolók:
A tűzfalon a 67-s UDP portot kell engedélyezni.
port | 67 |
protokoll | UDP |
man dhcpd.conf
Kérdezzük le, milyen gépek bérelnek IP címet jelenleg, rendszergazdaként:
dhcp-lease-list
Kérdezzük le minden IP cím bérlést:
dhcp-lease-list --all
Az arp parancsot is használahatjuk:
arp -a
Megnézhetjük dhcpd.leases állományt is:
cat /var/lib/dhcp/dhcpd.leases
Csomagok:
A dhcpcd-gtk egy GUI kliens. Indulás után dokkolva jelenik meg a tálcán, ami két monitornak néz, ki, az egyik a másik előtt.
Használatához nem lehet bejegyzés a /etc/network/interfaces állományban.
Telepítés:
apt install dhcpcd-gtk
A háttérben felkerül a dhcpcd5 csomag is, ami által futni fog egy dhcpcd nevű szolgáltatás:
systemctl status dhcpcd
A grafikus program, csak arra jó, hogy megtekintsük mi van beállítva.
Az nmap parancs használható a DHCP szerver tesztelésére:
nmap --script broadcast-dhcp-discover
vagy:
nmap --script broadcast-dhcp-discover -e enp0s3
Az nmap küld egy DHCP kérést, amire a választ vár.
Válasz esetén, a kimenet például:
# nmap --script broadcast-dhcp-discover Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-19 01:17 CEST Pre-scan script results: | broadcast-dhcp-discover: | Response 1 of 1: | IP Offered: 192.168.5.103 | DHCP Message Type: DHCPOFFER | Server Identifier: 192.168.5.1 | IP Address Lease Time: 2h00m00s | Subnet Mask: 255.255.255.0 | Router: 192.168.5.1 |_ Domain Name Server: 192.168.5.1 WARNING: No targets were specified, so 0 hosts scanned. Nmap done: 0 IP addresses (0 hosts up) scanned in 0.58 seconds
Látszik, hogy egy 192.168.5.103 IP címet kínál fel a DHCP szervert.
IP Offered: 192.168.5.103
A dhcpdump figyeli a dhcp kéréséket, de a program maga nem végez ilyen kérést.
Telepítés:
apt install dhcpdump
dhcpdump -i enp0s3
Használható a nmap paranccsal:
nmap --script broadcast-dhcp-discover
A dhcpdump elég bőbeszédűen leírja történteket.
A dhcpdump csomag mellett függőségként felkerül a tcpdump parancs is.
Telepítés:
apt install tcpdump
Használat:
tcpdump -i enp1s0 -nev udp port 68
A dhcpcd5 egy csomag név, amely által felkerül a dhcpcd démon. De ezzel a paranccsal tesztelhetünk is:
dhcpcd -T enp0s3
Telepítés:
apt install dhcping
Használat:
dhcping -r -t 60 \ -c 192.168.5.200 \ -s 192.168.5.1 \ -h 35:35:35:34:34:34
A dhcping egy DHCP kérést végez, és a szerver oldalon ellenőrizhetjük a történteket.
Bőbeszédű üzemmódban:
dhcping -V -r -t 60 \ -c 192.168.5.200 \ -s 192.168.5.1 \ -h 35:35:35:34:34:34