Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:pxe_c7:tftp [05.01.2017 11:20. ] – [TFTP-Server unter CentOS 7.x einrichten] django | centos:pxe_c7:tftp [22.07.2019 14:54. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 222: | Zeile 222: | ||
===== Konfiguration ===== | ===== Konfiguration ===== | ||
+ | ==== xinet-Daemon ==== | ||
+ | Die Auslieferung des Bootmenüs und der hierzu notwendigen Dateien erfolgt mit Unterstützung des TFTP-Servers, | ||
+ | Hierzu passen wir die Konfigurationsdatei des **xinetd**-Daemon wie folgt an. | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | # description: | ||
+ | # | ||
+ | # | ||
+ | # and to start the installation process for some operating systems. | ||
+ | service tftp | ||
+ | { | ||
+ | socket_type | ||
+ | protocol | ||
+ | wait = yes | ||
+ | user = root | ||
+ | server | ||
+ | server_args | ||
+ | # Django : 2016-01-08 TFTP-Server aktiviert | ||
+ | # default: disable | ||
+ | disable | ||
+ | per_source | ||
+ | cps = 100 2 | ||
+ | flags = IPv4 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Damit der **xinetd** bei jedem Systemstart automatisch gestartet werden kann, aktivieren wir diesen mit folgendem Befehl. | ||
+ | # systemctl enable xinetd.service | ||
+ | |||
+ | Die Überprüfung de Autostart vom xinetd können wir bei Bedarf wie folgt prüfen. | ||
+ | # systemctl is-enabled xinetd.service | ||
+ | |||
+ | enabled | ||
+ | |||
+ | Alternativ dazu können wir auf folgenden Aufruf verwenden: | ||
+ | # systemctl list-unit-files | grep xinetd.service | ||
+ | |||
+ | xinetd.service | ||
+ | |||
+ | |||
+ | Ob der **xinted** beim Systemstart gestartet wird und dieser den **tftp**-Server auch anstartet können wir mittels folgendem Aufruf überprüfen. | ||
+ | # chkconfig --list | tail -n 14 | ||
+ | < | ||
+ | systemd services. SysV configuration data might be overridden by native | ||
+ | systemd configuration. | ||
+ | |||
+ | If you want to list systemd services use ' | ||
+ | To see services enabled on particular target use | ||
+ | ' | ||
+ | |||
+ | chargen-dgram: | ||
+ | chargen-stream: | ||
+ | daytime-dgram: | ||
+ | daytime-stream: | ||
+ | discard-dgram: | ||
+ | discard-stream: | ||
+ | echo-dgram: | ||
+ | echo-stream: | ||
+ | tcpmux-server: | ||
+ | tftp: | ||
+ | time-dgram: | ||
+ | time-stream: | ||
+ | </ | ||
==== Paketfilter/ | ==== Paketfilter/ | ||
- | Damit unsere Besucher Verbindungen | + | Damit die Clients später Verbindungsanfragen |
Unter **CentOS 7** wird als Standard-Firewall die dynamische **firewalld** verwendet. Ein großer Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbiundungen kurz getrennt werden. Sondern unsere Änderungen können **// | Unter **CentOS 7** wird als Standard-Firewall die dynamische **firewalld** verwendet. Ein großer Vorteil der dynamischen Paketfilterregeln ist unter anderem, dass zur Aktivierung der neuen Firewall-Regel(n) nicht der Daemon durchgestartet werden muss und somit alle aktiven Verbiundungen kurz getrennt werden. Sondern unsere Änderungen können **// | ||
- | Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public**, dies entspricht in unserem Beispiel das Netzwerk-Interface | + | Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public** |
# firewall-cmd --permanent --zone=public --add-service=tftp | # firewall-cmd --permanent --zone=public --add-service=tftp | ||
success | success | ||
- | Anschließend | + | Anschliessend |
# firewall-cmd --reload | # firewall-cmd --reload | ||
success | success | ||
- | Anschließend können | + | Zu guter letzt fragen |
# firewall-cmd --zone=public --list-services | # firewall-cmd --zone=public --list-services | ||
Zeile 254: | Zeile 317: | ||
0 0 ACCEPT | 0 0 ACCEPT | ||
+ | ===== Systemstart ===== | ||
+ | Nun ist es an der Zeit unseren TFTP Server das erste mal über den **xinetd** zu starten. | ||
+ | # systemctl start xinetd | ||
+ | |||
+ | Im Syslog wird uns der Start des Daemon entsprechend protokolliert. | ||
+ | Jan 5 14:16:24 vml000057 xinetd[22639]: | ||
+ | Jan 5 14:16:24 vml000057 xinetd[22639]: | ||
+ | |||
+ | Ob auf unserem Server nun der TFTP Server läuft und auf Port **69** horcht können wir bei Bedarf auch noch überprüfen. | ||
+ | # netstat -tulpen | grep xinetd | ||
+ | |||
+ | | ||
+ | |||
+ | Den automatischen Start unseres Serverdienstes haben wir bereits im [[centos: | ||
+ | |||
+ | ===== Systemtest ===== | ||
+ | ==== Testdatei für die Übertragung anlegen ==== | ||
+ | Für unseren Test legen wir uns einfach eine kleine Textdatei im Arbeitsverzeichnis // | ||
+ | # echo "Dies ist ein ganz einfacher Text für den Test unseres TFTP-Servers" | ||
+ | |||
+ | ==== 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 | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Das Ganze geht natürlich auch schneller als " | ||
+ | # 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 | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Was ist nun passiert? Auf dem Client gibt es doch keine iptables-Regel, | ||
+ | # iptables -L | ||
+ | < | ||
+ | target | ||
+ | ACCEPT | ||
+ | ACCEPT | ||
+ | ACCEPT | ||
+ | ACCEPT | ||
+ | REJECT | ||
+ | |||
+ | Chain FORWARD (policy ACCEPT) | ||
+ | target | ||
+ | REJECT | ||
+ | |||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target | ||
+ | </ | ||
+ | |||
+ | 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]: | ||
+ | |||
+ | <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, | ||
+ | * **ip_conntrack_tftp** | ||
+ | * **ip_nat_tftp** | ||
+ | </ | ||
+ | |||
+ | Auf einem **//CentOS 7 System//** benutzen wir zur Aktivierung der beiden Module die Datei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | # default: none | ||
+ | ip_nat_tftp | ||
+ | ip_conntrack_tftp</ | ||
+ | |||
+ | 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 / | ||
+ | <code bash> | ||
+ | # Django 2011-11-24 Freischaltungen für TFTP-Transfers | ||
+ | # default : IPTABLES_MODULES="" | ||
+ | IPTABLES_MODULES=" | ||
+ | </ | ||
+ | Anschließend starten wir unseren iptables-Paketfilter einmal durch. | ||
+ | # service iptables restart | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | Im Syslog unseres TFTP-Servers wird der erfolgreiche Dateitransfer entsprechend protokolliert. | ||
+ | Nov 24 09:14:30 vml000057 xinetd[7708]: | ||
+ | Nov 24 09:14:30 vml000057 in.tftpd[10146]: | ||
+ | ====== Links ====== | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||