individual ssh/sftp chroot

Author: stephan  |  Category: Linux, Netzwerk

[lang_de]
Keine Ausführen- oder schreibrechte geht unter Linux relativ einfach, das ein User , der z.B. nur Dateien hochladen soll gar nichts vom Rest vom System sieht geht schon etwas schwerer.

Eine Lösung:
Wir haben einen user mit Namen Kunde .
Wir legen eine Gruppe sftpuser an. Kunde wird Mitglied von sftpuser.

Wir verändern
Subsystem sftp /usr/lib/openssh/sftp-server

in der /etc/ssh/sshd.conf zu
Subsystem sftp internal-sftp
und ergänzen.

Match Group sftpuser
ChrootDirectory %h
ForceCommand internal-sftp

Dann legen wir für die ftpuser ein neues home an in dem nur root Schreibrechte hat

drwxr-xr-x 4 root root 4096 May 16 15:54 ftphome

Für das eigentliche Home von Kunde sollte die Rechte folgendermassen aussehen.
drwxr-xr-x 2 kunde sftpuser 4096 May 16 15:52 kunde

Der sshd muss nun neu gestartet
Das ist alles
[/lang_de]
[lang_en]
No execute or writepermissioms for the rest of the system is very simple on a linux system. To prevent , that a user, that only needs to upload files as an example, can see the rest of the system is a little bit more difficult.

One Solution:
We have a user named kunde.
We add a group sftpuser. Kunde became member of sftpuser.

We change
Subsystem sftp /usr/lib/openssh/sftp-server

in /etc/ssh/sshd.conf to
Subsystem sftp internal-sftp
and add

Match Group sftpuser
ChrootDirectory %h
ForceCommand internal-sftp

Then the ftpuser get an new home. Only root had write permissions

drwxr-xr-x 4 root root 4096 May 16 15:54 ftphome

For the individuap home , you need these permssions
drwxr-xr-x 2 kunde sftpuser 4096 May 16 15:52 kunde

Restart sshd
Thats all
[/lang_en]

cygwin with sshd and windows 7

Author: stephan  |  Category: Linux, Netzwerk, windows

[lang_de]
was ist cygwin ?
Cygwin ist ein Toolset das das starten POSIX kompatible Programme unter Windows ermöglich. So ist es unter Windows möglich zu greppen oder den vi zu nutzen.
Es ist auch möglich , den sshd für remote access zu nutzen.

Um cygwin unter Windows 7 zu nutzen wird das neuste release benötigt . ich nutze version 1.7 , zwar noch Beta aber stabil.

Der Installationsdialog ist ähnlich zu den meisten Linuxdistribitionen. Man kann die Packete aussuchen , die man mag, sollte aber den sshd nicht vergessen.

Nach der Installation öffnet man eine neue shell und gibt das folgende ein
ssh-host-config -y
Wenn die Konfiguration das folgende verlangt „CYGWIN=“ sollte man dies eingeben:
tty ntsec
Der Dienst wird dann mit
cygrunsrv -S sshd
gestartet. Die Firewall muss natürlich eingehende ssh Verbindungen akzeptieren.
[/lang_de]
[lang_en]
What is cygwin ?
Cygwin is a set of tools to add POSIX compability to a Windows System. Imagine, you can grep and less and use vi and the Basic System is Windows system.
You can also install a sshd for remote access.

To install cygwin under windows7 , you need the newest release . I used version 1.7 , Beta but stable.

The installation dialog is similar to most linux distributions. Choose the packets you want but don’t forget the sshd.

After the installation is finished open a shell and do the following
ssh-host-config -y
When prompted with „CYGWIN=“ type for following:
tty ntsec
Then you can start it with.
cygrunsrv -S sshd
Be shure that your Firewall accepts incomming ssh connections.
[/lang_en]

Verschiedene ssh keys verwalten

Author: stephan  |  Category: Linux, Netzwerk

Wer auf einem Rechner verschiedene SSH Keys für verschiedene Ziele verwalten möchte, kann dies mit einer simplen Konfigurationserweiterung tun.
Man erstelle eine Datei
~/.ssh/config mit folgendem Inhalt

Host 127.0.0.1
User root
IdentityFile /home/user/.ssh/id_dsa_2

Nervige SSH Dictionary Attacken

Author: stephan  |  Category: Linux, Netzwerk

Wenn haben die SSH Dictionary Attacken nicht auch genervt. Auch wenn das eigene System sicher war hat der Spuk doch Bandbreite gefressen und die Systeme unter Last gesetzt .
Beim stöbern [1 fand ich diesen Ansatz mit iptables :
iptables -N SSH_CHECK
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_CHECK
iptables -A SSH_CHECK -m recent --set --name SSH
iptables -A SSH_CHECK -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP

Was wird gemacht:
– Der gesammte SSH Verkehr geht durch einen neue Queue ( SSH_Check)
-Wenn es innerhalb von 60 Sekunden von einer IP drei neue Verbindungsversuche gibt, wird diese für 60 Sekunden geblockt

Das hat sich als sehr wirksam erwiesen
[1]
http://hostingfu.com/article/ssh-dictionary-attack-prevention-with-iptables