Mahlzeit,
ich hab mich in den letzten Wochen ein bisschen mit dem Aufsetzen eines 2. SSH-Servers beschäftigt. Das ganze würde ich gerne der Allgemeinheit als Wiki-Artikel zur Verfügung stellen. Vorher bitte ich euch ums Korrekturlesen, und ausgiebiges Ausprobieren dieser Rohfassung. Also nur die Befehle, der Text kann dann ja ergänzt werden. Also vor allem prinzipielle Dinge. Gehen die Befehle, geht das einloggen, Fehlermeldungen,...
Danke.
======================================
VERSION 0.0.2 
 
Aufsetzen eines 2. SSH-Servers mit anderem Port:
Motivation:
Zusätzlicher SSH-Server, der nach außen freigegeben werden kann, abgesichert werden kann etc. ohne den bestehenden SSHD zu beeinflussen.
Alle Arbeiten natürlich als root. [Hinweis auf den Artikel zu sudo, permant-root-sein ...]
Ich habe im weiteren Verlauf immer die Ausgaben des diff-Kommandos zwischen den Original-Dateien und den modifizierten Dateien. Das ist erstmal nur zur Übersicht, da man dort recht schön sitzt was geändert wurde. Am einfachsten ist es aber, wenn man die angepassten Dateien direkt herunterlädt:
Sämtliche angepasste Dateien gibt es als Archiv unter
http://www.ojkastl.de/pub/LinuxClub/2ter_SSHD_HOWTO
-----------------------------------------------------
So jetzt geht es los:
/etc/ssh/sshd_config nach /etc/ssh/ojs_sshd kopieren, dann den Eintrag zu "Port" anpassen:
	
	
	
		
diff /etc/ssh/ojs_sshd_config /etc/ssh/sshd_config
	
	
	
		
Später kann man den zweiten SSHD ja beliebig anpassen und absichern (allowusers, pubkey,...)
/etc/sysconfig/ssh nach /etc/sysconfig/ojs_ssh kopieren und anpassen:
	
	
	
		
Hier ein "diff /etc/sysconfig/ssh /etc/sysconfig/ojs_ssh"
	
	
	
		
/etc/init.d/sshd nach /etc/init.d/ojs_sshd kopieren, und anpassen:
	
	
	
		
"diff /etc/init.d/sshd /etc/init.d/ojs_sshd"
	
	
	
		
Anschließend linkt man /usr/sbin/sshd nach /usr/sbin/ojs_sshd per
	
	
	
		
Dann sollte man das Skript mal testen, einfach indem man
	
	
	
		
und 
	
	
	
		
aufruft. Danach sollte ein
	
		
 zwei Einträge liefern:
	
	
	
		
Durch unsere Änderungen läuft der zweite SSHD mit einer anderen Konfiguration, und hat ein eigenes PID-File (wichtig für die Status-Meldungen).
So, wenn alles geklappt hat, kann man absichern, den Port in der Firewall öffnen (<hier den Link zum Wiki-Artikel einfügen>) und das Skript für die jeweiligen Runlevel installieren. Ob man das per insserv, chkconfig oder Yast-Runleveleditor macht ist prinzipiell egal.
ANMERKUNGEN:
EDIT 20070515 07:21
Erklärung zu den diff-Ausgaben eingebaut, und Download früher erwähnt.
			
			ich hab mich in den letzten Wochen ein bisschen mit dem Aufsetzen eines 2. SSH-Servers beschäftigt. Das ganze würde ich gerne der Allgemeinheit als Wiki-Artikel zur Verfügung stellen. Vorher bitte ich euch ums Korrekturlesen, und ausgiebiges Ausprobieren dieser Rohfassung. Also nur die Befehle, der Text kann dann ja ergänzt werden. Also vor allem prinzipielle Dinge. Gehen die Befehle, geht das einloggen, Fehlermeldungen,...
Danke.
======================================
VERSION 0.0.2
Aufsetzen eines 2. SSH-Servers mit anderem Port:
Motivation:
Zusätzlicher SSH-Server, der nach außen freigegeben werden kann, abgesichert werden kann etc. ohne den bestehenden SSHD zu beeinflussen.
Alle Arbeiten natürlich als root. [Hinweis auf den Artikel zu sudo, permant-root-sein ...]
Ich habe im weiteren Verlauf immer die Ausgaben des diff-Kommandos zwischen den Original-Dateien und den modifizierten Dateien. Das ist erstmal nur zur Übersicht, da man dort recht schön sitzt was geändert wurde. Am einfachsten ist es aber, wenn man die angepassten Dateien direkt herunterlädt:
Sämtliche angepasste Dateien gibt es als Archiv unter
http://www.ojkastl.de/pub/LinuxClub/2ter_SSHD_HOWTO
-----------------------------------------------------
So jetzt geht es los:
/etc/ssh/sshd_config nach /etc/ssh/ojs_sshd kopieren, dann den Eintrag zu "Port" anpassen:
		Code:
	
	cp /etc/ssh/sshd_config /etc/ssh/ojs_sshddiff /etc/ssh/ojs_sshd_config /etc/ssh/sshd_config
		Code:
	
	13c13
