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.
Dieser Key wird benötigt, um sich später am Server ohne Passwort anzumelden. Dazu wird im Terminal [2] folgendes eingegeben.
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.
chmod o-rwx .ssh/
Durch diesen Befehl hat nur der Besitzer, also der eigene User, Zugriffsrechte auf dieses Verzeichnis.
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.
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.
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:
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 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:
./Skriptname.sh
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".
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.
Diese Revision wurde am 2. August 2012 10:21 von frustschieber erstellt.