##{{{#!vorlage Wissen ## ##}}} = Einleitung = Hier wird erklärt, wie man einen Daemon per Remote (SSH-Verbindung) startet in dem Moment, in dem man ihn braucht. Dieser Artikel bezieht sich nicht allein auf Ubuntu, er kann auch für andere Derivate verwendet werden. Der Sinn eines solchen Skripts ist es die Serversicherheit zu erhöhen. Denn durch unnötig geöffnete Ports können Angreifer eindringen. Hier wird als Beispiel der ProFTPD-Daemon genommen, natürlich ist dieses Skript auf andere Daemons übertragbar mit den entsprechenden Anpassungen. = Vorbereitungen = == Erstellen eines Public Keys == Dieser Key wird benötigt, um sich später am Server ohne Passwort anzumelden. Dazu wird im Terminal [2] folgendes eingegeben. {{{#!vorlage Befehl ssh-keygen -b 1024 -t dsa }}} Dieser Befehl erstellt ein 1024 bit DSA Key-Paar (einen für den Client, einen für den Server). Es wird nach einem Speicherort für den Key gefragt, diesen kann man auf Standard belassen. Bei der Passphrase-Frage wird nichts eingegeben, da man sich später über den erstellten Key automatisch identifiziert. Würde hier eine Passphrase eingegeben werden, so müsste diese bei jeder Verbindung eingegeben werden, um auf den eigentlichen Schlüssel zugreifen zu dürfen. Jetzt sollte das Verzeichnis noch so geschützt werden, dass andere User auf die Key-Datei nicht zugreifen können. Das geschieht mit folgendem Befehl. {{{#!vorlage Befehl chmod o-rwx .ssh/ }}} Durch diesen Befehl hat nur der Besitzer, also der eigene User, Zugriffsrechte auf dieses Verzeichnis. {{{#!vorlage Hinweis Es wird hier davon ausgegangen das der Benutzer-Account auf der Remote-Maschine mit [:sudo:] über die notwendigen Rechte verfügt, um die Befehle ausführen zu können. }}} == Erstellen des Verzeichnisses auf dem Server und Key upload == Zum Erstellen des Key-Verzeichnisses muss im Terminal [2] folgendes eingegeben werden. Man sollte sich mit dem User anmelden den man später für die Verbindungen auch benutzen möchte. {{{#!vorlage Befehl ssh [host] mkdir ~/.ssh }}} Der Key wird hier in das home Verzeichnis des Users geladen, bei [host] ist die IP-Adresse des betroffenen Servers einzutragen. Mit dem nächsten Befehl wird der Key auf den Server übertragen: {{{#!vorlage Befehl scp ~/.ssh/id_dsa.pub [user]@[host]:~/.ssh/authorized_keys }}} Bei ''[host]'' ist wieder die IP-Adresse des betroffenen Server einzutragen und bei ''[user]'' der User der für die Verbindung verwendet wird. Nun sind die Vorbereitungen abgeschlossen. = Das Skript = == Für den Servertyp "Standalone" == Das eigentlich Bash-Skript zum Starten und Stoppen des Daemons ist sehr simpel und von daher später auch leicht anzupassen. Zu erst muss ein Editor [1] geöffnet werden. {{{#!/bin/bash ssh [user]@[host] sudo /etc/init.d/proftpd start gftp ssh [user]@[host] sudo /etc/init.d/proftpd stop }}} Die erste Zeile sagt dem System, dass es sich hier um ein Bash-Skript handelt. In der zweiten Zeile wird nun der [:ProFTPD:] gestartet. Danach öffnet sich das FTP-Programm gftp. Das ist an den entsprechenden Client anzupassen der bevorzugt wird. Nachdem alle Dateien übertragen wurden und der FTP-Client beendet wurde, wird mit der letzten Zeile der Daemon wieder beendet und somit auch der Port geschlossen. Natürlich ist hier auch wieder ''[host]'' und ''[user]'' anzupassen. Nur noch als .sh Datei speichern und dann kann die Datei im Terminal [2] mit folgendem Befehl ausgeführt werden: {{{#!vorlage Befehl ./Skriptname.sh }}} == Für den Servertyp "inetd" == Hier sind nur ein paar Änderungen am Skript nötig: {{{#!/bin/bash ssh [user]@[host] sudo /etc/init.d/inetd start gftp ssh [user]@[host] sudo /etc/init.d/inetd stop }}} Die Funktion ist die gleiche wie beim Servertyp "Standalone". {{{#!vorlage Hinweis Das Skript stoppt und startet jedesmal den Internet-Super-Server. Es sollte darauf geachtet werden, dass dadurch nicht wichtige Dienste mit gestoppt werden. Des weiteren wurde dieses Skript im Betrieb getestet. }}} # tag: Server, Shell