Skip to content

ssh_scan – Sicherheits- und Konfigurationsscanner für SSH Einstellungen

Mit SSH Audit hatte ich bereits vor einiger Zeit ein Tool im Programm, welches SSH auf Einstellungen und Konfiguration testet (Artikel).

Mozilla hat mit ssh_scan ein ähnliches Tool im Portfolio. Das Tool bezieht sich auf die eigenen SSH Guidelines und prüft hinterlegte Ciphers, MACs, und Kex Algorithmen.

Laut eigener Aussage zählt zu den Vorteilen des Tools die einfache Installation ohne allzu viele Abhängigkeiten. Das Programm ist portabel, lässt sich mit eigenen Regeln konfigurieren und wirft am Ende einen Report im JSON Format aus.

Zunächst muss ssh_scan aber erst einmal den Weg auf die Festplatte finden.

Installation unter Ubuntu 16.04 LTS

Für die Installation steht neben einem ssh_scan gem Paket auch ein Docker Container zur Verfügung.

sudo apt-get install ruby gem
sudo gem install ssh_scan

oder via Docker

docker pull mozilla/ssh_scan
docker run -it mozilla/ssh_scan /app/bin/ssh_scan -t example.com

oder froM Source

git clone https://github.com/mozilla/ssh_scan.git
cd ssh_scan

gem install bundler
bundle install

./bin/ssh_scan

SSH Scan im Einsatz

Die SSH-Prüf-Anwendung ist denkbar einfach zu bedienen, es lassen sich einzelne Host scannen, ganze Ranges oder weitere Parameter angeben.

Eine IP scannen

ssh_scan -t ip-addresse

Mehrere IPs scannen

ssh_scan -t ip-addresse1,ip-addresse2,ip-addresse3

ssh_scan

Adressen aus einer Datei scannen

ssh_scan -f ip-addressen.txt

IP Adressen mit bestimmten Port scannen

ssh_scan -t ip-addresse -p 666

Eigene Policy verwenden

ssh_scan -P intermediate -t ip-addresse

In den Standardeinstellungen wird die Mozilla Modern Policy als Prüfvorlage verwendet. Es lässt sich aber mit der oben erwähnten Option P auch auf Intermediate oder andere Richtlinien prüfen.

Hier als Beispiel die Intermediate Richtlinie:


cat intermediate

# Host keys the client accepts - order here is honored by OpenSSH
HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256

Alle SSH_scan Befehle lassen sich über die Hilfe einsehen

ssh_scan -h

 

Fazit

Mozilla bietet mit ssh_scan eine praktische Methode um SSH Einstellungen zu prüfen und zu härten. Dank eigener Policies und vieler weiterer Optionen, wie Reports würde ich das Tool vorziehen, alleine weil das eingangs erwähnte SSH-Audit seit 2016 nicht mehr aktualisiert wurde.

Allerdings empfinde ich die Masse an Paketen, welche mit ruby gem auf dem System landen nicht unerheblich, da ist ein einfaches Python Script schon handlicher. 
Zusätzlich setzt ssh_scan wohl weiterhin auf NIST Kurven wie ecdh-sha2-nistp521,ecdh-sha2-nistp384 und ecdh-sha2-nistp256 welchen ich eher kritisch gegenüber stehe.

Schlussendlich sollte bei solchen Tests immer das Ergebnis genau hinterfragt werden. Das Prüfen von SSH Konfigurationen vereinfachen beide Programme dennoch merklich.

 

ssh_scan

Openfire Meetings - eigenen WebRTC Server einrichten und verwenden

Vor einiger Zeit hatte ich einem Artikel über Jitsi Meet geschrieben. Es ging darum einen eigenen WebRTC Server für  Video und Audio Chats aufzusetzen.
Die Entwickler rund um das Jitsi Projekt sind mit ihrer Lösung schon lange nicht mehr alleine, auch andere verwenden diese Module um Videochats zu implementieren, so auch der XMPP Messaging Server Openfire.

