Artikel mit Tag konfiguration

Aktuellen Rhythmbox Player auf Ubuntu Desktop installieren und Zugriff auf eine Synology Diskstation einrichten

Rhythmbox auf Ubuntu installieren und Zugriff auf Synology Diskstation einrichten

Ein bekannter Medienplayer auf Ubuntu Desktop Installationen ist Rhythmbox. Neben dem VLC Player gehört er auch bei mir zu den meistgenutzten Playern.
Da in vielen Haushalten inzwischen ein NAS (Network Attached Storage) für die zentrale Verwaltung von Medien im Betrieb ist, will ich kurz zeigen wie sich der Zugriff darauf mit Rhythmbox verwirklichen lässt.
Ausgangslage ist ein Ubuntu Desktop 14.04 und eine Synology Diskstation mit aktiviertem DLNA

Installation des aktuellen Rhythmbox Players

Ubuntu bringt eine Version des Players mit, es kann aber nicht schaden eine aktuelle Version zu installieren.


sudo add-apt-repository ppa:fossfreedom/rhythmbox
sudo apt-get update
sudo apt-get install rhythmbox

Installation des Rhythmbox Plugins

Der Player unterstützt eine Reihe von Plugins, welche die Bedienung und das Verhalten verbessern. Für das Streaming werden diese nicht zwingend benötigt, aber ein Tray Icon oder ein Equalizer kann nie schaden

sudo add-apt-repository ppa:fossfreedom/rhythmbox-plugins
sudo apt-get update
sudo apt-get install rhythmbox-plugin-complete

rhythmbox-plugin

Installation von Grilo zur Unterstützung von UPnP/DLNA Streaming

Für die DLNA Unterstützung habe ich mich für Grilo entschieden. Das Open Source Framework unterstützt neben UPnP/DLNA diverse Video Dienste. Darüber hinaus lässt es sich Dank PPA einfach als Plugin in Rhythmbox integrieren.

sudo add-apt-repository ppa:grilo-team/ppa
sudo apt-get update
sudo apt-get install grilo-plugins-0.2

Aktivierung des Grilo Plugins in der Rhythmbox

Als letzter Schritt muss lediglich das Plugin im Player aktiviert werden. Danach sollten die Synology Diskstation und andere unterstützte Geräte in der Menüleiste auftauchen. Voraussetzung dafür ist, dass die Geräte sich im selben Netz befinden und konfiguriert sind.

Gespielte Songs auf Twitter teilen

Als kleine Dreingabe habe ich ein Plugin auftreiben können, welches die gespielten Songs auf Twitter teilt. Also nicht das MP3, nur den Interpret und den Song wink Falls jemand der Welt seine Musiksammlung mitteilen möchte, der klicke hier.

PostgreSQL 9.4 Server auf Ubuntu installieren und mit der neuen SQL Funktion ALTER SYSTEM konfigurieren

Heute wird ein kleiner Ausflug in die Datenbank Welt gemacht.
Grund dafür ist die neue Version der Open Source Datenbank PostgreSQL Version 9.4., welche Ende 2014 veröffentlicht wurde.
Neben zahlreichen Verbesserungen bietet diese mit "ALTER SYSTEM" die Möglichkeit die Systemkonfiguration direkt aus der SQL Konsole vorzunehmen.
Mit dieser Neuerung lassen sich alle Systemeinstellungen der postgresql.conf mit Hilfe einer postgresql.conf.auto überschreiben.
Die postgresql.auto.conf wird beim Start als letztes geladen und enthält die mit "ALTER SYSTEM" gesetzten Werte.

Zunächst ist aber etwas Vorarbeit notwendig.
Referenzsystem ist wie immer Ubuntu Server 14.04

postgresql


Installieren des PostgreSQL Servers 9.4

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql

Einloggen in die PostgreSQL Konsole

Zunächst sollte das Passwort geändert werden

sudo -u postgres psql postgres
postgres=#
             \password
                        Enter new password:
                        Enter it again:
            \q

Erfolgt ein Login nicht direkt auf dem Localhost, sind weitere Konfiguration notwendig

Die Konfiguration der Zugriffsrechte erfolgen unter "/etc/postgresql/9.4/main/pg_hba.conf"

Verbindungsinformationen anzeigen

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Anlegen eines neuen Benutzers mit Superuser Rechten

