PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : scp-Login - darf der dann alles?



yasuo
17.01.06, 14:14
Hi,

zum Datenaustausch wollte ich ein paar Kollegen user-accounts auf meinem Rechner anlegen und diese sollen dann per winscp, shfs oder was auch immer drauf zugreifen.
(ftp ist mir zu unsicher - Daten könnten ja über wlan, firmenlan, internet, meinen router, mein lan gehen, Zugangsdaten und die Übertragenden Daten leicht ausgespäht werden)

Allerdings ist es doch so dass wenn ich in der fstab (adduser/useradd) einen Benutzer anlege - kann dieser doch über ftp, samba, X, ssh (und noch 10 anderen Diensten von denen ich vermutlich garnichts weiß) sich an meinem PC einloggen, das ganze Dateisystem sehen, Programme ausführen und weiß-der-Teufel alles machen.


sftp (ftp w/TLS) möchte ich widerum mir und dem kollegen nichtzumuten (Client muss mitspielen, Ports, etc., Zertifikat, etc. - hab bis jetz nur 1 sftp-Linuxclient - kftp oder so - gefunden und der stürzt beim Verbinden ab).

Wie kann ich also einen scp-Login ermöglichen, so der entsprechende Benutzer wirklich nur auf Dateien ausgewählter Verzeichnisse zugriff hat und sich sonst nirgends am System anmelden kann?

die Log-In Shell auf /dev/null setzen und X beenden wäre das einfachste aber ich glaube nicht dass das ausreicht oder?

danke schonmal fürs Lesen/Antworten :)

Tomek
17.01.06, 14:15
Was du suchst, nennt sich scponly (http://www.sublimation.org/scponly/).

yasuo
17.01.06, 14:36
das scheint zu sein was ich suche, danke :)

eine Frage zum Verständnis (inofern du as Programm kennst):
ist scponly ein Server der zusätzlich startet und auf einem eigenen Port lauscht (Port 21+22 sind ja bereits durch die regulären ssh+ftp-belegt)?
Oder klinkt es sich eher ein?

Beim Lesen der website habe ich es nicht richtig verstanden oder überlesen.

Tomek
17.01.06, 14:37
scponly wird als Loginshell für den entsprechenden Benutzer angegeben.

yasuo
17.01.06, 14:39
das hindert ihn aber nicht sich am System über einen anderen Dienst anzumelden oder?

marce
17.01.06, 14:44
das wiederum hängt von der Config der anderen Dienste ab...

fehl-x
17.01.06, 14:54
wenn du dem nutzer eine rssh als login-shell gibts, hat er auch nur die möglichkeit dienste wie scp und sftp zu nutzen. welche dienste verfügbar sein sollen, kann in /etc/rssh.conf definiert werden.

rssh - Restricted shell allowing only scp, sftp, cvs, rsync and/or rdist

felix

yasuo
17.01.06, 14:58
das sicherste wäre demnach, den entsprechenden User gar nicht erst in die /etc/passwd aufzunehmen (oder aber sich intensiv mit allen Diensten auseinanderzusetzen die Login erlauben bzw. diese Netzwerktechnisch abzukapseln) .

Wie krieg ich nun sshd dazu, ihm trotzdem login zu gewähren (mit der entsprechenden rssh/scponly-Shell)?

fehl-x
17.01.06, 16:47
vielleicht lässt sich der sshd über eine mysql-datenbank zu konfigurieren, wie es bei proftpd möglich ist.

felix

yasuo
17.01.06, 23:32
vielleicht lässt sich der sshd über eine mysql-datenbank zu konfigurieren, wie es bei proftpd möglich ist.

felix
ich möchte aber die lokalen User nicht von mysql abhängig machen :/ (zusätzlich ja - allein nein)...

kann man sshd anweisen die Benutzerdaten aus 2 verschiedenen Dateien zu lesen und beide zu benutzen? Somit würde kein anderer Dienst diese Benutzer kennen...

marce
18.01.06, 06:19
was hast Du eigentlich gegen SCPOnly? Es macht doch genau das, was Du willst.