Openfire Meetings - Videochats für den XMPP Server einrichten

Openfire ist ein XMPP Server mit einfach konfigurierbarer Oberfläche, der neben dem Bereitstellen einer klassischen Jabber Chat Umgebung durch diverse Plugins erweitert werden kann. 

So kann der Server mit dem Openfire Meetings Plugin zu einem Web-RTC Server ausgebaut werden. Dieses basiert auf Jitsi Videobridge und bietet somit ähnliche Funktionalitäten wie der oben erwähnte Jitsi Meet Server.

Openfire auf Ubuntu installieren

Die Installation des Openfire Server sei hier noch einmal erwähnt, auch wenn sie bereits verblogt wurde.

wget -O openfire_3.10.2_all.deb "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.10.2_all.deb"

sudo dpkg -i openfire_3.10.2_all.deb

service openfire restart

Der installierte Server kann unter http://meinServer:9090 oder unter https://meinServer:9091 aufgerufen werden.


Openfire Meeting Plugin installieren

Das nötige Plugin für interaktive Meetings wird einfach über das integrierte Menü "Plugins/Available Plugins" installiert. Danach ist es als eigener Menüpunkt in Openfire zu finden.

openfire-_Available-Plugins

Nach der Installation sollte in den Einstellungen unter "Mettings Settings" eine IP hinterlegt werden.
Umgebungen, die hinter einer Firewall eingerichtet werden, sollten zwingend die in der Konfiguration angegebenen Ports freischalten.

openfire-meeting-plugin

Openfire Meetings Chrome Erweiterung installieren

Die Openfire Meetings Browser Erweiterung, welche zurzeit nur für Chrome zur Verfügung steht, erweitert Videochats um Funktionen wie Bildschirmteilen oder Anwendungsaustausch. Die Installation erfolgt über den Chrome Webstore

openfire-chrome

Weitere nützliche Openfire Plugins

Damit der Server sich auf Gruppenchats und URL Lesezeichen versteht, kann das Client Control Plugin installiert werden. Wie der Name vermuten lässt können damit auch die erlaubten Clients im Netz reguliert werden. URL Lesezeichen bieten sich an, um eine Meetings URL im Client direkt zu hinterlegen.

Das Fastpath Plugin ist ebenfalls eine praktische Erweiterung, um den bestehenden Server für Arbeitsgruppen auszubauen. 

Für eine schnelle Nutzerumbennenung empfiehlt sich just married.

Die hier erwähnten Plugins sind für einen WebRTC Server Betrieb nicht notwendig, sondern optional.

Meeting erstellen oder beitreten

Nachdem alle Module erfolgreich installiert wurden, lässt sich der Meeting Server unter  https://meinServer:7443/ofmeet aufrufen.

Diejenigen welche sich bereits mit Jitsi Meet auseinander gesetzt haben, werden die Oberfläche bereits kennen.

ofmeet

Bestehende Räume lassen sich mit der im Vorfeld generierten ID direkt aufrufen https://meinServer:7443/ofmeet/?r=xxxxx. 

Zusätzlich besteht die Möglichkeit eine Videoübertragung von vornherein auszuschließen, hierzu muss die URL wie folgt manipuliert werden https://meinServer:7443/ofmeet/?r=xxxxx&novideo=true

Inzwischen sind weitere Funktionen wie ein Kalender mit Email Benachrichtigung verfügbar, auch ein normaler Gruppenchat mit Candy (Chats are not dead yet) ist möglich. Weitere Details dazu können auf der Openfire Meeting Seite direkt nachgelesen werden.

Fazit

Ähnlich wie Jitsi Meet stellt Openfire eine fertige Videochat Lösung bereit. Sie lässt sich einfach in eine bestehende Jabber/Xmpp Server Struktur einbinden. dank der Installation via Plugin sind keine weiteren Konfigurationen notwendig, sieht man einmal von einer eventuell vorhandenen Firewall ab. Die Kalender und Mailfunktion scheint praktisch zu sein, in meiner Teststellung konnte ich sie leider nicht testen.


