Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
centos:pxe_c8:tftp [04.07.2020 14:26. ] – [automatisierter Weg mit Hilfe von Ansible] django | centos:pxe_c8:tftp [05.07.2020 18:26. ] (aktuell) – [Testdatei transferieren] django |
---|
=== TFTP-Server installieren === | === TFTP-Server installieren === |
Als erstes installieren wir uns die für den TFTP-Server notwendigen Pakete via **''dnf''**. | Als erstes installieren wir uns die für den TFTP-Server notwendigen Pakete via **''dnf''**. |
# dnf install syslinux tftp-server xinetd -y | # dnf install syslinux tftp-server -y |
Bei Bedarf informieren wir was bei der Installation der einzelnen Pakete im System installiert wurde. | Bei Bedarf informieren wir was bei der Installation der einzelnen Pakete im System installiert wurde. |
# rpm -qil syslinux | # rpm -qil syslinux |
# rpm -qil tftp-server | # rpm -qil tftp-server |
# rpm -qil xinetd | |
| |
=== Firewall-Daemon anpassen === | === Firewall-Daemon anpassen === |
Damit die Clients später Verbindungsanfragen zu dem geöffneten Port **tftp/69**unseres TFTP-Servers stellen können, müssen wir für diese noch Änderungen am Paketfilter **firewalld** vornehmen. | Damit die Clients später Verbindungsanfragen zu dem geöffneten Port **tftp/69**unseres TFTP-Servers stellen können, müssen wir für diese noch Änderungen am Paketfilter **firewalld** vornehmen. |
| |
Unter **CentOS 8** wird als Standard-Firewall, wie auch schon bereits unter **[[centos:pxe_c7:tftp#paketfilter_firewall|CentOS 7]]** eingeführt wurde, 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 **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden. | Unter **[[#tftp-server_installieren|CentOS 8]]** wird als Standard-Firewall, wie auch schon bereits unter **[[centos:pxe_c7:tftp#paketfilter_firewall|CentOS 7]]** eingeführt wurde, 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 **//on-the-fly//** aktiviert oder auch wieder deaktiviert werden. |
| |
Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public** für den Service ***TFTP** für Port **69** an. | Mit Hilfe des Programms **firewall-cmd** legen wir nun eine **permanente** Regel in der Zone **public** für den Service ***TFTP** für Port **69** an. |
*/ | */ |
| |
=== xinetd starten ===== | === tftp.service starten ===== |
Nun ist es an der Zeit unseren TFTP Server das erste mal über den **xinetd** zu starten. | Nun ist es an der Zeit unseren TFTP Server das erste mal mit Hilfe von **systemd** zu starten. |
# systemctl start xinetd | # systemctl start tftp.service |
| |
Im Syslog wird uns der Start des Daemon entsprechend protokolliert. | Im Syslog wird uns der Start des Daemon entsprechend protokolliert. |
<code>Jul 4 12:34:26 vml000190 systemd[1]: Starting Xinetd A Powerful Replacement For Inetd... | <code>Jul 4 16:38:32 vml000190 systemd[1]: Listening on Tftp Server Activation Socket. |
Jul 4 12:34:26 vml000190 xinetd[7993]: xinetd Version 2.3.15 started with loadavg labeled-networking options compiled in. | Jul 4 16:38:32 vml000190 systemd[1]: Started Tftp Server. |
Jul 4 12:34:26 vml000190 xinetd[7993]: Started working: 0 available services | </code> |
Jul 4 12:34:26 vml000190 systemd[1]: Started Xinetd A Powerful Replacement For Inetd.</code> | |
| |
Ob auf unserem Server nun der TFTP Server läuft und auf Port **69** horcht können wir bei Bedarf auch noch überprüfen. | Ob auf unserem Server nun der TFTP Server läuft und auf Port **69** horcht können wir bei Bedarf auch noch überprüfen. |
<font style="color: rgb(0, 0, 0)">udp6 0 0 :::</font><font style="color: rgb(255, 0, 0)"<b>69</b></font><font style="color: rgb(0, 0, 0)"> :::* 0 78244 1/systemd</font></pre> | <font style="color: rgb(0, 0, 0)">udp6 0 0 :::</font><font style="color: rgb(255, 0, 0)"<b>69</b></font><font style="color: rgb(0, 0, 0)"> :::* 0 78244 1/systemd</font></pre> |
</html> | </html> |
| |
| Ebenso kann man den Status des Daemons mit Hilfe des Befehls **systemctl** abfragen. |
| # systemctl status tftp.service |
| |
| <html><pre class="code"> |
| <font style="color: rgb(29, 180, 29)"><b>●</b></font> tftp.service - Tftp Server |
| Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled) |
| Active:<font style="color: rgb(29, 180, 29)"><b>active (running)</b></font> since Sat 2020-07-04 16:36:44 CEST; 1min 7s ago |
| Docs: man:in.tftpd |
| Main PID: 3920 (in.tftpd) |
| Tasks: 1 (limit: 12494) |
| Memory: 176.0K |
| CGroup: /system.slice/tftp.service |
| └─3920 /usr/sbin/in.tftpd -s /var/lib/tftpboot |
| |
| Jul 04 16:36:44 vml000190.dmz.nausch.org systemd[1]: Started Tftp Server.</font></pre> |
| </html> |
| |
| |
Den automatischen Start unseres TFTP-Serverdienstes aktivieren wir für den Systemstart nun noch mit: | Den automatischen Start unseres TFTP-Serverdienstes aktivieren wir für den Systemstart nun noch mit: |
# Created symlink /etc/systemd/system/multi-user.target.wants/xinetd.service → /usr/lib/systemd/system/xinetd.service. | # systemctl enabled tftp.service |
| |
| Created symlink /etc/systemd/system/sockets.target.wants/tftp.socket → /usr/lib/systemd/system/tftp.socket. |
| |
Ob der Dxinetd-Service gestartet wird können wir bei Bedarf wie folgt abfragen: | Ob der Dxinetd-Service gestartet wird können wir bei Bedarf wie folgt abfragen: |
# systemctl is-enabled xinetd | # systemctl is-enabled tftp.service tftp.socket |
| |
| indirect |
enabled | enabled |
| |
| |
==== automatisierter Weg mit Hilfe von Ansible ==== | ==== automatisierter Weg mit Hilfe von Ansible ==== |
Da wir aber in unserer Produktiven Umgebung alle Server, Dienste und Services mit Hilfe von **[[centos:ansible:start|Ansible]]** werden wir natürlich auch für unseren **TFTP**-Dienst dies über eine entsprechende **[[centos:ansible:detail#grundlagen|Ansible-Rolle]] {{:centos:pxe_c8:ansible-role-tftp.tar.gz|ansible-role-tftp.tar.gz}}**((Version v1 vom 04.07.2020)) erledigen lassen. | Da wir aber in unserer Produktiven Umgebung alle Server, Dienste und Services mit Hilfe von **[[centos:ansible:start|Ansible]]** werden wir natürlich auch für unseren **TFTP**-Dienst dies über eine entsprechende **[[centos:ansible:detail#grundlagen|Ansible-Rolle]] {{:centos:pxe_c8:ansible-role-tftp.tar.gz|ansible-role-tftp.tar.gz}}**((Version v2 vom 05.07.2020)) erledigen lassen. |
| |
/* | /* |
<font style="color: rgb(0, 0, 0)">TASK [tftp : ***TFTP*** : Firewall-Daemon für den TFTP-Server anpassen] *************************************************************</font> | <font style="color: rgb(0, 0, 0)">TASK [tftp : ***TFTP*** : Firewall-Daemon für den TFTP-Server anpassen] *************************************************************</font> |
<font style="color: rgb(196, 160, 0)">changed: [tftp-server] => {"changed": true, "msg": "Permanent operation, Changed service tftp to enabled"}</font><br> | <font style="color: rgb(196, 160, 0)">changed: [tftp-server] => {"changed": true, "msg": "Permanent operation, Changed service tftp to enabled"}</font><br> |
<font style="color: rgb(0, 0, 0)">TASK [tftp : ***TFTP*** : Sicherstellen dass der Daemon 'xinetd', über dem der TFTP-Service gemanaged wird, gestartet wird und läuft]</font> | <font style="color: rgb(0, 0, 0)">TASK [***TFTP*** : Sicherstellen dass der Daemon 'tftp.service' gestartet wird und läuft] ******************************************</font> |
<font style="color: rgb(196, 160, 0)">changed: [tftp-server] => {"changed": true, "enabled": true, "name": "xinetd", "state": "started", "status": {"ActiveEnterTimestampMonotonic": "0", "ActiveExitTimestampMonotonic": "0", "ActiveState": "inactive", "After": "syslog.target network.target system.slice basic.target systemd-journald.socket sysinit.target", "AllowIsolate": "no", "AllowedCPUs": "", "AllowedMemoryNodes": "", "AmbientCapabilities": "", "AssertResult": "no", "AssertTimestampMonotonic": "0", "Before": "multi-user.target shutdown.target", "BlockIOAccounting": "no", "BlockIOWeight": "[not set]", "CPUAccounting": "no", "CPUAffinity": "", "CPUQuotaPerSecUSec": "infinity", "CPUSchedulingPolicy": "0", "CPUSchedulingPriority": "0", "CPUSchedulingResetOnFork": "no", "CPUShares": "[not set]", "CPUUsageNSec": "[not set]", "CPUWeight": "[not set]", "CacheDirectoryMode": "0755", "CanIsolate": "no", "CanReload": "yes", "CanStart": "yes", "CanStop": "yes", "CapabilityBoundingSet": "cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_kill cap_setgid cap_setuid cap_setpcap cap_linux_immutable cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_module cap_sys_rawio cap_sys_chroot cap_sys_ptrace cap_sys_pacct cap_sys_admin cap_sys_boot cap_sys_nice cap_sys_resource cap_sys_time cap_sys_tty_config cap_mknod cap_lease cap_audit_write cap_audit_control cap_setfcap cap_mac_override cap_mac_admin cap_syslog cap_wake_alarm cap_block_suspend", "CollectMode": "inactive", "ConditionResult": "no", "ConditionTimestampMonotonic": "0", "ConfigurationDirectoryMode": "0755", "Conflicts": "shutdown.target", "ControlPID": "0", "DefaultDependencies": "yes", "Delegate": "no", "Description": "Xinetd A Powerful Replacement For Inetd", "DevicePolicy": "auto", "Documentation": "man:xinetd man:xinetd.conf man:xinetd.log", "DynamicUser": "no", "EffectiveCPUs": "", "EffectiveMemoryNodes": "", "ExecMainCode": "0", "ExecMainExitTimestampMonotonic": "0", "ExecMainPID": "0", "ExecMainStartTimestampMonotonic": "0", "ExecMainStatus": "0", "ExecReload": "{ path=/usr/bin/kill ; argv[]=/usr/bin/kill -HUP $MAINPID ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "ExecStart": "{ path=/usr/sbin/xinetd ; argv[]=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "FailureAction": "none", "FileDescriptorStoreMax": "0", "FragmentPath": "/usr/lib/systemd/system/xinetd.service", "GID": "[not set]", "GuessMainPID": "yes", "IOAccounting": "no", "IOSchedulingClass": "0", "IOSchedulingPriority": "0", "IOWeight": "[not set]", "IPAccounting": "no", "IPEgressBytes": "18446744073709551615", "IPEgressPackets": "18446744073709551615", "IPIngressBytes": "18446744073709551615", |