====== SSH-Server ====== Secure Shell ist ein Dienst, der es ermöglicht, entfernt auf eine Linux-Konsole zugreifen zu können. Unter Ubuntu wird OpenSSH genutzt. ===== Konfiguration ===== Konfigurationshilfe erhält man mit man sshd_config Die zentrale Konfigurationsdatei liegt unter: /etc/ssh/sshd_conf Nach der Konfiguration muss der Server neugestartet werden und überpfüft werden, dass er auch läuft: # service ssh restart # service ssh status Läuft der Prozess nicht, kann der Dienst direkt gestartet werden. Es werden dann auch Fehlermeldungen am Bildschirm ausgegeben(http://ashayhumane.blogspot.de/2012/01/ssh-respawning-too-fast-stopped.html): # /usr/sbin/sshd Weitere Informationen kann man dem Log unter ''/var/log/syslog'' einsehen. ===== Logfile ===== Das Logfile iiegt unter /var/log/auth.log Je nach dem welches Log-Level man braucht, kann man eine von den Zeilen einkommentieren: LogLevel INFO #LogLevel DEBUG3 ===== Sicherheit ===== ==== Änderung des Standardports ==== Standardmäßig wird der Port 22 verwendet. Mittels einer Änderung kann man automatisierte Angriffe mittels Portscanner ausschlaten, indem man die Konfiguration entsprechend auf einen anderen Port legt: # What ports, IPs and protocols we listen for Port 99 Weitere Möglichkeiten ergeben sich, indem man bestimmte Adressbereiche aus- oder einsperrt oder die Authentifizierung via Keys erledigt. ===== Einrichten einer CHROOT-Umgebung für bestimmte Nutzer ===== Mittels einer CHROOT-Umgebung wird ein Nutzer in ein bestimmtes Verzeichnis "eingesperrt", sodass er nicht in andere Verzeichnisse wechseln kann. Folgende Veränderungen müssen vorgenommen werden: ==== Gruppe sftponly ==== Eine Gruppe, deren Mitgliedschaft die Einstellung aktiviert, muss angelegt werden. Alle Nutzer, die später in dieser Gruppe sind, werden später nur Zugriff auf ein gewisses Verzeichnis (z.B.ihr Home-Verzeichnis) haben. groupadd sftponly Dieser Gruppe werden nun alle Nutzer zugewiesen, die sich später in eine CHROOT-Umgebung einloggen sollen. ==== SSH Konfig ==== Nun soll OpenSSH so konfiguriert werden, dass alle Nutzer in der Gruppe sftpuser nur Zugriff auf ihr Homeverzeichnis haben. Beispielsweise kann man einem Nutzer das Home-Verzeichnis in ein DocumentRoot des Webservers legen((http://blog.schalanda.name/archives/154-chroot2-Unterstuetzung-fuer-OpenSSH.html/)). #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftponly ForceCommand internal-sftp ChrootDirectory %h X11Forwarding no AllowTcpForwarding no Nun kann der Dienst neu gestartet werden. ==== Verzeichnisrechte ==== Falls das Starten des Dienstes misslingt kann es an den Zugriffsrechten zu den Verzeichnissen liegen((http://www.mynakedgirlfriend.de/sichere-chroot-umgebung-fur-ssh-dateiubertragungen-sftp/)). Hierzu müssen die Home-Verzeichnisse ''root:[gruppe]'' gehören! drwxr-xr-x 12 root www-data 4096 2012-05-12 13:57 wiba10.de/ SSH überprüft beim Login, ob die Dateirechte passen und weist ggt. die Anmeldung zurück, dieses Verhalten lässt sich auch verhindern ((http://www.rackblogger.de/2008/12/08/ssh-bad-ownership-or-modes/)) ===== Achtung! ===== Bei Änderungen an der Konfiguration des SSH-Servers kann man sich schnell aussperren. Man sollte immer noch eine eingeloggte Sitzung haben, um ggf. Änderungen wieder rückgängig machen zu können. {{tag>ssh remotezugriff sicherheit}}