Subsonic und SSL NGINX

So jetzt habe ich es endlich hinbekommen. Ich habe mich mit dem Nginx Webserver doch etwas mehr rum ärgern dürfen.

wie man Subsonic unter Ubuntu installiert, steht hier beschrieben

This installation option applies to Debian Linux, including Ubuntu.

First, install Java: sudo apt-get install openjdk-6-jre
Download the Subsonic .deb package and install it: sudo dpkg -i subsonic-x.x.deb

Notice that the installer configures your system to start Subsonic automatically when booting. After installing, open the Subsonic web page on http://localhost:4040.

Change user

By default the Subsonic process is run as the root user. To improve security it is strongly advised that you run it as a dedicated user with less powerful privileges. You can specify this user by setting the SUBSONIC_USER variable in /etc/default/subsonic.

Note that non-root users are by default not allowed to use ports below 1024. Also make sure to grant the user write permissions in the music directories, otherwise changing album art and tags will fail.

Advanced configuration

To change the port number, Java memory settings or other startup parameters, edit the SUBSONIC_ARGS variable in /etc/default/subsonic. To restart Subsonic, do sudo service subsonic restart

Troubleshooting

Check the logs in /var/subsonic.

Damit ist der Subsonic Server installiert. Aktuell läuft er mit Root rechten. Das sollte schnellstens geändert werden.

Also legen wir noch einen neuen Benutzer unter Ubuntu an.

sudo useradd -r -s /bin/false USERNAME

Unter diesem Benutzer lassen wir dann Subsonic laufen.

Das tragen wir dann in der Subsonic Config Datei ein

sudo nano /etc/default/subsonic

# The user which should run the Subsonic process. Default “root”.
# Note that non-root users are by default not allowed to use ports
# below 1024. Also make sure to grant the user write permissions in
# the music directories, otherwise changing album art and tags will fail.

SUBSONIC_USER=UserName

Wenn wir schon in der Config Datei unterwegs sind, fügen wir auch noch gleich den SSL Support hinzu sowie etwas mehr RAM.

SUBSONIC_ARGS=”–https-port=8443 –max-memory=512″

Danach sollte dieser Benutzer noch Rechte im Verzeichnis geben wo die Musik liegt Beispiel /var/musik
Sonst klappt das Indizieren nicht und viele weitere Dinge nicht.

Jetzt geht es dran mit Port 8443 ist nicht so schön nach außen zu kommunizieren.
Ihr habt nun verschiedene Möglichkeiten.

IPTABLES
Wenn der Server daheim hinter einem Router steht Port von außen 443 und innen nach 8443 weiterleiten
NGINX SSL Proxy

Ich verwende letzte Variante

sudo apt-get install nginx

Danach ist der Webserver installiert.

Jetzt erstellt man unter /etc/nginx/sites-available/subsonic.conf eine Datei mit folgendem Inhalt.

server{
listen 443;

ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl on;
server_name server.local;
root /usr/share/nginx/html;
index index.html index.htm;

location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://localhost:8443;
}
}

Natürlich mit einem symlinc nach sudo ln -s /etc/nginx/sites-available/subsonic.conf /etc/nginx/sites-enabled/subsonic.conf und einem restart von nginx ist die Config nun scharf.

Hier nochmal an Rancor einen Dank. Da ich fast abgedreht hätte an diesem kleinen Config Schnippel. Ich hatte so einen Zusammen nur hatte ich da einen kleinen Fehler drin.

Damit ist der Subsonic Server unter https://server.local mit einer SSL Verbindung zu erreichen. Ohne Angaben irgendwelcher Port Nr. etc. Damit ist der Zugriff von fast allen Netzen in denen der Port 443 freigeben ist, zu erreichen.

Ich habe in der Config zwar ein Cert hinterlegt aber er nimmt doch das Standard Cert von Subsonic, was ich nicht will. Daher hinterlegen wir im Subsonic Server noch ein eigenes Cert.

Dazu erzeugen wir ein eigenes Cert.

