[[oktatas:linux:dhcp_szerver|< DHCP szerver]]
====== Isc-dhcp-server szerver ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2011, 2012, 2015, 2017, 2018, 2020
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Bevezetés =====
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.
===== Beállítások =====
==== IP cím ====
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
==== Telepítés ====
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.
==== Alap ====
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"
=== Tesztelés ===
dhcpd -t
=== Újraindítás ===
Indítsuk újra a DHCP szervert:
systemctl start isc-dhcp-server
==== Hardvercímhez kötés ====
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;
}
==== Csoportok képzése ====
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;
}
}
===== Hálózatról induló gépek IP címkiosztása =====
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;
}
===== Teszt =====
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:
* -t tesztelés
* -cf konfigurációs fájl (config file) útvonala
===== DHCP tűzfalon =====
A tűzfalon a 67-s UDP portot kell engedélyezni.
| port | 67 |
| protokoll | UDP |
===== Segítség =====
man dhcpd.conf
===== Monitorozás =====
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
===== Lásd még =====
Csomagok:
* dnsmasq
* kea-dhcp4-server
* kea-admin
* udhcpd
===== Tesztelés kliens oldalon =====
==== dhcpcd-gtk ====
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.
==== nmap ====
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
==== dhcpdump ====
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.
==== tcpdump ====
Telepítés:
apt install tcpdump
Használat:
tcpdump -i enp1s0 -nev udp port 68
==== dhcpcd5 ====
A dhcpcd5 egy csomag név, amely által felkerül a
dhcpcd démon. De ezzel a paranccsal tesztelhetünk is:
dhcpcd -T enp0s3
==== dhcping ====
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
===== Forrás =====
* https://wiki.debian.org/DHCP_Server (2018)