Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
centos:pxe_c7:tftp [05.01.2017 13:17. ] – [Paketfilter/Firewall] djangocentos:pxe_c7:tftp [05.01.2017 14:24. ] – TFTP-Server unter CentOS 7.x einrichten #CentOS7 #TFTP django
Zeile 330: Zeile 330:
    udp        0      0 0.0.0.0:69                  0.0.0.0:                                       75579      6177/xinetd    udp        0      0 0.0.0.0:69                  0.0.0.0:                                       75579      6177/xinetd
  
-Den automatischen Start unseres Serverdienstes haben wir bereits im [[centos:pxe:tftp#xinet-daemon|Absatz xinet-Daemon]] eingestellt.+Den automatischen Start unseres Serverdienstes haben wir bereits im [[centos:pxe_c7:tftp#xinet-daemon|Absatz xinet-Daemon]] eingestellt. 
 + 
 +===== Systemtest ===== 
 +==== Testdatei für die Übertragung anlegen ==== 
 +Für unseren Test legen wir uns einfach eine kleine Textdatei im Arbeitsverzeichnis //**/var/lib/tftpboot/**// an, die wir uns dann vom TFTP-Server herunterladen werden. 
 +   # echo "Dies ist ein ganz einfacher Text für den Test unseres TFTP-Servers" > /var/lib/tftpboot/test 
 + 
 +==== Testdatei transferieren ==== 
 +Anschließend wechseln wir ins Homeverzeichnis unseres Benutzers. 
 +   # cd ~ 
 + 
 +Dann bauen wir mit dem TFTP-Clientprogramm eine Verbiundung zu unserem Server auf und holen uns die zuvor angelegte Datei //test// mit dem Befehl **get**. Nach dem Herunterladen verlassen wir das Programm mit dem Befehl **quit**. 
 + 
 +   # tftp -v 10.0.0.57 
 + 
 +   Connected to 10.0.0.57 (10.0.0.57), port 69 
 +   tftp> get test 
 +   getting from 10.0.0.57:test to test [netascii] 
 +   Received 69 bytes in 0.1 seconds [8714 bit/s] 
 +   tftp> quit 
 + 
 +Das Ganze geht natürlich auch schneller als "Einzeiler": 
 +   # tftp 10.0.0.57 -c get test 
 + 
 +==== Fehlerbehandlung ==== 
 +Klappt der Download von unserem Clientrechners nicht, trotz funktionierendem Zugriff nicht, liegt es an den Paketfilterregelungen auf dem **Clientrechner**! Wie man in folgendem Beispiel sieht laufen wir hier in einen timeout:  
 +   # tftp -v 10.0.0.57 -c get test 
 + 
 +   Connected to 10.0.0.57 (10.0.0.57), port 69 
 +   getting from 10.0.0.57:test to test [netascii] 
 +   Transfer timed out. 
 + 
 +Was ist nun passiert? Auf dem Client gibt es doch keine iptables-Regel, die den Datentransfer beschneidet: 
 +   # iptables -L 
 +<code>Chain INPUT (policy ACCEPT) 
 +target     prot opt source               destination          
 +ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED  
 +ACCEPT     icmp --  anywhere             anywhere             
 +ACCEPT     all  --  anywhere             anywhere             
 +ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh  
 +REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited  
 + 
 +Chain FORWARD (policy ACCEPT) 
 +target     prot opt source               destination          
 +REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited  
 + 
 +Chain OUTPUT (policy ACCEPT) 
 +target     prot opt source               destination 
 +</code> 
 + 
 +Auf unserem TFTP-Server haben wir doch auch Port **69** freigeschaltet: 
 +   # firewall-cmd --zone=public --list-services 
 + 
 +  tftp dhcpv6-client http ssh 
 + 
 +Im Syslog des TFTP-Servers sehen wir nur die Folgende Fehlermeldung: 
 +   Jan 8 07:49:14 vml000057 in.tftpd[10031]: tftpd: read(ack): No route to host 
 + 
 +<WRAP center round tip 90%> 
 +Die Ursache ist ganz einfach erklärt. TFTP nutzt für die Steuerung Port **69**, für die Datenübertragung werden dann aber beliebige highports genutzt. Damit diese nun unseren Paketfilter passieren können, müssen wir an dem betreffenden (Test-)Clientsystem, oder einem internen Paketfilter der unterschiedliche Sicherheitszonen trennt, die folgenden iptables-Module laden. 
 +  * **ip_conntrack_tftp** 
 +  * **ip_nat_tftp** 
 +</WRAP> 
 + 
 +Auf einem **//CentOS 7 System//** benutzen wir zur Aktivierung der beiden Module die Datei //**/etc/modules-load.d/iptables.conf**//
 +   # vim /etc/modules-load.d/iptables.conf 
 +<file bash /etc/modules-load.d/iptables.conf># Django : 2016-01-08 - Zum Testen des TFTP-Servers nötige Änderungen 
 +# default: none 
 +ip_nat_tftp 
 +ip_conntrack_tftp</file> 
 + 
 +Zum Aktivieren starten wir den betreffenden Host einmal durch. 
 +   # systemctl reboot 
 + 
 +Auf einem **//CentOS 6 System//** geschieht dies über die Konfigurationsdatei **iptables-config** des Paketfilter-Regelwerkes **iptables**. Dort tragen wir bei den **nat helpers** die beiden Module nach:  
 +   # vim /etc/sysconfig/iptables-config 
 +<code bash> 
 +# Django 2011-11-24 Freischaltungen für TFTP-Transfers 
 +# default : IPTABLES_MODULES="" 
 +IPTABLES_MODULES="ip_conntrack_tftp ip_nat_tftp" 
 +</code> 
 +Anschließend starten wir unseren iptables-Paketfilter einmal durch. 
 +   # service iptables restart 
 + 
 +   iptables: Flushing firewall rules:                          OK  ] 
 +   iptables: Setting chains to policy ACCEPT: filter          [  OK  ] 
 +   iptables: Unloading modules:                                OK  ] 
 +   iptables: Applying firewall rules:                          OK  ] 
 +   iptables: Loading additional modules: ip_conntrack_tftp ip_[  OK  ] 
 + 
 +Nun versuchen wir erneut unsere Testdatei vom TFTP-Server herunterzuladen , was natürlich Dank unserer Anpassungen nun erfolgreich funktioniert. 
 +   $ tftp 10.0.0.57 -v -c get test 
 + 
 +   Connected to 10.0.0.57 (10.0.0.57), port 69 
 +   getting from 10.0.0.57:test to test [netascii] 
 +   Received 69 bytes in 0.1 seconds [6073 bit/s] 
 + 
 +Im Syslog unseres TFTP-Servers wird der erfolgreiche Dateitransfer entsprechend protokolliert. 
 +  Nov 24 09:14:30 vml000057 xinetd[7708]: START: tftp pid=10145 from=10.0.0.107 
 +  Nov 24 09:14:30 vml000057 in.tftpd[10146]: RRQ from 10.0.0.107 filename test 
 + 
 +====== Links ====== 
 +  * **[[centos:pxe_c7:start|Zurück zum Kapitel >>PXE-Boot-Server unter CentOS 7.x einrichten<<]]** 
 +  * **[[wiki:start|Zurück zu Projekte und Themenkapitel]]** 
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** 
 + 
 +~~DISCUSSION~~ 
 +~~AUTOTWEET:~~ 
 + 
  
  
  
  
  • centos/pxe_c7/tftp.txt
  • Zuletzt geändert: 22.07.2019 14:54.
  • von 127.0.0.1