Putty WinSCP3 Sicherheit

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Putty WinSCP3 Sicherheit

Beitrag von Bogo » 15.03.2006 11:12:23

Ich knabbere an folgenden Problem:
Auf meinen RootServer der beim Provider steht loge ich mich mit ssh (Putty) ein. Dazu benutze ich NICHT den ROOT account sondern einen der eben nur das einloggen möglich macht.

Benötige ich ROOT Rechte hole ich sie mir eben mittels "su"

Ich möchte auf dem Server KEINEN FTP laufen haben und verwende deshalb WinSCP3 für sshftp.
Nun der Ärger. Sobald ich micht damit (WinSCP3) einlogge habe ich logischerweise nur die Rechte die der spezielle einloguser hat. Da ich aber sehr oft Dateien vom localen Wndowsrechner auf dem Server schieben muss und dazu auch Verzeichnise etc. anlegen muss benötige ich Rootrechte, die ich mir aber über WinSCR3 nicht besorgen kann.

Gibt es irgendeine einfachere Methode? Es nervt einfach wenn ich mittels sslftp nicht mal Dateien löschen kann.

Danke

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 15.03.2006 11:17:45

Als root solltest du ohnehin nicht arbeiten (weder ftp noch ssh) . Du könntest deinem user die
rechte verschaffen, die du für deine upload-verzeichnisse benötigst. Wo liegt das problem ?
Wenn es um ein webverzeichnis geht, könntest du deinen upload-user in die gruppe www-data
stecken und die entsprechenden webdirs anpassen (nur mal so als beispiel).
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Beitrag von Bogo » 15.03.2006 11:23:58

Nun der einzige User bin ich.
Ich logge mich per ssh mit einem Remoteadmin (kein Root) ein
Danach muss ich z.B. in /var/ www ein CMS installieren das umfangreiche verzeichnisse anlegen will - was aber nicht geht da ich ja als Remoteadmin dazu keine Rechte habe.

Also werfe ich Putty an, mach su, werde Root und erstelle die Verzeichnise per Hand. Dann muss ich wieder chown etc machen damit die Rechte stimmen.

Das muss aber irgendwie doch einfacher gehen.
ich könnte natürlich auch dem Remoteadmin mehr Rechte gegen - das will ich auch nicht.

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 15.03.2006 11:27:26

wie schon gesagt, stecke deinen remoteuser in die gruppe www-data.
Du kannst nicht gleichzeitig rechte verlangen, ohne diese zu vergeben....
alternativ wäre noch ~/public_html, ein feature das es dir ermöglicht, webverzeichnisse im
eigenen home zu verwalten.

edit:

mod_userdir schimpft sich das teil:
http://httpd.apache.org/docs/2.0/howto/public_html.html
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 15.03.2006 11:38:11

Lösungsansatz:

1.) /etc/sshd_config kopieren nach /etc/sshd_config2222 und ändern:
- ListenAdress 127.0.0.1
- Port 2222
- PidFile /var/run/sshd2222.pid
- PermitRootLogin yes

2.) Starten mit sshd -f /etc/ssh/sshd_config2222
(evtl. automatisieren oder temporär, mit dem pid-File aufpassen)

und nun darf localhost -> localhost:2222 als root genutzt werden, ist noch kein Sicherheitsrisiko

dann:
a) normale SSH-Verbindung aufbauen (z.B. puty)
b) LocalForwarding: -L 2222:localhost:2222 localhost
c) SCP unter Windows nutzen (Servername: localhost, Port: 2222, Benutzer: root)

Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Beitrag von Bogo » 15.03.2006 11:51:21

finupsen hat geschrieben:wie schon gesagt, stecke deinen remoteuser in die gruppe www-data.
Du kannst nicht gleichzeitig rechte verlangen, ohne diese zu vergeben....
alternativ wäre noch ~/public_html, ein feature das es dir ermöglicht, webverzeichnisse im
eigenen home zu verwalten.

edit:

mod_userdir schimpft sich das teil:
http://httpd.apache.org/docs/2.0/howto/public_html.html
Danke erstmal aber "adduser remoteadm www-data" geht nicht das "www-data" ROOTRECHTE benötigt. :-(

Der anderen Weg het auch nicht weil ich dann zuviel neu konfigurieren müsste.

Dennoch danke.

Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Beitrag von Bogo » 15.03.2006 11:55:10

nil hat geschrieben:Lösungsansatz:

1.) /etc/sshd_config kopieren nach /etc/sshd_config2222 und ändern:
- ListenAdress 127.0.0.1
- Port 2222
- PidFile /var/run/sshd2222.pid
- PermitRootLogin yes

