Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dhcp_isc_dhc-relay_archlinux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dhcp_isc_dhc-relay_archlinux [2021/07/12 16:38] klaustachtler:dhcp_isc_dhc-relay_archlinux [2022/03/31 05:34] (aktuell) – [Installation] klaus
Zeile 32: Zeile 32:
  
 Mit nachfolgendem Befehl, wird das Pakete **''dhcp''** installiert: Mit nachfolgendem Befehl, wird das Pakete **''dhcp''** installiert:
 +<code>
 +# pacman --noconfirm -S dhcp
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman --noconfirm -S dhcp # pacman --noconfirm -S dhcp
 </code> </code>
 +++++
  
 Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''dhcp''** installiert wurden. Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''dhcp''** installiert wurden.
 +
 +<code>
 +# pacman -Qil dhcp
 +</code> 
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil dhcp # pacman -Qil dhcp
Zeile 113: Zeile 123:
 dhcp /usr/share/man/man8/dhcrelay.8.gz dhcp /usr/share/man/man8/dhcrelay.8.gz
 </code> </code>
 +++++
  
 ===== Dienst/Deamon-Start konfigurieren ===== ===== Dienst/Deamon-Start konfigurieren =====
Zeile 198: Zeile 209:
 Type=forking Type=forking
 # DHCP-Relay is only necassary when more than one interface is available.   # DHCP-Relay is only necassary when more than one interface is available.  
-ExecStart=/usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l net1 -u net0+ExecStart=/usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l eth1 -u eth0
 RuntimeDirectory=dhcrelay6 RuntimeDirectory=dhcrelay6
 PIDFile=/run/dhcrelay6/dhcrelay6.pid PIDFile=/run/dhcrelay6/dhcrelay6.pid
Zeile 318: Zeile 329:
 1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:68</code> 1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:68</code>
  