Dies könnte dich auch interessieren

Ubuntu - IPv6 auf einem Apache, MySQL Server ausschalten

Kurztipp zum Wochenende, zum Thema Ipv6 und Apache/MySQL. 

ipv6_apache2

IPv6 auf einem Apache Server ausschalten

Um IPv6 auf einem Apache2 Server abzuschalten genügt ein einfacher Eintrag in der ports.conf. 

Hier muss das vorhandene Listen 80 angepasst werden.

nano /etc/apache2/ports.conf

Listen 0.0.0.0:80

sudo service apache2 restart

Ipv6 bei einem MySQL Server deaktivieren

Beim MySQL Server verhält es sich ähnlich, wie beim Apache. Es genügt in der Hauptkonfiguration die Listenadresse zu setzen.

nano /etc/mysql/my.con

bind-address            = 0.0.0.0

sudo service mysql restart

apache

Das könnte dich auch interessieren

Ubuntu - IPv6 auf einem Tomcat Server ausschalten

 

Rkhunter (Rootkit Hunter) und Chrootkit auf Ubuntu installieren, aktualisieren und konfigurieren

Linux Systeme gelten als relativ sichere Systeme, jedoch sind auch sie immer öfter von Backdoors oder Rootkits befallen (aktuelle Beispiele wären hier Jellyfish oder Ebury) 
Es kann somit nicht schaden die eigenen Systeme regelmäßig auf diverse Schädlinge zu untersuchen

Ein Tool, welches seit Langem für diesem Sektor zuständig ist, nennt sich Rkhunter (Rootkit Hunter).
Die OpenSource Software scannt nicht nur euer Linux System nach unerwünschten Gästen, sondern sucht das System auch nach veränderten Dateien oder offenen Ports ab. 

Auch diverse andere Sicherheitseinstellungen sind in den Tests enthalten. Eine Installation schadet somit sicherlich nicht.

rkhunter

Installation von Rkhunter auf Ubuntu 14.04 (Server)

Da Rkhunter in den Ubuntu Repositories enthalten ist, fällt ein Installation über die Paketverwaltung mehr als einfach aus.

sudo apt-get install rkhunter

In den Repositories von Ubuntu 14.04  ist die Version 1.4.0 enthalten, es kann aber auf die aktuelle Version 1.4.2 aktualisiert werden

Rkhunter auf Version 1.4.2 aktualisieren

wget http://downloads.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz

Test der Checksumme

md5sum rkhunter-1.4.2.tar.gz

Entpacken und installieren

tar xzvf rkhunter*
cd rkhunter
sudo ./installer.sh --layout /usr --install

            Checking system for:
             Rootkit Hunter installer files: found
             A web file download command: wget found
            Starting update:
             Checking installation directory "/usr": it exists and is writable.
             Checking installation directories:
              Directory /usr/share/doc/rkhunter-1.4.2: creating: OK
              Directory /usr/share/man/man8: exists and is writable.
              Directory /etc: exists and is writable.
              Directory /usr/bin: exists and is writable.
              Directory /usr/lib: exists and is writable.
              Directory /var/lib: exists and is writable.
              Directory /usr/lib/rkhunter/scripts: creating: OK
              Directory /var/lib/rkhunter/db: exists and is writable.
              Directory /var/lib/rkhunter/tmp: exists and is writable.
              Directory /var/lib/rkhunter/db/i18n: exists and is writable.
              Directory /var/lib/rkhunter/db/signatures: creating: OK
             Installing check_modules.pl: OK
             Installing filehashsha.pl: OK
             Installing stat.pl: OK
             Installing readlink.sh: OK
             Installing backdoorports.dat: OK
             Installing mirrors.dat: OK
             Installing programs_bad.dat: OK
             Installing suspscan.dat: OK
             Installing rkhunter.8: OK
             Installing ACKNOWLEDGMENTS: OK
             Installing CHANGELOG: OK
             Installing FAQ: OK
             Installing LICENSE: OK
             Installing README: OK
             Installing language support files: OK
             Installing ClamAV signatures: OK
             Installing rkhunter: OK
             Installing rkhunter.conf in no-clobber mode: OK
             >>>
             >>> PLEASE NOTE: inspect for update changes in "/etc/rkhunter.conf.22942",
             >>> and apply to either "/etc/rkhunter.conf" or your local configuration
             >>> file before running Rootkit Hunter.
             >>>
            Update complete

            