Dieser Schritt dient der Übersicht, für die Verwendung des SYSTEM ALTER Befehls kann auch der Standardbenutzer "postgres" verwendet werden.
Superuser Rechte sind aber zwingend notwendig.

sudo -u postgres createuser -s -D -P yolo

Erklärung der Befehle

  • -D, --no-createdb         role cannot create databases (default)
  • -P, --pwprompt            assign a password to new role
  • -s, --superuser              role will be superuser

Alternativ kann ein Benutzer auch interaktiv angelegt werden

sudo -u postgres createuser --interactive yolo2

Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

Datenbank in PostgreSQL anlegen

Auch dieser Schritt dient nur der Übersicht. Für die Systemkonfiguration muss dies vorgenommen werden.

sudo -u postgres createdb -O yolo datenbank

Erklärung des Befehls

  • -O, --owner=OWNER            database user to own the new database

Eingerichtete Benutzer und Rechte anzeigen

postgres=# \du

List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 yolo      | Superuser                                      | {}


   


PostgreSQL mit ALTER SYSTEM konfigurieren

Nach ein paar Grundlagen nun der Schritt zur Konfiuration via ALTER SYSTEM
Im Folgenden möchte ich ein paar Werte setzen, die bei einer Grundinstallation gerne anfallen.
Als Grundlage habe ich pgTune genommen (siehe Artikel)

Folgende Werte sollen mit SQL Kommandos angepasst werden

max_connections = 200
shared_buffers = 512MB
effective_cache_size = 1536MB
work_mem = 2621kB
maintenance_work_mem = 128MB
checkpoint_segments = 64
checkpoint_completion_target = 0.9
wal_buffers = 16MB


Zunächst muss ein Login erfolgen, danach können Befehle mit der Kombination ALTER SYSTEM SET abgesetzt werden.

sudo -u postgres psql postgres

postgres=# ALTER SYSTEM SET max_connections TO 200;
postgres=# ALTER SYSTEM SET shared_buffers TO 512;
postgres=# ALTER SYSTEM SET effective_cache_size = '1536MB';
postgres=# ALTER SYSTEM SET work_mem = '2621kB';
postgres=# ALTER SYSTEM SET checkpoint_segments TO 64;
postgres=# ALTER SYSTEM SET wal_buffers ='16MB';
postgres=# ALTER SYSTEM SET checkpoint_completion_target TO 0.9;
postgres=# ALTER SYSTEM SET wal_buffers = '16MB';

Neuladen der Konfiguration

Wichtig: Die Änderungen werden erst wirksam, sobald die Konfiguration neu eingelesen wurde.

Die Konfiguration lässt sich mit dem folgenden Kommando neu einlesen, ohne das ein Datenbankverbindung verloren geht.

postgres=# SELECT pg_reload_conf();

Hier ist zu bedenken das manche Einstellungen, wie z.B. "max_connections" einen richtigen Server Neustart benötigen, bevor sie greifen

sudo service postgres restart

Kontrolle der vorhanden Werte

Gesetzte Konfigurationen lassen sich ebenfalls schnell und einfach per SQL Kommando auslesen. Der Aufruf vor und nach einer Änderung bietet sich an.

postgres=# SHOW shared_buffers;
 shared_buffers
----------------
 400MB
(1 row)

Einzelne Systemwerte auf Standard zurücksetzen

postgres=# SHOW checkpoint_completion_target;
 checkpoint_completion_target
------------------------------
 0.9
(1 row)

postgres=# ALTER SYSTEM SET checkpoint_completion_target TO DEFAULT;
ALTER SYSTEM

postgres=# SELECT pg_reload_conf();
 pg_reload_conf
----------------
 t
(1 row)

postgres=# SHOW checkpoint_completion_target;
 checkpoint_completion_target
------------------------------
 0.5
(1 row)

Alle Werte der postgresql.auto.conf zurücksetzen

postgres=# ALTER SYSTEM RESET ALL;

Wie bereits oben erwähnt, werden die gesetzten Konfigurationen in eine postgresql.auto.conf geschrieben.
Diese befindet sich nicht im Verzeichnis der postgresql.conf sondern unter

nano /var/lib/postgresql/9.4/main/postgresql.auto.conf

    # Do not edit this file manually!
    # It will be overwritten by ALTER SYSTEM command.
    wal_level = 'hot_standby'
    shared_buffers = '512'
    max_connections = '200'
    effective_cache_size = '1536MB'
    work_mem = '2621kB'
    checkpoint_segments = '64'
    wal_buffers = '16MB'