-Die neuen Zeilen sind an **Position (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):+Die neuen Zeilen sind an **Position (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 <code> <code>
 ... ...
Zeile 376: Zeile 387:
 Um die aktuellen ''ip6tables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann: Um die aktuellen ''ip6tables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 <code> <code>
-ipt6ables -L -nv --line-numbers +ip6tables -nvL --line-numbers 
-Chain INPUT (policy ACCEPT 0 packets, 0 bytes) +Chain INPUT (policy DROP 0 packets, 0 bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination          
-   34716   43M ACCEPT     all  --  *      *       ::/        ::/0         ctstate RELATED,ESTABLISHED +           ACCEPT     all      *      *       ::/                ::/0                 ctstate RELATED,ESTABLISHED 
-2        0     0 ACCEPT     icmp --  *      *       ::/        ::/0            +2        0     0 ACCEPT     icmp     *      *       ::/                ::/0                 
-3        0     0 ACCEPT     all  --  lo           ::/        ::/0            +3        0     0 ACCEPT     all      lo           ::/                ::/0                 
-4        6   360 ACCEPT     tcp  --  *      *       ::/        ::/0         state NEW tcp dpt:22 +4        0     ACCEPT     tcp      *      *       ::/                ::/0                 tcp dpt:22 
-6     1003  238K REJECT     all  --  *      *       ::/        ::/0         reject-with icmp-host-prohibited+5        0     0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-INP Defend " 
 +           REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset 
 +7        0     0 REJECT     udp      *      *       ::/                ::/0                 reject-with icmp6-port-unreachable 
 +8        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
  
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +Chain FORWARD (policy DROP 0 packets, 0 bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination          
-1        0     0 REJECT     all  --  *      *       ::/        ::/0         reject-with icmp-host-prohibited+           0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-FWD Defend " 
 +           0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset 
 +3        0     0 REJECT     udp      *      *       ::/                ::/0                 reject-with icmp6-port-unreachable 
 +4        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
  
-Chain OUTPUT (policy ACCEPT 329 packets, 45404 bytes) +Chain OUTPUT (policy ACCEPT packets, bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination</code>
-</code>+
  
-Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk nach der **Position 4** hinzu, ohne das der Paketfilter angehalten werden muss: +Nachfolgende Befehle, fügen folgende ''ip6tables''-Regeln dem ''ip6tables''-Regelwerk nach der **Position 4** hinzu, ohne das der Paketfilter angehalten werden muss: 
-  * <code>-A INPUT -p udp --dport 67 -j ACCEPT</code> +  * <code>-A INPUT -p udp --dport 547 -j ACCEPT</code> 
-  * <code>-A OUTPUT -p udp --dport 68 -j ACCEPT</code>+  * <code>-A OUTPUT -p udp --dport 546 -j ACCEPT</code>
 und hier die Befehle: und hier die Befehle:
 <code> <code>
-iptables -I INPUT 5 -p udp --dport 67 -j ACCEPT +ip6tables -I INPUT 5 -p udp --dport 547 -j ACCEPT 
-iptables -I OUTPUT 1 -p udp --dport 68 -j ACCEPT+ip6tables -I OUTPUT 1 -p udp --dport 546 -j ACCEPT
 </code> </code>
  
-Ein erneute Abfrage des ''iptables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:+Ein erneute Abfrage des ''ip6tables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 <code> <code>
-iptables -L -nv --line-numbers +ip6tables -nvL --line-numbers 
-Chain INPUT (policy ACCEPT 0 packets, 0 bytes) +Chain INPUT (policy DROP 0 packets, 0 bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination          
-   34716   43M ACCEPT     all  --  *      *       0.0.0.0/0    0.0.0.0/0    state RELATED,ESTABLISHED +           ACCEPT     all      *      *       ::/0                 ::/0                 ctstate RELATED,ESTABLISHED 
-2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0    0.0.0.0/0            +2        0     0 ACCEPT     icmp     *      *       ::/0                 ::/0                 
-3        0     0 ACCEPT     all  --  lo           0.0.0.0/0    0.0.0.0/0            +3        0     0 ACCEPT     all      lo           ::/0                 ::/0                 
-4        6   360 ACCEPT     tcp  --  *      *       0.0.0.0/0    0.0.0.0/0    state NEW tcp dpt:22 +4        0     ACCEPT     tcp      *      *       ::/0                 ::/0                 tcp dpt:22 
-5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0    0.0.0.0/0    udp dpt:67 +5        0     0 ACCEPT     udp      *      *       ::/                ::/                udp dpt:547 
-    1003  238K REJECT     all  --  *      *       0.0.0.0/0    0.0.0.0/0    reject-with icmp-host-prohibited+6            LOG        all      *      *       ::/0                 ::/                LOG flags level 5 prefix "REC-INP Defend " 
 +7            REJECT     tcp      *      *       ::/0                 ::/0                 reject-with tcp-reset 
 +8        0     REJECT     udp      *      *       ::/                ::/                reject-with icmp6-port-unreachable 
 +9            REJECT     all      *      *       ::/0                 ::/0                 reject-with icmp6-addr-unreachable
  
-Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) +Chain FORWARD (policy DROP 0 packets, 0 bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination          
-1        0     REJECT     all  - *      *       0.0.0.0/0    0.0.0.0/0    reject-with icmp-host-prohibited+1        0     LOG        all           *       ::/                ::/                LOG flags 0 level 5 prefix "REC-FWD Defend " 
 +2        0     0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset 
 +3            REJECT     udp      *      *       ::/0                 ::/                reject-with icmp6-port-unreachable 
 +4            REJECT     all      *      *       ::/                ::/0                 reject-with icmp6-addr-unreachable
  
-Chain OUTPUT (policy ACCEPT 329 packets, 45404 bytes) +Chain OUTPUT (policy ACCEPT packets, bytes) 
-num   pkts bytes target     prot opt in     out     source       destination          +num   pkts bytes target     prot opt in     out     source               destination          
-1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0    0.0.0.0/0    udp dpt:68+1        0     0 ACCEPT     udp      *      *       ::/0                 ::/0                 udp dpt:546
 </code> </code>
  
-Die neuen Zeilen sind an **Position (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):+Die neuen Zeilen sind an **Position (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 <code> <code>
 ... ...
-5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0    0.0.0.0/0    udp dpt:67 +5        0     0 ACCEPT     udp      *      *       ::/0                 ::/0                 udp dpt:547 
 ... ...
-1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/0    0.0.0.0/0    udp dpt:68+1        0     0 ACCEPT     udp      *      *       ::/0                 ::/0                 udp dpt:546
 ... ...
 </code> </code>
  
-Um diese ''iptables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:+Um diese ''ip6tables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''ip6tables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
 <code> <code>
-# /usr/sbin/iptables-save > /etc/sysconfig/iptables +# /usr/sbin/ip6tables-save > /etc/iptables/ip6tables.rules 
 </code> </code>
  
-Nachfolgender Befehl kann dazu verwendet werden, um zu überprüfen, ob das ''iptables''-Regelwerk auch korrekt gespeichert wurde:+Nachfolgender Befehl kann dazu verwendet werden, um zu überprüfen, ob das ''ip6tables''-Regelwerk auch korrekt gespeichert wurde:
 <code> <code>
-# cat /etc/sysconfig/iptables +# cat /etc/iptables/ip6tables.rules 
-# Generated by iptables-save v1.4.21 on Tue Oct 15 09:05:12 2014 +# Generated by ip6tables-save v1.8.on Mon Jul 12 16:48:38 2021 
-*filter+*mangle 
 +:PREROUTING ACCEPT [0:0]
 :INPUT ACCEPT [0:0] :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0] :FORWARD ACCEPT [0:0]
-:OUTPUT ACCEPT [296:41040+:OUTPUT ACCEPT [0:0] 
--A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT+:POSTROUTING ACCEPT [0:0] 
 +COMMIT 
 +# Completed on Mon Jul 12 16:48:38 2021 
 +# Generated by ip6tables-save v1.8.7 on Mon Jul 12 16:48:38 2021 
 +*filter 
 +:INPUT DROP [0:0] 
 +:FORWARD DROP [0:0] 
 +:OUTPUT ACCEPT [0:0
 +-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -p icmp -j ACCEPT -A INPUT -p icmp -j ACCEPT
 -A INPUT -i lo -j ACCEPT -A INPUT -i lo -j ACCEPT
--A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT +-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
--A INPUT -p udp -m udp --dport 67 -j ACCEPT +-A INPUT -p udp -m udp --dport 547 -j ACCEPT 
--A INPUT -j REJECT --reject-with icmp-host-prohibited +-A INPUT -j LOG --log-prefix "REC-INP Defend " --log-level 5 
--A FORWARD -j REJECT --reject-with icmp-host-prohibited +-A INPUT -p tcp -j REJECT --reject-with tcp-reset 
--A OUTPUT -p udp -m udp --dport 68 -j ACCEPT+-A INPUT -p udp -j REJECT --reject-with icmp6-port-unreachable 
 +-A INPUT -j REJECT --reject-with icmp6-addr-unreachable 
 +-A FORWARD -j LOG --log-prefix "REC-FWD Defend " --log-level 5 
 +-A FORWARD -p tcp -j REJECT --reject-with tcp-reset 
 +-A FORWARD -p udp -j REJECT --reject-with icmp6-port-unreachable 
 +-A FORWARD -j REJECT --reject-with icmp6-addr-unreachable 
 +-A OUTPUT -p udp -m udp --dport 546 -j ACCEPT
 COMMIT COMMIT
-# Completed on Tue Oct 15 09:05:12 2014+# Completed on Mon Jul 12 16:48:38 2021 
 +# Generated by ip6tables-save v1.8.7 on Mon Jul 12 16:48:38 2021 
 +*nat 
 +:PREROUTING ACCEPT [0:0] 
 +:INPUT ACCEPT [0:0] 
 +:OUTPUT ACCEPT [0:0] 
 +:POSTROUTING ACCEPT [0:0] 
 +COMMIT 
 +# Completed on Mon Jul 12 16:48:38 2021
 </code> </code>
  
 +===== DHC-Relay starten ======
 +
 +Falls alle voranstehenden Schritte wie beschrieben durchgeführt wurden, **Installation, iptables/ip6tables**, sollte dem **ersten Start** nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden:
 +<code>
 +# systemctl start dhcrelay4.service dhcrelay6.service
 +</code>
 +
 +===== DHC-Relay Überprüfung =====
 +
 +Ob der DHC-Relay-Server, sprich der ''dhcrelay4''-Dienst/Deamon und der ''dhcrelay6''-Dienst/Deamon auch tatsächlich als Hintergrundprozesse laufen, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt, erfolgen - es kommt auf die **zweite und dritte** Zeile an!):
 +<code>
 +# ps auxwf | grep dhcrelay
 +root       64385  0.0  0.1   6736  2432 pts/1    S+   16:53   0:00                      \_ grep dhcrelay
 +dhcp       64381  0.0  0.1   5872  3496 ?        Ss   16:50   0:00 /usr/bin/dhcrelay -4 -q -pf /run/dhcrelay4/dhcrelay4.pid 10.0.0.20
 +dhcp       64382  0.0  0.1   6168  3788 ?        Ss   16:50   0:00 /usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l net1 -u net0
 +
 +</code>
 +
 +Eine weitere Überprüfung, ob der **erste Start** erfolgreich war, kann durch Einsicht in das
 +  * **''systemd-journal''**
 +durchgeführt werden.
 +
 +Die Ausgabe des **''systemd-journald''** kann mit nachfolgendem Befehl erfolgen, die Ausgabe sollte wie nachfolgend dargestellt aussehen:
 +<code>
 +# journalctl -u dhcrelay?.service
 +Jul 12 16:59:15 vml010 systemd[1]: Starting IPv4 DHCRELAY server...
 +Jul 12 16:59:15 vml010 systemd[1]: Starting IPv6 DHCRELAY server...
 +Jul 12 16:59:15 vml010 dhcrelay[64601]: Bound to *:547
 +Jul 12 16:59:15 vml010 systemd[1]: Started IPv6 DHCRELAY server.
 +Jul 12 16:59:15 vml010 systemd[1]: Started IPv4 DHCRELAY server.
 +</code>
 +
 +===== Interface Überprüfung =====
 +
 +Ob und an welchen Interfaces das DHC-Relay "lauscht", bzw. DHCP-Requests weitergeleitet werden, kann mit nachfolgendem Befehl überprüft werden:
 +<code>
 +# ss -taub | grep -E 'bootps|dhcpv6-server'
 +udp   UNCONN 0      0                          0.0.0.0:bootps             0.0.0.0:                              
 +udp   UNCONN 0      0                                *:dhcpv6-server            *:*
 +</code>
 +
 +:!: **HINWEIS** - **Auch bei der Konfiguration __nur__ ein Netzwerk-Interface für eingehende Broadcast-Anfragen zu nutzen, wird immer ''0.0.0.0:67'' als "Listener" IP-Adresse angezeigt.**
 +
 +===== IP-Adressanfragen Überprüfung =====
 +
 +Um die Anfrage einer IP-Adresse zu überprüfen, kann ein Blick in das **''systemd-journald''** geworfen werden, was mit nachfolgendem Befehl durchgeführt werden kann (**nur relevanter Auszug**):
 +<code>
 +</code>
 +FIXME
tachtler/dhcp_isc_dhc-relay_archlinux.1626100713.txt.gz · Zuletzt geändert: 2021/07/12 16:38 von klaus