SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Backup, Restore und Transfer von Daten
Post Reply
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by holtsch »

Hi Forum,

wie kann ich denn am elegantesten meinen Root-Server so einrichten, daß Confixx-Benutzer (web1, web2 usw.) ihre Websites via SCP hochladen können?

Wenn ich ihnen shell-Zugriff erlaube (in /etc/passwd /bin/false durch /bin/bash ersetzt), geht's - aber das würde ich gerne vermeiden. Gibt's die Möglichkeit überhaupt?

FTP will ich nicht auf meinem Server...

liebe Grüße,
david
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by dodolin »

Wenn ich ihnen shell-Zugriff erlaube (in /etc/passwd /bin/false durch /bin/bash ersetzt), geht's
Jo, das wird sich wohl nicht vermeiden lassen. Ã?berdenke das doch nochmal: Was meinst du, ist es, wenn du dich per SSH einloggst? Vielleicht eine Shell? Vielleicht genau die Shell, die in /etc/passwd als Shell für den jeweiligen User definiert ist?
FTP will ich nicht auf meinem Server...
Jo, warum deinstallierst du dann nicht einfach den FTP Dämon?

Oder du konfigurierst deinen FTP Dämon entsprechend, dass bestimmte User eben keinen FTP Zugriff haben. Geht alles, man muss nur die Anleitungen lesen...
kase
Posts: 1031
Joined: 2002-10-14 22:56
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by kase »

wenn es dir um die Sicherheit geht:

Es ist IMHO sicherer, einem User FTP und /bin/false zu geben, als /bin/bash und SCP. Was spricht denn gegen FTP, wenn der User /bin/false hat. Ok, wenn man FTP nicht tunnelt, werden die PWs Klartext übertragen, aber schau doch mal wie viele Millionen FTPs es gibt.

Natürlich solltest du anonymous FTP verbieten...

Leider ist soviel ich weiß, SCP nur mit /bin/bash möglich.
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by holtsch »

dodolin wrote: Was meinst du, ist es, wenn du dich per SSH einloggst? Vielleicht eine Shell? Vielleicht genau die Shell, die in /etc/passwd als Shell für den jeweiligen User definiert ist?
Da hätte ich mir vielleicht SCP etwas genauer ansehen sollen, sorry.
dodolin wrote:
FTP will ich nicht auf meinem Server...
Jo, warum deinstallierst du dann nicht einfach den FTP Dämon?
Wieso glaubst Du, wollte ich wohl SCP-Zugriff für die web[0-9]+ User? Natürlich habe ich den FTP Daemon deinstalliert. Nur benötige ich eben etwas funktional äquivalentes. Und ich dachte, SCP wäre funktional äquivalent zu FTP - ist es aber nicht, wenn man eben SCP nur mit Shell ausführen kann (was logisch ist, wenn man weiß, daß SCP eben ein Shell-Befehl ist, und nicht ein Protokoll).
kase wrote: Es ist IMHO sicherer, einem User FTP und /bin/false zu geben, als /bin/bash und SCP. Was spricht denn gegen FTP, wenn der User /bin/false hat. Ok, wenn man FTP nicht tunnelt, werden die PWs Klartext übertragen, aber schau doch mal wie viele Millionen FTPs es gibt.
Du hast wohl Recht. Ich versuche halt, auf alle Dienste zu verzichten, die nicht unbedingt notwendig sind. Für jeden Dienst, den ich zusätzlich installiere, brauche ich wieder das entsprechende Know How, muß dafür sorgen, daß er immer "up-to-date" ist usw. - System Administration ist einfach nicht meine Lieblingsbeschäftigung...

SSH und SCP brauche ich, und ich dachte, FTP und SCP wären äquivalent (so ungefähr "SCP = FTP, aber sicherer"). Damit wäre FTP nicht nötig.

Nach dem, was ich jetzt gelesen habe, scheint es aber so, als wäre für den Anwendungsfall "Benutzer darf Dateien in sein Home-Verzeichnis übertragen - und sonst nichts" doch FTP die bessere Wahl. Jetzt muß ich halt wieder recherchieren, welcher FTP-Daemon optimal ist usw.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by captaincrunch »

Jetzt muß ich halt wieder recherchieren, welcher FTP-Daemon optimal ist usw
Musst du nicht ... nimm einfach vsftp, einen sichereren FTPD wirst du nicht finden ... :wink:
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by rootmaster »

kase wrote: Leider ist soviel ich weiß, SCP nur mit /bin/bash möglich.
oder mit einer "eingeschränkten shell" ;)

http://www.pizzashack.org/rssh

"back to the roots"
Cahn's Axiom:

When all else fails, read the instructions
floschi
Userprojekt
Userprojekt
Posts: 3247
Joined: 2002-07-18 08:13
Location: München
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by floschi »

vsftpd oder proftpd, die beiden nehmen sich derzeit nix ;)
holtsch
Posts: 19
Joined: 2003-04-04 10:01
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by holtsch »