Troubleshooting

Im Log taucht folgende Meldung auf:

LOG:  parameter "wal_buffers" cannot be changed without restarting the server
LOG:  configuration file "/var/lib/postgresql/9.4/main/postgresql.auto.conf" contains errors; unaffected changes were applied

Wie die Fehlermeldung selbst erklärt, ist ein Neustart des Servers mit "sudo service postgresql restart" notwendig.

Fazit

Die neue Möglichkeit in 9.4 ein System im laufenden Betrieb zu konfigurieren, ist wirklich praktisch, besonders für diejenigen die eine SQL Konsole ihre Heimat nennen. Dennoch ist Vorsicht geboten, denn auf den ersten Blick ist nicht ersichtlich, ob eine postgresql.auto.conf geladen wird und Konfigurationen in der postgresql.conf nicht beachtet werden.

PgTune - Performance Einstellungen für PostgreSQL Datenbanken automatisch erstellen

Nachdem ich die Tage schon einen Artikel über PostgreSQL hatte, will ich euch noch ein kleines Tool für den optimalen Betrieb eines Datenbankservers ans Herz legen.

PgTune

ist ein Webservice, der euch die wichtigsten Werte für eure postgresql.conf automatisch berechnet. Egal ob Windows oder Linux, der Service beherrscht beide Systeme.

PgTune

Für die richtigen Einstellungen wird zusätzlich die Einsatzart und der verwendete Speicher benötigt. Danach können alle benötigten Werte generiert werden.

Praktischerweise werden für PostgreSQL Datenbanken unter 9.3 auch die Werte für /etc/sysctl.conf (kernel.shmmax und kernel.shmall) berechnet.

Gehe zu PgTune 

ShadowCrypt - Verschlüsselte Nachrichten auf Facebook, Twitter, Reddit und anderen Webseiten teilen

Dem versierten Surfer dürften in letzter Zeit eventuell kryptische Nachrichten im Netz aufgefallen sein, die ungefähr so aussehen:

"=?shadowcrypt-4ff95cef5a76149b687f7b54908cd2fa168794e214cedf9ee1a5df1dfec13057?fYtRaaL8maPP6ud0RldZhAEhO1KGy8pCqOMeSuery19100141260077"

Dabei handelt es sich um eine Form, öffentliche Nachrichten auf Plattformen wie Facebook, Twitter, Reddit und Co zu verschlüsseln.

ShadowCrypt-Playground

ShadowCrypt

ShadowCrypt ist eine Chrome Extension, die von der University of California, Berkeley und der University of Maryland entwickelt wird. Die Erweiterung soll zeigen, dass sichere Verschlüsselung schnell und einfach in bekannte Webseiten integriert werden kann. Laut den Forschern wurde das Add-on bereits auf 16 großen Webseiten getestet.

Im Prinzip soll es, anders als das etwas komplizierte PGG, eine Verschlüsselung dem normalen Anwender näher bringen.

Installation und Konfiguration

Die Installation der Erweiterung wird in einem kurzen Video erklärt. Zunächst muss natürlich die Erweiterung heruntergeladen werden.

Download ShadowCrypt Chrome

Danach kann über die Optionen in den Erweiterungen "chrome://extensions/", entweder einer der vorhandenen Schlüssel verwendet oder ein eigener für neue Webseiten hinterlegt werden. Hier gilt es zu beachten, dass die bereits hinterlegten Schlüssel Nachrichten für alle Shadowcrypt Nutzer gelten. Das heißt eure Nachrichten können von allen anderen, die auch das gleiche Add-on installiert haben, gelesen werden.

Um eine Nachricht für eure Freunde zu verschlüsseln, muss ein neuer Schlüssel angelegt werden.

shadowcrypt-key

  1. Adresse der Seite hinterlegen
  2. Schlüsselname vergeben
  3. Individuelle Farbe angeben
  4. Ein Beschreibung hinterlegen, damit man weiß welcher Schlüssel für wen gedacht ist
  5. Ein Passphrase hinterlegen
  6. Den fertigen String an diejenigen verteilen, die Nachrichten lesen dürfen

Der Gegenüber muss in diesem Fall ebenfalls die Erweiterung installieren und diesen Key importieren, damit Nachrichten entschlüsselt werden können.

ShadowCrypt

