Heiko Zimmermann
SAP-Berater, System Engineer und Entwickler.

Weblog

Ich habe in diesem Artikel beschrieben, dass man OpenSSH härten sollte. Die aktuelle Version von Raspbian ist stand heute noch immer Wheezy. Inzwischen ist zwar Debian 8.0 (Jessie) erschienen und sollte als LTS Debian 7.0 (Wheezy) ablösen, allerdings noch nicht bei Raspbian. Nachdem ich mir mit einem Upgrade das System zwei mal komplett zerschossen habe, kann ich auch gut nachvollziehen weshalb. Wer also auf seinen Pi nur Remote-Zugriff hat, wie ich bei EDIS, sollte sich also gut überlegen, welche Experimente er eingeht.

Zurück zu OpenSSH. Raspbian kommt mit einer sehr alten Version: OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013. Damit sind KexAlgorithms curve25519-sha256@libssh.org etc nicht möglich.

Also habe ich mich entschlossen OpenSSH (portable) mit LibreSSL (portable) zu installieren. Die aktuelle Version von OpenSSH ist 6.9p1.

Zunächst benötigen wir LibreSSL:

cd
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.2.1.tar.gz

tar -xzf libressl-2.2.1.tar.gz
cd libressl-2.2.1
./configure
make
sudo make install
sudo ln -s /usr/local/lib/libssl.so.32 /usr/lib/libssl.so.32

sudo ln -s /usr/local/lib/libssl.so.33 /usr/lib/libssl.so.33
sudo ln -s /usr/local/lib/libcrypto.so.33 /usr/lib/libcrypto.so.33
sudo ln -s /usr/local/lib/libcrypto.so.34 /usr/lib/libcrypto.so.34

# openssl version
LibreSSL 2.2.1

Als nächstes OpenSSH:

Damit wir die Option --with-pam und --with-zlib nutzen können:

sudo apt-get install libpam0g-dev zlib1g-dev

BEACHTE SICHERHEITSHINWEIS zu PAM

 

cd
wget http://openbsd.cs.fau.de/pub/OpenBSD/OpenSSH/portable/openssh-6.9p1.tar.gz
tar -xzf  openssh-6.9p1.tar.gz
cd openssh-6.9p1

./configure --without-openssl-header-check --with-md5-passwords \
--with-ssl-dir=/usr/local --without-pie --without-xauth \
--sysconfdir=/etc/ssh --with-zlib --with-pam

make
sudo make install

# ssh -V
OpenSSH_6.9p1, LibreSSL 2.2.1

# /usr/local/sbin/sshd -V
OpenSSH_6.9p1, LibreSSL 2.2.1

Nun noch das Startscript /etc/init.d/ssh für den SSH-Daemon anpassen:

sudo perl -pi -e 's/\/usr\/sbin/\/usr\/local\/sbin/;' /etc/init.d/ssh

 

SSH-Daemon neu starten:

sudo service ssh restart


Jetzt kann man damit beginnen SSH zu härten :)

UPDATE 09.07.15: LibreSSL wurde aktualisiert 2.2.1 (current).

UPDATE 05.10.15: Sicherheitshinweis PAM