Artikel mit Tag Server

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

 

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

Jitsi Meet - Eigenen Server für Videokonferenzen auf Ubuntu installieren

Erst vor wenigen Tagen wurde ein neuer Entwurf für WebRTC 1.0 vom W3C veröffentlicht.
Schon heute gibt es bereits einige Webdienste die Video Chats via Browser anbieten.
Mit vline, talky, Firefox Hello oder JitsiMeet lassen sich bereits heute Videokonferenzen mit dem neuen Standard ausprobieren.
Letzteres lässt sich mit wenigem Aufwand auf dem eigenen Server installieren.

Für das heutige Beispiel wird Ubuntu 14.04 LTS als Referenzsystem verwendet. Als Browser ist Google Chrome nötig.

Server für Videokonferenzen unter Ubuntu mit Jitsi Meet installieren

Im Prinzip handelt es sich bei Jitsi Meet um einen Nginx Server, welcher mit Jitsi-Videobridge, dem XMPP Server Prosody und WebRTC Chat Client Otalk zusammen läuft.
Diese Komponenten können gerne einzeln installiert und konfiguriert werden.
Da dies aber etwas aufwendiger ist, will ich hier nur auf die Installations Doku verweisen und den schnellen Weg für debianbasierte Systeme direkt zeigen. Los gehts

Zunächst müssen die Software Properties (wenn nicht schon vorhanden) für den Befehl add-apt-repository installiert werden

sudo apt-get -y install software-properties-common

Repository für Jitsi Meet hinzufügen

sudo add-apt-repository 'deb http://download.jitsi.org/nightly/deb unstable/'
sudo wget -qO - https://download.jitsi.org/nightly/deb/unstable/archive.key | apt-key add -

Jitsi Meet installieren

sudo apt-get update
sudo apt-get -y install jitsi-meet

Die Installation läuft voll automatisch ab und es wird nur nach dem Hostnamen und dem gewünschten Zertifikat gefragt. In diesem Fall wird es automatisch generiert.

jitsi meetjitsi meet

Setting up jicofo (1.0-37-1) ...
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Stopping jicofo: jicofo doesn't seem to be running.
Starting jicofo: jicofo started.
Processing triggers for ureadahead (0.100.0-16) ...
Setting up jitsi-meet-prosody (1.0.380-1) ...
Generating a 4096 bit RSA private key
...............................................++
.................................++
writing new private key to '/var/lib/prosody/jitsit-meet.key'
-----
 * Restarting Prosody XMPP Server prosody                                                                                                                                                                  [ OK ]
Stopping jitsi-videobridge: jvb stopped.
Starting jitsi-videobridge: jvb started.
Stopping jicofo: jicofo stopped.
Starting jicofo: jicofo started.
Setting up jitsi-meet (1.0.380-1) ...
 

Damit ist die Installation auch schon beendet und ihr könnt unter https://IPAdresse/ euren Jitsi Meet Server aufrufen und loslegen. Für Sreensharing via Browser ist, bisher leider nur für den Google Chrome Browser, der Jitsi Desktop Streamer verfügbar.

jitsi-meet-server

Es handelt sich beim aktuellen Jitsi Meet Server natürlich um keine finale Version, da verhält es sich ähnlich wie beim WebRTC Standard ansich. Dennoch lassen sich mit dem WebRTC Server bereits verschlüsselte Videokonferenzen über die ganze Welt abhalten.

Sollte kein eigener Server vorhanden sein, kann dieses Web Tool jederzeit auf meet.jit.si getestet werden, vorausgesetzt ein Chrome Browser ist zur Hand.

LAMP Server mit SSL - Linux, Apache, MySQL, PHP unter Ubuntu 14.04 in 10min installieren

Im Prinzip hatte ich bereits ein fast komplette Anleitung für einen LAMP Server unter Ubuntu verfasst. Zu finden ist sie im Artikel "Wordpress Installation in 5 Minuten".

Dennoch möchte ich heute eine etwas ausführlichere Anleitung niederschreiben, die als Grundlage für weitere Installationen dienen kann.

1. Apache Server installieren

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install apache2

Der Server startet direkt nach der Installation und ist unter http://localhost zu erreichen.

lamp-apache2-server

Weitere Konfigurationen wie bzw. das Härten sind in anderen Anleitungen zu finden. Siehe beispielsweise den Artikel "Hardening Apache".

Hier geht es nun mit dem MySQL Server weiter.