Einbindung in Webseiten

Die Einbindung in Webseiten erfolgt automatisch, wenn die Erweiterung aktiv ist. Zu erkennen ist das an einem geschlossenen Schloss.

Dieses funktioniert leider noch nicht so flüssig wie erhofft. So wird beispielsweise bei Facebook der Bestätigungsbutton für einen Beitrag nicht immer eingeblendet. Bei Reddit gab es wiederum keine Probleme.

In dieser frühen Phase des Tools ist dies jedoch verkraftbar.

shadowcrypt-fb-post

Sollten in der Konfiguration mehrere Schlüssel für die gleiche Seite hinterlegt worden sein, beispielsweise für Freunde und Arbeitskollegen, so können diese im Optimalfall vor einem Post ausgewählt werden.

shadowcrypt-keys

Wenn Alles richtig eingestellt wurde, sollte eine verschlüsselte Nachricht für die Öffentlichkeit wie folgt aussehen.

shadowcrypt-fb

Für die auserwählten User mit einem Schlüssel, bzw. alle anderen Shadowcryptnutzer, wenn die vorinstallierten Schlüssel verwendet werden, wird der dahinter liegende Text automatisch entschlüsselt und angezeigt.

shadowcrypt-fb-2

Fazit

Sicherlich ist diese neue Methode eine praktische Alternative für PGP, dadurch dass nicht nur Gmail und Co sondern auch soziale Netzwerke unterstützt werden, bietet sich ShadowCrypt gerade zu an. In dieser frühen Phase der Entwicklung gibt es aber sicherlich noch einige Hürden zu nehmen, um diese Verschlüsselung mit Hilfe einer Erweiterung dem normalen Nutzer näher zu bringen.

Es fehlt eine flüssige Einbindung in bekannte Seiten und eine ausführliche Erklärung in der Konfiguration, welcher Wert welchen Zweck erfüllt. Sind diese Hürden genommen, hat ShadowCrypt einiges Potential, um sichere Kommunikation im Alltag zu gewährleisten.

Als Verschlüsselungsverfahren wird übrigens AES-CCM eingesetzt. Weitere technische Details lassen sich dem Whitepaper entnehmen. 

Anleitung - Poodle SSL 3.0 Lücke in Apache, Nginx oder Postfix deaktivieren

Seit ein paar Tagen ist der Pudel los. Zumindest bei einigen. Gemeint ist die neue, von Google entdeckte SSLv3 Lücke. Diese erlaubt bei bestimmter Konstellationen einen Angriff auf die verwendeten Systeme. Um so einen Angriff zu verhindern haben Browserhersteller bereits vorgebeugt und wollen SSLv3  aus dem eigenen Browser verbannen (siehe Mozilla).

Ich möchte euch kurz zeigen, wie die Deaktivierung von SSLv3 unter Apache und Nginx funktioniert. Zunächst sollte aber getestet werden, ob der Server SSLv3 überhaupt freigeschaltet hat.

Apache oder Nginx auf SSLv3 Lücke testen

Es genügt ein einfacher Konsolenbefehl, um abzuprüfen, wie es mit dem Server steht

openssl s_client -connect REMOTE_SERVER:443 -ssl3

Sollte die Verbindung via SSLv3 aktiviert sein, erhaltet ihr bei einen erfolgreichen Handshake ein paar Werte zurück. Hier bei einem Apache Server

SSL handshake has read 1260 bytes and written 322 bytes

New, .../SSLv3, Cipher is DHE-RSA-AES256-SHA

Ist SSLv3 bereits deaktiviert, werden Fehlermeldungen ausgegeben

CONNECTED(00000003)

139957739407008:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1260:SSL alert number 40

139957739407008:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:

no peer certificate available

No client certificate CA names sent

SSL handshake has read 7 bytes and written 0 bytes

New (NONE), Cipher is (NONE)

Secure Renegotiation IS NOT supported

apache

Apache Server - SSLv3 abschalten

Im Prinzip hatte ich es schon einmal beim Thema Hardening Apache Server erwähnt, wie bestimmte Protokolle festgelegt werden können. Es genügt folgende Zeile in der "default-ssl.conf" bzw. "ssl.conf" zu hinterlegen, um SSLv3 zu unterdrücken.

sudo nano /etc/apache2/mods-available/ssl.conf

SSLProtocol All -SSLv2 -SSLv3

