[[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)