Shell auf Screenausgabe beschränken?
Shell auf Screenausgabe beschränken?
Hi,
mein Kumpel hat sich am Wochenende einen Rootserver bestellt, und mich gebeten dort FTP Gameserver und Apache zum laufen zu bringen.
Der Gameserver war das kleinste Ding. Die laufen 1a, auch der Webserver rennt wunderbar.
Beim FTP musste ich schon etwas mehr suchen um zu verhindern das ein FTP User bei ProFTPD sich durch alle Verzeichnise wühlen konnte. Die Losung war so winzig, aber erstmal drauf kommen das ein ~ diese Aufgabe erfüllt
Jetzt hat er mich gebeten einen "Game-Server-Admin" zu erstellen, der Zugriff auf dem Server via FTP und SSH haben soll.
Doch ich kann mich mit dem Gedanken nicht anfreunden, dass er mit seiner Shell ebenfalls durchs gesamte System Krabbeln kann.
Ich hatte mal einen Gameserveranbieter, der hatte die Shell auf den Screen vom Gameserver verlinkt.
So in etwa würde ich mir das auch vorstellen - hab allerdings nicht den blaßen schimmer wie ich das anstellen soll.
Im Netz hab ich was gelesen über CHroot oder rssh, aber die Anleitungen beziehen sich alle nur auf den FTP Dienst.
Wenn ich dort bereits auf der richtigen Pfärte bin, wäre ich für ein Link zu einer Anleitung dankbar.
Hoffe ihr versteht was ich meine.
mein Kumpel hat sich am Wochenende einen Rootserver bestellt, und mich gebeten dort FTP Gameserver und Apache zum laufen zu bringen.
Der Gameserver war das kleinste Ding. Die laufen 1a, auch der Webserver rennt wunderbar.
Beim FTP musste ich schon etwas mehr suchen um zu verhindern das ein FTP User bei ProFTPD sich durch alle Verzeichnise wühlen konnte. Die Losung war so winzig, aber erstmal drauf kommen das ein ~ diese Aufgabe erfüllt
Jetzt hat er mich gebeten einen "Game-Server-Admin" zu erstellen, der Zugriff auf dem Server via FTP und SSH haben soll.
Doch ich kann mich mit dem Gedanken nicht anfreunden, dass er mit seiner Shell ebenfalls durchs gesamte System Krabbeln kann.
Ich hatte mal einen Gameserveranbieter, der hatte die Shell auf den Screen vom Gameserver verlinkt.
So in etwa würde ich mir das auch vorstellen - hab allerdings nicht den blaßen schimmer wie ich das anstellen soll.
Im Netz hab ich was gelesen über CHroot oder rssh, aber die Anleitungen beziehen sich alle nur auf den FTP Dienst.
Wenn ich dort bereits auf der richtigen Pfärte bin, wäre ich für ein Link zu einer Anleitung dankbar.
Hoffe ihr versteht was ich meine.
Re: Shell auf Screenausgabe beschränken?
Ja, chroot ist die richtige spur.
So kannst du den User in ein Verzeichnis einsperren.
lg mcdikki
So kannst du den User in ein Verzeichnis einsperren.
lg mcdikki
LINUX - Life is too short for reboot!
Samba PDC auf Debian Etch | 2xIntel Xeon 3GHz - 2048 MB RAM - RAID 10 mit 3Ware 9550SX-4LP und 4x80GB HDD SATAII
Samba PDC auf Debian Etch | 2xIntel Xeon 3GHz - 2048 MB RAM - RAID 10 mit 3Ware 9550SX-4LP und 4x80GB HDD SATAII
Re: Shell auf Screenausgabe beschränken?
Ok,
die Anleitungen die ich bisher gefunden habe, beziehen sich aber alle nur auf den FTP Zugang.
Steht irgendwo geschrieben wie ich das einrichten kann, dass die Benutzershell ebenfalls gefangen gehalten wird?
die Anleitungen die ich bisher gefunden habe, beziehen sich aber alle nur auf den FTP Zugang.
Steht irgendwo geschrieben wie ich das einrichten kann, dass die Benutzershell ebenfalls gefangen gehalten wird?
Re: Shell auf Screenausgabe beschränken?
genau sagen kann ich es dir nicht. Aber ein paar Hinweise kann ich dir vielleicht geben.
Du kannst jedem Benutzer eine Shell zuweisen. Damit lässt dich vielleicht eine Shell Starten, die erst ein chroot ausführ und dann bash startet oder so.
Ansonsten gibt es aber bestimmt anleitungen dafür, schließlich ist das ja bei Webhostern normal, dass man nur auf sein Homeverzeichnis kommt.
lg mcdikki
Du kannst jedem Benutzer eine Shell zuweisen. Damit lässt dich vielleicht eine Shell Starten, die erst ein chroot ausführ und dann bash startet oder so.
Ansonsten gibt es aber bestimmt anleitungen dafür, schließlich ist das ja bei Webhostern normal, dass man nur auf sein Homeverzeichnis kommt.
lg mcdikki
LINUX - Life is too short for reboot!
Samba PDC auf Debian Etch | 2xIntel Xeon 3GHz - 2048 MB RAM - RAID 10 mit 3Ware 9550SX-4LP und 4x80GB HDD SATAII
Samba PDC auf Debian Etch | 2xIntel Xeon 3GHz - 2048 MB RAM - RAID 10 mit 3Ware 9550SX-4LP und 4x80GB HDD SATAII
Re: Shell auf Screenausgabe beschränken?
Und vielleicht sogar ein laufendes, chrootetes screen als "Shell" angeben. Würde ich nun jedenfalls probieren ^^Du kannst jedem Benutzer eine Shell zuweisen.
cu,
niemand
Re: Shell auf Screenausgabe beschränken?
wie soll der eintrag in der passwd für den user dann ausschauen?
derzeit hab ich ihn auf /home/username:/usr/bin/rssh stehen, aber das klappt noch nicht so richtig.
derzeit hab ich ihn auf /home/username:/usr/bin/rssh stehen, aber das klappt noch nicht so richtig.
Re: Shell auf Screenausgabe beschränken?
Ich habe noch nicht eine Lösung gesehen wo eine chroot für eine SSH-Verbindung funktioniert. Oft kann man Programme in sein Verzeichnis hochladen und dann z.B. mit
doch auf Daten zugreifen. Auch gibt man dem Anwender gerne einen "vi" und dort kann man dann per ":sh" ausbrechen. Die Möglichkeiten sind wohl unbegrenzt.
Ich würde wohl eher ein Shell-Script mit den notwendigen Befehlen schreiben und dieses für den Benutzer in /etc/passwd als Shell eintragen. Zum Starten, Stoppen usw. sollte das wohl ausreichen. Es sollte schwer sein daraus dann eine echte Shell zu starten.
Code: Alles auswählen
cat ../../etc/passwd
Ich würde wohl eher ein Shell-Script mit den notwendigen Befehlen schreiben und dieses für den Benutzer in /etc/passwd als Shell eintragen. Zum Starten, Stoppen usw. sollte das wohl ausreichen. Es sollte schwer sein daraus dann eine echte Shell zu starten.
Re: Shell auf Screenausgabe beschränken?
ich hab was anderes probiert, womit ich mich zufrieden geben kann.
"rbash" als benutzershell zuweisen und der user wird auf sein heimverzeichnis beschränkt, da der befehl "cd" gesperrt ist.
das reicht mir vollkommen aus. den screen kann er ja mit screen -r aufrufen.
"rbash" als benutzershell zuweisen und der user wird auf sein heimverzeichnis beschränkt, da der befehl "cd" gesperrt ist.
das reicht mir vollkommen aus. den screen kann er ja mit screen -r aufrufen.
Re: Shell auf Screenausgabe beschränken?
Hatte ich vor Jahren auch probiert. Also mir sind mehrere Möglichkeiten zum Ausbrechen eingefallen. Die einfachste war wohl"rbash" als benutzershell zuweisen und der user wird auf sein heimverzeichnis beschränkt, da der befehl "cd" gesperrt ist.
Code: Alles auswählen
:sh
Re: Shell auf Screenausgabe beschränken?
seit OpenSSH 4.8 (lenny hat 5.2) kannst du die User in einem Verzeichnis einsperren, das ist total easy über die sshd_config zu bewerkstelligen:
Du nimmst deinen Admin-User in die Gruppe netlogin auf (musst du erstellen), der kann ganz normal arbeiten.
Alle Benutzer in der neu zu erstellenden Gruppe gamemaster sind unter /home eingesperrt. Du kannst sie auch in ihrem Home einsperren, dann gehört glaube ich noch ein %u dahinter. die sshd_manpage oder google sagen dir das schon.
Probiers erstmal lokal aus, bevor du dich aussperrst
Achja: Der ForceCommand Befehl wäre nützlich, wenn der gamemaster nur sftp nutzen soll.
Code: Alles auswählen
AllowGroups netlogin gamemaster
Subsystem sftp /usr/lib/openssh/sftp-server
Match group gamemaster
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
# ForceCommand internal-sftp
Alle Benutzer in der neu zu erstellenden Gruppe gamemaster sind unter /home eingesperrt. Du kannst sie auch in ihrem Home einsperren, dann gehört glaube ich noch ein %u dahinter. die sshd_manpage oder google sagen dir das schon.
Probiers erstmal lokal aus, bevor du dich aussperrst
Achja: Der ForceCommand Befehl wäre nützlich, wenn der gamemaster nur sftp nutzen soll.
Re: Shell auf Screenausgabe beschränken?
Danke für die Informationen, kannte ich noch nicht.
Damit ist aber das ursprüngliche Problem nicht behoben. Wie stellt man es nun an, dass man z.B. ein paar Befehle wie z.B. /bin/bash ausführen kann, um dann z.B. auch nur eine kleine Anwendung über SSH neu anzustarten.
Mein Test mit dem Kopieren von /bin/bash nach/home/user/bin/bash und Setzen der Shell in /etc/passwd ist fehlgeschlagen. Fehlermeldung: /bin/bash nicht gefunden. Jemand eine Idee?
Aber um auf "scponly" zu verzichten ist der "Match group" - Eintrag wirklich nicht schlecht.
Damit ist aber das ursprüngliche Problem nicht behoben. Wie stellt man es nun an, dass man z.B. ein paar Befehle wie z.B. /bin/bash ausführen kann, um dann z.B. auch nur eine kleine Anwendung über SSH neu anzustarten.
Mein Test mit dem Kopieren von /bin/bash nach/home/user/bin/bash und Setzen der Shell in /etc/passwd ist fehlgeschlagen. Fehlermeldung: /bin/bash nicht gefunden. Jemand eine Idee?
Aber um auf "scponly" zu verzichten ist der "Match group" - Eintrag wirklich nicht schlecht.
Re: Shell auf Screenausgabe beschränken?
Ich nutze es nur für sftp, meine User dürfen nichts ausführen.
Aber für gameserver gibt es doch zuhauf Lösungen mit einem Webinterface.
Wenn es nur um das Starten/Stoppen eines Gameservers geht, würde ich nach so einer cgi oder php Lösung Ausschau halten.
Aber für gameserver gibt es doch zuhauf Lösungen mit einem Webinterface.
Wenn es nur um das Starten/Stoppen eines Gameservers geht, würde ich nach so einer cgi oder php Lösung Ausschau halten.