Alternativ können auch einfach alle Protokolle außer TLS deaktiviert werden. Dazu werden mit Minus alle blockiert und mit Plus die gewünschten Protokolle hinzugefügt.

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

Alternativ dazu können mit dem Befehl "SSLCipherSuite" die gewünschten Chiffren angegeben, bzw. eine Priorisierung festlegt werden. Ich hatte dies im besagten Hardening Artikel bereits beschrieben. Weiter Details findet ihr hier.

Danach wie nach jeder Änderung der Konfiguration

sudo service apache2 restart 

nginx

Nginx Server - SSLv3 deaktvieren

Für den inzwischen auf Platz 1. gelisteten Webserver (der 10 000 größten Webseiten) gilt ein ähnliches Vorgehen, wie beim Kollegen Apache. Auch hier hatte ich bereits einen Artikel verfasst.

In der Config muss lediglich SSL 3.0 entfernt werden.

sudo nano /etc/nginx/nginx.conf

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

sudo service nginx restart 

Gleiches gilt für die hinterlegten Ciphersuites. Hier kann beim Apache Webserver nachgeschaut werden. 

SSLv3 lässt sich nicht deaktivieren, was tun?

Auf manchen Servern ist es nicht möglich SSLv3 zu deaktivieren, welche Gründe es auch immer haben mag. Hier bleibt die Möglichkeit auf OpenSSL 1.0.1j, 1.0.0o bzw. 0.9.8zc zu aktualisieren. Denn in den aktuellen Versionen ist TLS_FALLBACK_SCSV aktiv, was Schutz vor Poodle bietet. Ob OpenSSL nach einem Update akutell ist , lässt sich dies mit SSL LABS prüfen.

Sollte auch ein Update auf neuere Versionen nicht möglich sein, ist es möglich schädliche ChipherSuites zu verbieten.

Folgende Cipher Suites sollen NICHT enthalten sein, wenn ein Poodle Angriff verhindert werden soll.

IDEA-CBC-SHA, EXP-DES-CBC-SHA, DES-CBC-SHA, DES-CBC3-SHA, EXP-DH-DSS-DES-CBC-SHA, DH-DSS-DES-CBC-SHA, DH-DSS-DES-CBC3-SHA, EXP-DH-RSA-DES-CBC-SHA, DH-RSA-DES-CBC-SHA, DH-RSA-DES-CBC3-SHA, EXP-DHE-DSS-DES-CBC-SHA, DHE-DSS-CBC-SHA, DHE-DSS-DES-CBC3-SHA, EXP-DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC3-SHA, EXP-ADH-DES-CBC-SHA, ADH-DES-CBC-SHA, ADH-DES-CBC3-SHA, EXP-RC2-CBC-MD5, IDEA-CBC-SHA, EXP-DES-CBC-SHA, DES-CBC-SHA, DES-CBC3-SHA, EXP-DHE-DSS-DES-CBC-SHA, DHE-DSS-CBC-SHA, DHE-DSS-DES-CBC3-SHA, EXP-DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC-SHA, DHE-RSA-DES-CBC3-SHA, ADH-DES-CBC-SHA, ADH-DES-CBC3-SHA, AES128-SHA, AES256-SHA, DH-DSS-AES128-SHA, DH-DSS-AES256-SHA, DH-RSA-AES128-SHA, DH-RSA-AES256-SHA, DHE-DSS-AES128-SHA, DHE-DSS-AES256-SHA, DHE-RSA-AES128-SHA, DHE-RSA-AES256-SHA, ADH-AES128-SHA, ADH-AES256-SHA

postfix

Postfix - SSL 3.0 ausschalten

Auch auf dem bekannten Mailserver Postfix lässt sich SSL 3.0 unterbinden, hier genügt ein einfach Eingriff  "/etc/postfix/main.cf"

sudo nano /etc/postfix/main.cf 

smtpd_tls_security_level = encrypt

smtpd_tls_mandatory_ciphers = high

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

smtpd_tls_protocols = !SSLv2 !SSLv3


smtp_tls_protocols = !SSLv2, !SSLv3

smtp_tls_security_level = encrypt

smtp_tls_mandatory_ciphers = high

smtp_tls_mandatory_protocols = !SSLv2 !SSLv3

sudo service postfix restart


Letzendlich gilt es, die eigenen Server immer im Auge zu haben und auf aktuelle Sicherheitslücken zu scannen.