olfi wrote:vsftpd oder proftpd, die beiden nehmen sich derzeit nix ;)
vsftpd ist schon installiert und konfiguriert - den nehm ich dann wohl. Sieht auch so aus, als könnte ich den relativ einfach ausreichend absichern...

danke für den Tip!

david[/b]
mark
Posts: 295
Joined: 2003-04-15 16:48
Location: Oldenburg
Contact:
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by mark »

Hallo,

ich habs ja selber noch nicht benutzt, aber wie sieht es mit sftp aus ?

ftp + openssl ...

"man sftp" und bei google mal nach "sftp" und "sftpd" suchen...

Vielleicht wäre das noch eine alternative.

Gruß
mark
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by majortermi »

Es gibt da schon eine Möglichkeit scp zu benutzen, ohne dem Benutzer etwas anderes zu erlauben:

Die Login-Shell für den Benutzer auf /usr/bin/rbash setzen und in die ".profile" des Benutzers am Ende einfügen:

Code: Select all

export PATH=/home/<user>/rbin
Dann in /home/<user>/rbin Symbollinks für die wichtigsten Tools erzeugen:

Code: Select all

cd /home/<user>
mkdir rbin
cd rbin
ln -s /bin/chmod ./
ln -s /bin/ls ./
ln -s /bin/mkdir ./
ln -s /bin/mv ./
ln -s /bin/rm ./
ln -s /usr/bin/scp ./
Zu guter letzt noch verhindern, dass der User daran etwas ändert:

Code: Select all

cd ..
chown root.root .profile rbin
Danach lässt sich wunderbar "scp" benutzen, der Benutzer kann ansonsten aber eigentlich gar nichts machen. Einen Nachteil - das muss man dazu sagen - hat die Lösung allerdings.
Wenn man "WinSCP" benutzt, kann man für kein Verzeichnis, außer dem Homeverzeichnis, mehr ein Verzeichnis-Listing anzeigen lassen. Dies liegt daran, dass WinSCP versucht zunächst mit "cd" in das Verzeichnis zu wechseln und dann ein "ls" anzufordern, statt einfach ein "ls Verzeichnis" zu machen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Anonymous
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by Anonymous »

was wird dagegen getan dass der user nicht einen neuen PATH exportiert?
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by majortermi »

tobi_ wrote:was wird dagegen getan dass der user nicht einen neuen PATH exportiert?
Das verhindert die rbash.
Ich bin gerade dabei, das ganze noch etwas zu verfeinern, so dass der User auch in Verzeichnisse wechseln kann, die unterhalb seines Home-Verzeichnisses liegen:
Dazu legt man im "rbin"-Verzeichnis noch ein Skript mit dem Namen "cd.sh" an mit folgendem Inhalt:

Code: Select all

#!/bin/sh
RPATH=/daten/users/testscp
if [ ! $1 ]; then 
  cd
  exec /usr/bin/rbash --login
fi
cd $1
nwd=`pwd -P`
if [[ ${nwd} = ${nwd#$RPATH} ]]; then 
  echo "cd: restricted"
  exit 1
fi
exec /usr/bin/rbash --login
RPATH muss natürlich auf das Verzeichnis gesetzt werden, aus dem der Benutzer nicht herauskommen soll.

Außerdem fügt man in der ".profile" ein:

Code: Select all

function cd() 
{
 if cd.sh $1; then
   exit;
 fi
}
Diese Methode scheint recht gut zu funktionieren, der einzige Nachteil ist, dass bei jedem Verzeichniswechsel ein zusätzlicher Prozess aufgemacht wird, der erst beim Logout wieder beendet wird, aber da ein User pro SCP-Session wahrscheinlich keine paar tausend Verzeichniswechsel machen wird, sollte das bei nicht großartig belasteten Systemen kein Problem darstellen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by majortermi »

Ich habe gerade noch etwas viel, viel besseres gefunden: http://www.pizzashack.org/rssh/
Das ist eine spezielle Shell, die so konzipiert ist, dass der entsprechende Benutzer nur scp und sftp benutzen kann - und sie ist schön einfach zu benutzten - man muss einfach nur die Login-Shell des entsprechenden Benutzers auf die Shell setzen.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by rootmaster »

MajorTermi wrote:Ich habe gerade noch etwas viel, viel besseres gefunden: http://www.pizzashack.org/rssh/
Das ist eine spezielle Shell, die so konzipiert ist, dass der entsprechende Benutzer nur scp und sftp benutzen kann - und sie ist schön einfach zu benutzten - man muss einfach nur die Login-Shell des entsprechenden Benutzers auf die Shell setzen.
guten morgen, major :)

ps: schau mal ein paar postings weiter oben ;)

"back to the roots"
Cahn's Axiom:

When all else fails, read the instructions
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09
 

Re: SCP für Confixx-Web-User (web1, web2 etc) ohne Shell-Zugriff

Post by majortermi »

rootmaster wrote: guten morgen, major :)

ps: schau mal ein paar postings weiter oben ;)
Ups, manchmal müsste man halt lesen können :wink:
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Post Reply