Versionsprüfung der Installation

sudo rkhunter --version

Erster Scan mit Rkhunter

Ein erster Scan gibt Erkenntnisse über das System, aber auch über "false positive" Ereignisse oder ähnliches. Diese werden am Ende in einer ausführlichen Zusammenfassung ausgegeben und lassen sich später auch über die Logs abrufen.

sudo rkhunter -c --enable all

rkhunter-zusa

Konfiguration von rkhunter

Sollten Fehler auftreten oder Warnungen angezeigt werden, welche definitiv keine Gefahr darstellen, kann dies unter "/etc/rkhunter.conf" beispielsweise in einer Whiteliste hinterlegt werden.

sudo nano /etc/rkhunter.conf

Auch Emailoptionen und ähnliches lassen sich hier hinterlegen. So kann unter  "MAIL-ON-WARNING="mail@me.de" der gewünschte Ansprechpartner für Warnungen hinterlegt werden.

rkhunter-unhide

Alternativ können Prozesse und Verzeichnisse mit Hilfe einer Whitelist von der Suche ausgeschlossen werden.

Das ist in Bezug auf einzelne Systeme mit verschiedenen Konfigurationen immer sinnvoll.

Automatisieren mit Cron

Um den Scan regelmäßig auszuführen, bietet sich ein Script in Verbindung mit einem Cronjob an.

sudo nano /home/user/rkhunter-auto.sh

 #!/bin/sh
 (
 rkhunter --versioncheck
 rkhunter --update
 rkhunter -c --cronjob -report-warnings-only
 ) | mail -s 'rkhunter pruefung' mail@me.de

sudo crontab -e

0 20 7 /home/user/rkhunter-auto.sh

Mit dieser Einstellung würde rkhunter jede Woche das System scannen und nur bei Warnungen eine Meldungen abgeben.

Troubleshooting

Wie bereits erwähnt, kann es vorkommen, das Systembereiche angemahnt werden, obwohl diese keine Gefahr darstellen. Hier ein Beispiel:

sudo rkhunter -c --enable all --disable none
Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/lwp-request
Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/sbin/prelink

In diesem Fall auf die Konfiguration zurückgreifen und unter "/etc/rkhunter.conf" die beiden Einträge auskommentieren.


Installation von Chkrootkit auf Ubuntu 14.04 (Server)

Doppelt hält bekanntlich besser, darum ist die Installation eines zweiten Tools, welches auf ähnlich Art und Weise das System überprüft sicherlich sinnvoll. In diesem Fall handelt es sich um das Tool Chkrootkit, welches, wie der Name vermuten lässt, ebenso auf Rootkits aus ist.

Die Installation und Konfiguration ist hier ähnlich einfach.

Installation Chkrootkit

sudo apt-get install chkrootkit

Konfiguration von Chkrootkit (wöchentliche Prüfung und Mailbenachrichtigungen)

In der Konfiguration kann eingestellt werden, ob täglich ein Check laufen soll. Alternativ lässt sich dies auch über einen extra Cronjob, z.B. monatlich lösen, wie es bei Rkhunter schon gemacht wurden.

sudo nano /etc/chkrootkit

sudo crontab -e

0 20 30 /usr/sbin/chkrootkit | mail -s "chkrootkit pruefung" me@home.de

Fazit