2.) Starten mit sshd -f /etc/ssh/sshd_config2222
(evtl. automatisieren oder temporär, mit dem pid-File aufpassen)

und nun darf localhost -> localhost:2222 als root genutzt werden, ist noch kein Sicherheitsrisiko

dann:
a) normale SSH-Verbindung aufbauen (z.B. puty)
b) LocalForwarding: -L 2222:localhost:2222 localhost
c) SCP unter Windows nutzen (Servername: localhost, Port: 2222, Benutzer: root)
Horcht sich nach Profi an ...
kanst du mir das als Anfänger ausführlicher erläutern?

Sowie ich das verstehe nehme ich den MC und verändere die ssh_config. Was bedeutet Port 2222? Heißt das, nun wird auf 2222 statt auf 22 gehorcht - ich muss also bei Putty dann 2222 und nicht mehr 22 nehmen?

Sorry aber bin nicht so fit

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 15.03.2006 12:04:36

Ok, ein wenig zur Erklärung:

SSHD läuft auf dem Port 22, root darf nach deiner Definition nicht zugreifen und ist ja auch so gewollt.
Mit dem Configfile kannst du einen weiteren SSHD laufen lassen (z.B. Port 2222), der erstens nur lokale Verbindungen (127.0.0.1) annimmt und zweitens den root-Zugriff erlaubt. Es ist eigentlich unkritisch, da nur jemand das System erreicht, der Nicht-root ist. Natürlich benötigt er weiterhin das root-Passwort.
Das alles hilft dir erst mal nichts, jedoch kann man mit SSH auch Ports weiterleiten bzw. umleiten. So loggst du dich dann ganz normal ein und definierst eine Portweiterleitung (SSH-Tunnel) von deinem Arbeitsplatz-Windows (localhost:2222) über deinen Server (server:22) zu deinem Server (localhost:2222).
Nun kannst du SCP nutzen, Servername ist localhost (dein Windows-Rechner), Port ist 2222 (Tunnel-Anfang). Benutzername ist root und Passwort das root-Passwort. Indirekt führst du damit eine Anmeldung an SSHD (Port 2222) durch.

PS.: solltest du es fertig bringen deinem Original-SSHD beizubringen für root nur Zugiffe von localhost zu erlauben, so könntest du es vereinfachen. Leider kenne ich keinen Parameter in /etc/ssh/sshd_config. Vielleicht gibt es eine Möglichkeit über /etc/pam.d/ssh. Vielleicht kann ja jemand hier weiterhelfen.

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 15.03.2006 12:04:47

Sofern man weiß was man tut ist ein Login als root per ssh übers Internet nicht schädlich. Wir sind ja nicht mehr in der Steinzeit. Verwende public-key authorisation für den root User. Damit kann man sich nur mit dem einen Schlüssel als root anmelden. Du kannst auch die Rechner eingrenzen von denen aus dieser Schlüssel akzeptiert wird. Dafür registrierst du dir einen Rechnernamen bei einem dyndns Service und trägst diesen Namen ein im Schlüssel ein. Um dich also als root an deinem Server anzumelden brauchst du:
1. Den richtigen Schlüssel
2. Muss dieser vom einem bestimmten durch DNS auflösbarem Rechnernamen kommen.
Ich hab den zweiten Teil nicht getestet.
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 15.03.2006 12:10:55

Oder so. Obwohl wenn mehrere Benutzer einen Server administrieren ist es doch immer ganz schön zu sehen, wer sonst noch alles das System "besucht".
Als alleiniger Systemadministrator kann man so vorgehen, aber public-key-Authentication auf JEDEN Fall mit geeigneter Passphrase durchführen.

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 15.03.2006 12:15:59

Bogo hat geschrieben: Danke erstmal aber "adduser remoteadm www-data" geht nicht das "www-data" ROOTRECHTE benötigt. :-(
könntest du diesen satz nochmal erklären ? Ich verstehe grad nicht wie eine gruppe root-rechte
benötigen kann ...

nochmal...

Ich bin der user "finup" und befinde mich u.a. in der gruppe www-data. Ich kann in meinem
/var/www/ (webroot) schreiben und lesen.

Ist es das was du möchtest ?

wenn ja: stecke deinen user in die gruppe www-data und es funktioniert ! (versprochen) ;)

edit:

vielleicht nochn tip wie man das macht:
öffne deine /etc/group und suche nach www-data. Füge deinen benutzernamen ein. Das sieht dann etwa so aus:

www-data:x:33:finup

danach re-login machen....
Zuletzt geändert von finupsen am 15.03.2006 12:26:18, insgesamt 1-mal geändert.
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Beitrag von Bogo » 15.03.2006 12:25:36

