Mehrere SSH Daemons auf einem Server
Will man zum Beispiel einen SSH Zugang nicht von außen verfügbar machen, braucht aber für einen Bestimmten Benutzer oder Gruppe einen SFTP/SCP Zugang, so kann man dies mit einer 2ten SSH Server Instanz regeln. Es wird einfach eine 2te Instanz unter einem anderen TCP Port hochgefahren, die
- den Root Login verbietet
- nur User aus der sftponly Gruppe oder nur einem bestimmten Benutzer den SSH Login erlaubt
- Unter einem hohen nicht SSH typischen Port läuft
Nun zum Doing:
Als erstes duplizieren wir die sshd_config
cp -rp /etc/ssh/sshd_config /etc/ssh/sshd_config_1
und ändern hier folgende Zeilen ab:
-#Port 22 +Port 20002 -#PermitRootLogin yes +PermitRootLogin no # für den Gruppe Zugriff +AllowGroups secureusersonly # Oder einzelne Benutzer erlauben +AllowUsers secureuser1 secureuser2
Nun brauchen wir noch ein 2tes INIT Script, auch hier kopieren wir uns das original File:
# Unter RedHat
cp -rp /etc/init.d/sshd /etc/init.d/sshd_1
# Unter Debian
cp -rp /etc/init.d/ssh /etc/init.d/ssh_1
Und nun wird das Ganze editiert:
/etc/init.d/sshd_1
bzw. /etc/init.d/ssh_1
# Provides: sshd_1 prog="sshd_1" RSA1_KEY=/etc/ssh/ssh_host_key_1 RSA_KEY=/etc/ssh/ssh_host_rsa_key_1 DSA_KEY=/etc/ssh/ssh_host_dsa_key_1 PID_FILE=/var/run/sshd_1.pid # Folgende Zeile hinzufügen!!! OPTIONS="-f /etc/ssh/sshd_config_1" [ -f /etc/ssh/sshd_config_1 ] || exit 6
So, nun sollte der 2te Dienst hochgefahren werden:
# Unter RedHat
/etc/init.d/sshd_1 start
# Unter Debian
/etc/init.d/ssh_1 start
und mit netstat
kann nun geprüft werden ob der Port verfügbar ist:
netstat -an | grep 20002
Dann noch in den Autostart:
# Unter RedHat
chkconfig sshd_1 on
# Unter Debian
udate-rc.d ssh_1 defaults