sudo keytool -genkey -alias sitename -keyalg RSA -keystore subsonic.jks -keysize 4096 -validity 35600

Ihr könnt natürlich hier die Werte ändern wie ihr gerne möchtet, also nicht so lange gültig ist etc.

Wenn das Cert erstellt ist kopieren wir es nach
sudo cp subsonic.jks /etc/ssl/certs/

Dann editieren wir noch folgende Datei

sudo nano /usr/bin/subsonic

In Nano die alt + C Taste drücken, damit seht ihr die Zeilen
Ihr müsst in Zeile 113 springen und dort zwei Zeilen hinzufügen. Diese sind nicht vorhanden.

-Dsubsonic.ssl.keystore=/etc/ssl/certs/subsonic.jks
-Dsubsonic.ssl.password=123456

Danach noch den Subsonic neustarten.

sudo /etc/init.d/subsonic restart

Danach liefert Subsonic die SSL Verbindung mit eurem neuen SSL Cert aus.

Dazu gibt es noch einen alten Forums Eintrag wo es ähnlich beschrieben ist.

http://forum.subsonic.org/forum/viewtopic.php?f=2&t=7548

Linux und Stromsparen Notebook

Als erstes braucht man Powertop, das zeigt einem an wie gut die Stromspar Modi am Notebook ziehen.

und dann benötigt man noch

https://launchpad.net/~linrunner/+archive/tlp

TLP is a power management tool for Linux. It brings you the benefits of advanced power management without the need to understand every technical detail.

Project homepage: http://linrunner.de/tlp

durch das installiren von TLP konnte ich ca. 1 Stunde Akku Laufzeit rausholen

RHEL 6 SWAP Partition erweitern

Vor der Aufgabe stand ich vor ein paar Tagen. Adding and Managing RHEL 6 Swap Space

Es ist total einfach. Hier läuft das in einer VM und die SWAP ist eine Extra Platte, dieser Platte geben wir mal etwas mehr Plattenplatz. Jetzt sollte man diesen Plattenplatz noch dem SWAP zu ordnen, damit es genutzt werden kann.

fdisk -cul /dev/sdd

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
181 heads, 40 sectors/track, 5793 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000162ca

Device Boot Start End Blocks Id System
/dev/sdd1 2048 10485759 5241856 82 Linux swap / Solaris

Damit sehen wir wie groß die SWAP Partition ist. Ca. 5 GB

SWAP Datei ausschalten und prüfen ob es auch wirklich deaktviert ist

# swapoff /dev/sdd1
# cat /proc/swaps
Filename Type Size Used Priority

FDISK aufrufen mit folgendem Befehl um die Disk zu partitionieren.

# fdisk -cu /dev/sdd

Dann stehen einem gewisse Befehle zur Verfügung
p steht für print
d für delete
t für toggle
w für schreiben

Damit ihr seht wie das genau funktioniert hier mal ein vollständiger Auszug

Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
181 heads, 40 sectors/track, 5793 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000162ca

Device Boot Start End Blocks Id System
/dev/sdd1 2048 10485759 5241856 82 Linux swap / Solaris

Command (m for help): d
Selected partition 1

Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
181 heads, 40 sectors/track, 5793 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000162ca

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039

Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
181 heads, 40 sectors/track, 5793 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000162ca

Device Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 83 Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)

Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
181 heads, 40 sectors/track, 5793 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000162ca

Device Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Partition formatieren

# mkswap /dev/sdd1
Setting up swapspace version 1, size = 20970492 KiB
no label, UUID=2c13a1f2-b245-40c6-b104-f43b1465156e

SWAP aktivieren

# swapon /dev/sdd1
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sdd1 partition 20970488 0 -1

die obige UUID ersetzt die alte UUID und beim Neustart geht die SWAP Partition nicht verloren.
Das muss noch in FSTAB geschrieben werden die UUID

# nano /etc/fstab

Das war alles, total einfach und manche Anleitungen hantieren hier mit DD und sonstwas.

Adding and Managing RHEL 6 Swap Space