Nun, auf meinen Sever sieht das so aus das ROOT der Eigentümer von WWW-DATA ist.
Nun benötigen alle darunterliegenden Verzeichnisse eben auch ROOT Rechte. Habe den Server selber nicht eingerichtet wundere mich aber schon etwas das WWW-DATA Rootrechte benötigt.

Ich denke das es vielleicht besser ist www-data einem user zuzuordnen, mir erschließt sich nicht ganz warum www-data unter root laufen soll. oder ist das ein Sicherheitsrisiko?

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 15.03.2006 12:48:20

> Nun, auf meinen Sever sieht das so aus das ROOT der Eigentümer von WWW-DATA ist.

sag mir, wie ich dich von diesem irrtum befreien kann und ich tue es ... ;)

www-data ist eine gruppe und wird mit der installation von apache erzeugt.
root ist ein user bzw. der superuser.
www-data hat keinen besitzer, gruppen haben genrell keinen besitzer.
root kann demnach nicht besitzer von www-data sein (genau da liegt dein irrtum)

bisher klar ?

so. www-data ist ausserdem ein user, der ebenfalls mit der installation von apache angelegt wird.
Der apache-prozess läuft als user www-data. Ermitteln kannst du das mit dem befehl "ps aux".
Der user www-data ist widerum in der gruppe www-data.
Damit apache selbst auf die html-dateien zugreifen kann, müssen diese dateien die
richtigen rechte besitzen. Daher befinden diese sich in der gruppe www-data.
Wenn du selbst auch in der gruppe www-data bist, kannst du natürlich auch
auf diese dateien zugreifen.... logisch ?
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 15.03.2006 12:57:06

nil hat geschrieben:Oder so. Obwohl wenn mehrere Benutzer einen Server administrieren ist es doch immer ganz schön zu sehen, wer sonst noch alles das System "besucht".
Als alleiniger Systemadministrator kann man so vorgehen, aber public-key-Authentication auf JEDEN Fall mit geeigneter Passphrase durchführen.
Wer hindert dich dran für jeden Admin einen anderen Key zu verwenden?
Ach ja, und nix schrotten.
Ich habe einen schlechten Stil, ich weiss, Danke, wurde mir bereits gesagt.

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 15.03.2006 13:04:57

Wer hindert dich dran für jeden Admin einen anderen Key zu verwenden?
natürlich niemand und jeder Admin sollte einen eigenen Key mit eigener Passphrase haben, die wirklich nur er kennt. Es geht mir mehr darum, dass man auch mal schauen kann, wer z.B. am System angemeldet war, z.B. mit "last". Und "root" ist eben unpersonalisiert.

Bogo
Beiträge: 131
Registriert: 30.01.2004 10:27:49

Beitrag von Bogo » 15.03.2006 14:21:12

finupsen hat geschrieben:> Nun, auf meinen Sever sieht das so aus das ROOT der Eigentümer von WWW-DATA ist.

sag mir, wie ich dich von diesem irrtum befreien kann und ich tue es ... ;)

www-data ist eine gruppe und wird mit der installation von apache erzeugt.
root ist ein user bzw. der superuser.
www-data hat keinen besitzer, gruppen haben genrell keinen besitzer.
root kann demnach nicht besitzer von www-data sein (genau da liegt dein irrtum)

bisher klar ?

www-data ist ausserdem ein user, der ebenfalls mit der installation von apache angelegt wird.
Der apache-prozess läuft als user www-data. Ermitteln kannst du das mit dem befehl "ps aux".
Der user www-data ist widerum in der gruppe www-data.
Damit apache selbst auf die html-dateien zugreifen kann, müssen diese dateien die
richtigen rechte besitzen. Daher befinden diese sich in der gruppe www-data.
Wenn du selbst auch in der gruppe www-data bist, kannst du natürlich auch
auf diese dateien zugreifen.... logisch ?

OK. Ich habe das eben getestet. Mit adduser einen testuser angelegt in die Gruppe von www-data geben und der hat dennoch keine Rechte eine Datei anzulegen oder irgendwas zu löschen.

/var/www benötigt ROOTRECHTE um darin etwas zu verändern - genau das ist ja auch mein Problem. MC sagt zudem bei www-data : Name des Besitzers "root" Name der Gruppe: "root"

Was nun? Warum Root?

nil
Beiträge: 989
Registriert: 08.06.2005 13:28:36

Beitrag von nil » 15.03.2006 15:20:15

Es gibt den Benutzer root und die Gruppe root.

Code: Alles auswählen

chgrp www-data /verzeichnis/zum/webserver
sollte helfen.

Antworten