Home   Profil   Fun
#41 Linux  25.01.2009

Wie man zwei sshd-Instanzen auf Debian laufen lässt


Nur wenige Schritte sind notwendig, um zwei sshd-Instanzen parallel zu betreiben: Zuerst muss man eine zweite Konfigurationsdatei erstellen, dann ein zweites Initskript und schließlich dieses noch in die default-Runlevel einfügen.

Warum ist es nicht möglich einfach den sshd ein zweites mal zu starten?
Der zweite Daemon würde versuchen die gleiche IP und den gleichen Port zu verwenden, was jedoch nicht möglich ist. Es darf immer nur eine Kombination aus einer bestimmten IP-Adresse und eines bestimmten Ports geben. Daher muss der zweite Daemon auf einer anderen IP-Adresse oder auf einem anderen Port oder beidem laufen.

Nehmen wir an die zweite Instanz soll eine verschiedene IP verwenden. Zusätzlich ändern wir aus Sicherheitsgründen auch noch den Standardport (22)

Zuerst macht man eine Kopie von /etc/ssh/sshd_config, z.B. /etc/ssh/sshd_zwei_config. In der Kopie ändert man dann die zwei Zeilen die mit "Port" und mit "ListenAddress" beginnen. Hier setzt man also die IP-Adresse und den Port, den der zweite sshd verwenden soll.

Anschließend macht man ebenfalls eine Kopie des Initskripts /etc/init.d/ssh, z.B. /etc/init.d/ssh_zwei. Hierin sucht man dann alle Zeilen die "start-stop-daemon" enthalten und ändert dort das pidfile:
Von
--pidfile /var/run/sshd.pid
nach
--pidfile /var/run/sshd_zwei.pid

Es gibt in dieser Datei standardmäßig zwei Zeilen, die die Variable "$SSHD_OPTS" enthalten. Hier muss jeweils nach dieser Variable (die übrigens von /etc/default/ssh gesetzt wird) die neue Konfigurationsdatei angegeben werden:
Von
-- $SSHD_OPTS
nach
-- $SSHD_OPTS -f /etc/ssh/sshd_zwei_config

Und schließlich fügen wir noch die neue Version in die default-Runlevel ein. Das ganze funktioniert unter Debian mit diesem Kommando:
update-rc.d ssh_zwei defaults

jetzt kann der neue sshd mit /etc/init.d/ssh_zwei gestartet werden. Es macht Sinn das Ergebnis zu prüfen
netstat -tulpen

Die Spalte "PID/Program name" muss nun zwei statt nur einer sshd-Zeile enthalten. Unter der Spalte "Local Address" muss nun die neue IP und der neue Port zu sehen sein.