< Port 50000
---
> #Port 22Später kann man den zweiten SSHD ja beliebig anpassen und absichern (allowusers, pubkey,...)
/etc/sysconfig/ssh nach /etc/sysconfig/ojs_ssh kopieren und anpassen:
		Code:
	
	cp /etc/sysconfig/ssh /etc/sysconfig/ojs_sshHier ein "diff /etc/sysconfig/ssh /etc/sysconfig/ojs_ssh"
		Code:
	
	2c2
< ## Description:       SSH server settings
---
> ## Description:       OJs SSH server settings
5c5
< ## ServiceRestart: sshd
---
> ## ServiceRestart: ojs_sshd
7c7
< # Options for sshd
---
> # Options for ojs_sshd
9c9
< SSHD_OPTS=""
---
> SSHD_OPTS="-f /etc/ssh/ojs_sshd_config"/etc/init.d/sshd nach /etc/init.d/ojs_sshd kopieren, und anpassen:
		Code:
	
	cp /etc/init.d/sshd /etc/init.d/ojs_sshd"diff /etc/init.d/sshd /etc/init.d/ojs_sshd"
		Code:
	
	6c6
< # /etc/init.d/sshd
---
> # /etc/init.d/ojs_sshd
10c10
< # /usr/sbin/rcsshd
---
> # /usr/sbin/rcojs_sshd
13c13
< # Provides: sshd
---
> # Provides: ojs_sshd
18c18
< # Description: Start the sshd daemon
---
> # Description: Start the ojs_sshd daemon
21c21
< SSHD_BIN=/usr/sbin/sshd
---
> SSHD_BIN=/usr/sbin/ojs_sshd
24c24
< SSHD_SYSCONFIG=/etc/sysconfig/ssh
---
> SSHD_SYSCONFIG=/etc/sysconfig/ojs_ssh
28c28
< SSHD_PIDFILE=/var/run/sshd.init.pid
---
> SSHD_PIDFILE=/var/run/ojs_sshd.init.pid
60c60
<       echo -n "Starting SSH daemon"
---
>       echo -n "Starting OJs_SSH daemon"
70c70
<       echo -n "Shutting down SSH daemon"
---
>       echo -n "Shutting down OJs_SSH daemon"
100c100
<       echo -n "Reload service sshd"
---
>       echo -n "Reload service ojs_sshd"
108c108
<       echo -n "Checking for service sshd "
---
>       echo -n "Checking for service ojs_sshd "
126c126
<         test /etc/ssh/sshd_config -nt $SSHD_PIDFILE && echo reload
---
>         test /etc/ssh/ojs_sshd_config -nt $SSHD_PIDFILE && echo reloadAnschließend linkt man /usr/sbin/sshd nach /usr/sbin/ojs_sshd per
		Code:
	
	ln /usr/sbin/sshd /usr/sbin/ojs_sshdDann sollte man das Skript mal testen, einfach indem man
		Code:
	
	/etc/init.d/ojs_sshd status
		Code:
	
	/etc/init.d/ojs_sshd startaufruft. Danach sollte ein
		Code:
	
	ps aux|grep sshd
		Code:
	
	root      3780  0.0  0.1   5712   952 ?        Ss   19:08   0:00 /usr/sbin/ojs_sshd -f /etc/ssh/ojs_sshd_config -o PidFile=/var/run/ojs_sshd.init.pid
root      3964  0.0  0.1   5712  1064 ?        Ss   19:08   0:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pidDurch unsere Änderungen läuft der zweite SSHD mit einer anderen Konfiguration, und hat ein eigenes PID-File (wichtig für die Status-Meldungen).
So, wenn alles geklappt hat, kann man absichern, den Port in der Firewall öffnen (<hier den Link zum Wiki-Artikel einfügen>) und das Skript für die jeweiligen Runlevel installieren. Ob man das per insserv, chkconfig oder Yast-Runleveleditor macht ist prinzipiell egal.
ANMERKUNGEN:
- Das Umbenennen bzw. Linken der Datei in /usr/sbin war bei meinen Tests nötig, da sonst 
	
	
bzw.Code:rcojs_sshd statusProbleme machen. (Es gibt einen Bugreport dazu).Code:rcsshd status
- Auf Suse 9.3 muss man noch /etc/pam.d/sshd nach /etc/pam.d/ojs_sshd linken, geht per
 
 Code:ln /etc/pam.d/sshd /etc/pam.d/ojs_sshd
 sonst gibt es einen Fehler bei der Anmeldung am 2. SSH-Server.
- Ich habe bei mir in beiden sshd_configs die Zeile 
 inCode:#ListenAddress 0.0.0.0
 um die lästigen bind-Fehler in /var/log/messages loszuwerden. IPv6 nutze ich hier nicht.Code:ListenAddress 0.0.0.0
 
 Ein Fehler taucht noch in /var/log/messages auf, nämlich
 Code:May 13 17:26:39 HOSTNAME ojs_sshd[3921]: error: getnameinfo failed
 Keine Ahnung wie man den loswerden könnte, es funktioniert hier aber alles.
 
 So, noch Fragen?
 
 Sämtliche angepasste Dateien gibt es als Archiv unter
 http://www.ojkastl.de/pub/LinuxClub/2ter_SSHD_HOWTO
 
 Viel Spaß beim Testen,
 OJ
EDIT 20070515 07:21
Erklärung zu den diff-Ausgaben eingebaut, und Download früher erwähnt.
 
					
				 
 
		 
 