2. MySQL Server installieren

sudo apt-get install mysql-server

Das verlangte root Passwort vergeben und zwingend merken.

sudo apt-get install libapache2-mod-auth-mysql php5-mysql

lamp-mysql-server

Um die Installation abzurunden und eine erste Härtung vorzunehmen, sollte folgendes Skript ausgeführt werden.

sudo /usr/bin/mysql_secure_installation

Remove anonymous users? [Y/n] y ... Success!

Disallow root login remotely? [Y/n] y ... Success!

Remove test database and access to it? [Y/n] y

- Dropping test database...

- Removing privileges on test database... ... Success!

Reload privilege tables now? [Y/n] y ... Success!

Falls keine Testdatenbank existiert, kann diese auch nicht gelöscht werden, es erscheint die Meldung "Failed Database doesn't exists".

Der MySQL Server ist nun fertig eingerichtet.

Mit dem Befehl "mysql -u root -p" könnt ihr euch auf die SQL Konsole einloggen, um Datenbanken anzulegen.

Sollte eine andere IP als 127.0.0.1 verwendet werden, so muss "sudo nano /etc/mysql/my.cnf" editiert werden:

bind-address = 127.0.0.1

3. PHP5 installieren

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Neben dem bereits weiter oben installierten php5-mysql Paket gibt es weitere Pakete, die installiert werden können, je nach Anforderung.

Eine Liste der bereits installierten Module kann mit Hilfe einer "info.php" abgerufen werden. Hierzu ist noch etwas Konfigurationsaufwand nötig:

sudo nano /var/www/html/info.php

lamp-php-info

Danach kann unter http://localhost/info.php eine Übersicht der Installation abgerufen werden.

Weitere Module lassen sich mit "apt-cache search php5" auflisten und mit "sudo apt-get install modulname" nachinstallieren.

lamp-php5

Abschluss

Die Installation des LAMP Servers ist nun abgeschlossen. Jedoch ist es sinnvoll den Server weiter zu härten.

Es empfiehlt sich ein Umstellung auf HTTPS, sowie das Abschalten unsicherer Protokolle wie SSL 3.0.

Die Umstellung auf HTTPS werde ich noch einmal kurz erläutern.

4. LAMP Server auf HTTPS umstellen

Zunächst muss das SSL Modul installiert werden.

sudo a2enmod ssl

sudo service apache2 restart

Danach sollte ein Zertifikat erzeugt werden. Um die etwas kryptische Zeile zu verstehen, gebe ich eine eine kurze Erklärung zu dem Befehl.

  • Es wird ein selbstsigniertes Zertifikat erzeugt, dieses ist 1 Jahr gültig ("-days 365") und hat einen 4096bit RSA Schlüssel ("-newkey rsa:4096").
  • Die Option "-x509" sorgt für ein selbstsigniertes Zertifikat und keine Anfrage für einen CA (csr).
  • Indem der Wert "-nodes" verwendet wird, fällt die Abfrage nach einer Passphrase für den Schlüssel weg.

sudo mkdir /etc/apache2/crypt

sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/crypt/srv.key -out /etc/apache2/crypt/srv.crt

Bitte darauf achten den richtigen CN zu vergeben.

Nachdem das Zertifikat erstellt wurde, muss dem Apache Server beigebracht werden, auf HTTPS zu lauschen.

Hierzu müssen ein paar Werte angepasst werden.

sudo nano /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile /etc/apache2/crypt/srv.crt

SSLCertificateKeyFile /etc/apache2/crypt/srv.key

Folgende Werte sollten zusätzlich eingefügt werde, um unsichere Protokolle zu deaktivieren:

SSLProtocol All -SSLv2 -SSLv3

SSLCompression off

Die neue Konfiguration muss abschließend aktiviert werden

sudo a2ensite default-ssl.conf

sudo service apache2 restart

Zur Erklärung: Durch den Befehl “a2ensite” wird ein symbolischer Link im sites-enabled Verzeichnis auf die .conf Datei des virtuellen Hosts im sites-available Verzeichnis gesetzt.

lamp-apache2-server-https

5. Ende

Nun ist der LAMP Server unter einer HTTPS Adresse zu erreichen. Für eine produktive Nutzung müssen natürlich noch weitere Schritte unternommen werden, auf die ich hier nicht weiter eingehe.

Die Grundinstallation ist jedoch geschafft und der Server kann zu Testzwecken verwendet werden.