Und - ich habe irgendwie das Gefühl, dass Du da reichlich Dinge durcheinander wirfst und mit die Zusammenhänge nicht ganz verstehst...

fladi.at
18.01.06, 11:09
kann man sshd anweisen die Benutzerdaten aus 2 verschiedenen Dateien zu lesen und beide zu benutzen? Somit würde kein anderer Dienst diese Benutzer kennen...

Ja, dafür gibt es PAM. Schau mal in /etc/pam.d/ nach. Dort findest du bei den meisten Distributionen die PAMKonfiguration für die verschiedenen Dienste auf denem Rechner. Und um SCP ohne Shell zu ermöglichen brauchst du, wie schon erwähnt SCPonly.

yasuo
18.01.06, 21:40
Ja, dafür gibt es PAM. Schau mal in /etc/pam.d/ nach. Dort findest du bei den meisten Distributionen die PAMKonfiguration für die verschiedenen Dienste auf denem Rechner. Und um SCP ohne Shell zu ermöglichen brauchst du, wie schon erwähnt SCPonly.

Danke, mit dem Stichwort hab ich google gefragt und folgendes in die /etc/pam.d/ssh eingetragen:

auth optional pam_listfile.so sense=allow onerr=fail item=user file=/etc/passwd.scponly

zudem habe ich den Eintrag aus der /etc/passwd genommen:


test:x:1008:1008:,,,:/home/test:/bin/scponly


und in eine neue Datei /etc/passwd.scponly geschrieben

Anmelden kann ich mich jetzt noch nicht - wie/wo muss ich das PAsswort aus der shadow-Datei für den Benutzer eintragen, bzw. wie gebe ich die Passwortdatei ebenfalls explizit mit an?

EDIT:
habe auch keine einfache Doku über die /etc/pam.d/ssh gefunden, dafür aber eine Möglichkeit es in syscp (kundenverwaltung-webfrontend syscp.de) zu integrieren, was vielleicht sogar viel interessanter ist:
http://syscp-forum.org/index.php?topic=2221.from1135951406;topicseen

Roger Wilco
19.01.06, 00:42
Anmelden kann ich mich jetzt noch nicht - wie/wo muss ich das PAsswort aus der shadow-Datei für den Benutzer eintragen, bzw. wie gebe ich die Passwortdatei ebenfalls explizit mit an?
$SUCHMASCHINE sagt mir http://www.phptr.com/articles/article.asp?p=165226&seqNum=10&rl=1. pam_listfile ist aber nur für die Zugangskontrolle, d. h. du führst darin die Benutzer auf, die sich anmelden dürfen. Wenn du noch eine eigene Passwortdatenbank benutzen willst, mußt du z. B. pam_userdb (http://tigreraye.org/README.pam_userdb) einbinden. Unter http://www.phptr.com/articles/article.asp?p=165226&seqNum=19 findest du eine etwas ältere Übersicht der am häufigsten verfügbaren PAM-Module und in die offizielle Dokumentation (http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html) solltest du auch mal einen Blick werfen.

yasuo
20.01.06, 10:41
es muss nicht zwingend ein eigene Passwortdatenbank sein - ich würde die Passwörter auch in die passwd.scponly eintragen - geht das?

die /etc/shadow wird scheinbar ignoriert...

Roger Wilco
20.01.06, 16:46
es muss nicht zwingend ein eigene Passwortdatenbank sein - ich würde die Passwörter auch in die passwd.scponly eintragen - geht das?
Das wäre dann doch auch eine zusätzliche Passwortdatenbank...


die /etc/shadow wird scheinbar ignoriert...
Kommt auf deine PAM-Konfiguration an.

yasuo
22.01.06, 12:19
habe die standardkonfiguration von Debian sarge.

meine Passwörter liegen in der /etc/shadow, auch das Passwort für den scp-user.
Dieser kann sich jedoch nicht per ssh einloggen, meine Vermutung war daher dass das Passwort nicht erkannt wird.

$ ssh localhost -l test
Password:
Password:
Password:
Permission denied (publickey,keyboard-interactive).

marce
22.01.06, 12:44
... in der Standardkonf. ist AFAIK Passwort-Auth. ausgeschaltet...