PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH nur für Portforwarding ohne Shell



tschloss
01.03.07, 20:41
Hi,
kann ich einfach die Shell in /etc/passwd auf /bin/false setzen, um folgendes zu erreichen:

Auf meinem Server läuft ein e-Mail-Server.
Der Server steht hinter einem NAT-Router.
Ich möchte nur ein einziges Portforwarding, nämlich 22, auf den Server einrichten.
Externe User sollen sich per putty mit einem Forwarding von IMAP und SMTP auf den Mailserver connecten können.
Die User sollen aber keine nutzbare shell bekommen.

Oder brauche ich irgendeine Notshell a la scponly?
Oder geht das ganz anders?

Thx
Thomas

HirschHeisseIch
02.03.07, 10:00
Ich hab zwar nicht ganz verstanden, was Du möchtest, aber ich kann folgendes dazu beitragen. ;)

/bin/false kannst du natürlich als shell setzen. Entweder über die /etc/passwd, oder mit chsh.
Bei Diensten, welche eine gültige Shell verlangen (oder so eingerichtet sind, dass sie dies tun), könnte es zu Problemen führen. Dafür muss dann /bin/false in die /etc/shells eingetragen werden.

IMHO etwas unschön, /bin/false zu ner gültigen Shell zu machen. Kleines Workaraound ist dann, /bin/false auf /bin/$WHATEVER zu kopieren, und $WHATEVER in /etc/shells einzutragen.

Travolds
02.03.07, 13:40
hi,

mit scponly funktioniert das auf jeden fall recht gut. erst letztens mit einem bekannten getestet.

tschloss
02.03.07, 16:35
Ich hab zwar nicht ganz verstanden, was Du möchtest, aber ich kann folgendes dazu beitragen. ;)


Nochmals zum Verständnis: ich möchte nur das portforwarding der SSH-Verbindung nutzen, also gewissermaßen als Tunnel. Keine Shell, eigentlich auch kein SCP.

Aber danke für deine Hinweise, die auch zum Thema pasten ;)

MiGo
02.03.07, 17:38
{edit: Vermutlich Blödsinn. Memo to me: Erst Ausprobieren, dann posten.}

403
02.03.07, 17:42
suchst du


-N Do not execute a remote command. This is useful for just for-
warding ports (protocol version 2 only).

?

tschloss
02.03.07, 17:57
suchst du


?

Auf den ersten Blick klingt es super.
Ich will es aber eigentlich eher am Server verhindern, denn am Client.

Danke!

403
02.03.07, 18:52
Du willst halt keine tty? Wir haetten auch noch -T im Angebot :ugly:
Habe das selber noch nicht ausprobiert. Was mich dabei irritiert,
es wird nur eine pseudo-tty nicht gegeben, nicht keine tty.

Edit: Eine normale tty duerfte man remote wohl auch nicht bekommen.
Im schlimmsten Fall machst du wie schon oben erwaehnt, einen Wrapper.

Edit2: Habe die ganze Zeit in ssh gesucht , in sshd gibt es no-pty.

Oehm. Hoffe das hilft.

quinte17
06.03.07, 15:35
du brauchst doch nur ein programm, was da ist, und sich nicht beendet.
du kannst doch über ssh direkt befehle ausführen..
wenn du nun als shell dieses programm bei den usern angibst, dann können die des zwar nach dem login beenden, verlieren aber im gleichen augenblick die verbindung. deshalb kam wahrscheinlich auch der hinweis auf scponly..

hoffe es hilft.

greetz

Harry
07.03.07, 18:23
Auf meinem Server läuft ein e-Mail-Server.
Der Server steht hinter einem NAT-Router.
Ich möchte nur ein einziges Portforwarding, nämlich 22, auf den Server einrichten.
Externe User sollen sich per putty mit einem Forwarding von IMAP und SMTP auf den Mailserver connecten können.
Mit dem ssh-client läufts wie folgt:

# SMTP
ssh -N -L 25:<IP des Servers>:25 <someuser>@<NAT-Router>
# IMAP
ssh -N -L 143:<IP des Servers>:143 <someuser>@<NAT-Router>
Mit Putty muss es ähnlich gehen wenn nicht gar über Einstellungen im Menü. Mangels Putty in meinen Umgebungen kann ich dir das daher nicht konkret als Beispiel aufzeigen, doch sollte es nicht soooo schwer sein, die obigen Argumente auf den Putty-Clients umzusetzen.

Btw: In der Konfiguration des SMTP- und IMAP-Clients musst du dann jeweils auf localhost:25|143 zeigen.

tschloss
07.03.07, 19:33
Mit dem ssh-client läufts wie folgt:

# SMTP
ssh -N -L 25:<IP des Servers>:25 <someuser>@<NAT-Router>
# IMAP
ssh -N -L 143:<IP des Servers>:143 <someuser>@<NAT-Router>
Mit Putty muss es ähnlich gehen wenn nicht gar über Einstellungen im Menü. Mangels Putty in meinen Umgebungen kann ich dir das daher nicht konkret als Beispiel aufzeigen, doch sollte es nicht soooo schwer sein, die obigen Argumente auf den Putty-Clients umzusetzen.

Btw: In der Konfiguration des SMTP- und IMAP-Clients musst du dann jeweils auf localhost:25|143 zeigen.

Danke.
Das Thema ist aber nicht, wie man den Port forwardet, sondern, wie ich -serverseitig- verhindern kann, dass die User eine Shell auf dem Server sehen (und nutzen). Also im Ergebnis wie ein VPN-Client, nur würden mir eben ein paar Ports genügen, sodaß ich mir kein vollständiges VPN ans Bein binden will (hauptsächlich clientseitig).

Harry
08.03.07, 13:13
Hallo tschloss,

Danke.
Das Thema ist aber nicht, wie man den Port forwardet, sondern, wie ich -serverseitig- verhindern kann, dass die User eine Shell auf dem Server sehen (und nutzen). Also im Ergebnis wie ein VPN-Client, nur würden mir eben ein paar Ports genügen, sodaß ich mir kein vollständiges VPN ans Bein binden will (hauptsächlich clientseitig).
die Antwort auf diese Frage hast du doch in deinem Einstiegspost bereits vorweggenommen:

Hi,
kann ich einfach die Shell in /etc/passwd auf /bin/false setzen, um folgendes zu erreichen:
;) Ja - natürlich kannst du das so tun.