Beide Tools erfüllen im Prinzip ihren Job. Sollte ein System befallen sein, ist es effektiver solche Tools von einer nicht infizierten Live CD laufen zu lassen.

Bei einem Befall ist die sicherste Variante sowieso das Neusaufsetzen des Systems, wenn möglich.

Openfire XMPP Server - Update oder Installation der neuen Version 3.10 unter Ubuntu oder CentOS

Vor ca. einem Jahr wurde die letzte Version des freien XMPP Servers Openfire veröffentlicht.
Mit der nun erschienenen 3.10 wurde ein Menge an Änderungen und Verbesserungen vorgenommen.
An der leicht zu bedienenden Oberfläche hat sich nicht allzu viel getan, die meisten Anpassungen wurden unter der Haube vorgenommen. Siehe Changelog

openfire

Interessanteste Neuerungen der aktuellen Version ist die Unterstützung der hier (als standalone Version) bereits vorgestellten Jitsi Meet und Videobridge Funktion. (Die Firma hinter Jitsi wurde übrigens von Atlassian gekauft)

Die Entwickler rund um den XMPP Server haben ein neues Plugin unter dem Namen Openfire Meetings veröffentlicht, welches auf Jitsi Meet basiert und in Zukunft Videokonferenzen über den Server ermöglichen soll.

Da es heute um die Installation des XMPP Servers selbst geht, wird Openfire Meetings eventuell Teil eines eigenen Artikels.

Nun zum Update des bestehenden Servers oder der Installation eines Neuen.

Installation oder Update auf Openfire 3.10 unter Ubuntu

Backup der alten Installation erstellen

sudo mkdir -p /opt/openfire_bak
sudo cp /opt/openfire /opt/openfire_bak

Datenbank sichern

Der Befehlssatz ist für eine MySQL Datenbank gültig, Postgresql verwendet für diesen Zweck pg_dump.

mysqldump -p [datenbankname] -u [username] > /home/user/openfire_bak.sql
Enter password:

Download und Installation

wget -O openfire_3_10_0.tar.gz "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_10_0.tar.gz"
tar -xvf openfire_3_10_0.tar.gz
mv openfire /opt
sudo /opt/openfire/bin/openfire start

Alternativ kann auch einfach das openfire_3.10.0_all.deb Paket installiert werden.

wget -O openfire_3.10.0_all.deb "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.10.0_all.deb"
sudo dpkg -i openfire_3.10.0_all.deb

Installation oder Update von Openfire 3.10 unter CentOS

Hier gibt es eine ähnliche Vorgehensweise wie auf Ubuntu Systemen. Der Backup Vorgang ist natürlich gleich, 

Backup der alten Installation erstellen

sudo mkdir -p /opt/openfire_bak
sudo cp /opt/openfire /opt/openfire_bak

Datenbank sichern

mysqldump -p [datenbankname] -u [username] > /home/user/openfire_bak.sql
Enter password:

Aktuelle Version herunterladen

wget -O openfire-3.10.0-1.i386.rpm "http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-3.10.0-1.i386.rpm"

Neueste Version installieren

sudo rpm -Uvf openfire-3.10.0-1.i386.rpm
    Vorbereiten der Pakete für die Installation...
    openfire-3.10.0-1
    Warnung: /opt/openfire/conf/openfire.xml erstellt als /opt/openfire/conf/openfire.xml.rpmnew
    Warnung: /opt/openfire/resources/security/truststore erstellt als /opt/openfire/resources/security/truststore.rpmnew

Die oben aufgeführten  Fehlermeldung tauchen nur bei einer bestehenden Installation auf, hier kann mit Hilfe von "diff" auf Änderungen geprüft werden.

Sollte bereits ein Beta laufen, muss die Installation erzwungen werden

sudo rpm -Uvf --force openfire-3.10.0-1.i386.rpm

Konfiguration Openfire Server

Die Konfiguration erfolgt über die Weboberfläche http://localhost:9090/ oder https://localhost:9091/

Openfire-Login