Easy access to files over SSH/SFTP with Windows

Ich bin ja kein grosser MS Fan, aber tatsaechlich gibt es immer noch 1-2 Leute da draussen, die Windows noch fuer andere Dinge ausser Counterstrike nutzen. Swish bindet sich in den Windows Explorer ein und bietet die Moeglichkeit ssh/sftp Freigaben als Netzlaufwerk einzubinden. Das ganze ist noch im Alpha Stadium, daher sind bestimmte Funktionen noch nicht moeglich (z. B. direktes editieren der Dateien). Die Roadmap sieht aber viel versprechend aus. Hoffen wir mal fuer unsere lieben Windowsuser, dass dies feine Projekt nicht im Sande verlaeuft.

via g+

p.s. keine Ahnung wie man das mit „via“ nun richtig machen sollte bei google+. Die Namen im blog zu posten ist irgendwie…seltsam.

sperr mich ein Baby

Chroot ist gut, so einfach ist das. Multiusersysteme ohne chroot bieten ein grosses Sicherheitsrisiko. Dieses Risiko entsteht in der Regel durch falsch gesetzte Dateirechte. Leider kann mit vertretbaren Mitteln nicht überall eine chroot Umgebung aufgebaut werden. Generell sollte man sich immer Fragen: Braucht der Benutzer ueberhaupt eine Shell? Nehmen wir einen standard Webserver mit mehreren virtuellen Webservern und unterschiedlichen Benutzern als Beispiel. Der Benutzer will Daten auf den Webserver ablegen, die darüber bereitgestellt werden, mehr nicht. Eine Shell ist dabei voellig unnötig und erhöht nur das Risiko eines potentiellen Einbruchs und der Datenmanipulation (und und und).  Falsch gesetzte Dateirechte sind in einer chroot Umgebung nur „halb so schlimm“. Nehmen wir z. B. die beliebte

-rw-r--r-- 1 thomas thomas 0 2011-07-15 10:22 config.php

Natürlich kann und muss der Webserver die Datei lesen können, aber der Benutzer Satans101 kann die Datei auch lesen und sein teuflisches Werk damit treiben. Nutzt man chroot, schützt man primär die Benutzer voreinander. Ein Einbruch mit ergattern eines Shell Zugangs und Zugriff auf andere Benutzerdaten,  ist so nicht ohne weiteres möglich (ich erspare mir Sachen wie  how-to-get-shell-acces-in-no-mans-land). Ein hervorragender Weg ist dabei die sftp chroot Umgebung von ssh zu nutzen. Vorteil ist man muss keine extra Software installieren und nutzt die Möglichkeiten von ssh. Ganz kurz sieht das in der /etc/ssh/sshd_config etwa so aus:

AllowGroups ssh-allow sftp-allow
Subsystem sftp internal-sftp
Match group sftp-allow
ChrootDirectory /user/home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Match

Wichtig dabei ist

chown root:root /user/home/username

Das Userhome muss root gehoeren.
Das ssh-allow ist natuerlich nur Beiwerk, aber sinnig. Dies ist nur eines der Werkzeuge um die Sicherheit zu erhoehen, tools wie chmod g+s, rkhunter, iwatch, aide, tiger, clamav, limits.conf, quota, fail2ban, open_basedir, portchange, diverse selbst geschrieben Skripte usw. helfen dabei auch weiter.

Ganz grob einige Vorteile von croot mit sftp dabei

  • Benutzer sieht Daten anderer Benutzer nicht
  • Benutzer kann keine Prozesse laufen lassen -> Benutzerprozesses fallen sofort auf
  • Geklaute Accounts haben nur einen begrenzten Nutzen für Einbrecher
  • Unerfahrene Benutzer irren nicht durch das gesamte Dateisystem (ja tun sie tatsächlich)

Nachteile

  • sind zu vernachlässigen

Chroot im Zusammenhang mit sftp nutze ich nun seit über 2 Jahren mit mehreren 100 Benutzern und meine Erfahrungen sind durchweg positiv. Der optimale client dabei ist sshfs. Programme wie fireftp, filezilla, sftp und winscp gehen natürlich auch. Empfehlen kann ich auch eine strickte Trennung der Dienste auf unterschiedliche Systeme, aber wem erzähl ich das, weiß man doch alles.

links: OpenSSH SFTP chroot() with ChrootDirectory

google+

Haben schon genug drueber geschrieben daher fasse ich mich mal kurz. Ich mag es, man merkt das es noch im Betastadium ist und Google kommt der Weltherrschaft immer naeher. Man braucht einfach viel mehr Plattformen im Internet und noch viel mehr Socialnetworks…wie ging das nur alles ohne?

p.s. Die Videofunktion ist schon nett.

clone your kvm vm

Wirtssystem:

lvcreate -L40G -n web2 WEB-VG
virt-clone --original web1 --name web2 -f /dev/WEB-VG/web2 --prompt

Danach auf der web2 VM:
/etc/hostname
/etc/mailname
/etc/network/interfaces

eventuell auch
/etc/hosts
editieren. Falls vorhanden, auch die TSM Konfiguration anpassen.
Geht natuerlich auch ueber z.B. virt-manager. Web1 muss waehrend des Klonens ausgeschaltet sein.