Click’n’Load mit entfernten JDownloader- oder pyLoad-Instanzen

Wer pyLoad oder JDownloader auf einem Server oder einem entfernten Gerät benutzt, wünscht sich vielleicht die Click’n’Load-Funktion, die das Hinzufügen von Links sehr einfach macht. Um sie nutzen zu können müssen 2 Dinge gemacht werden:

weiterlesen

Subversion: SVN Repository-Server mit Apache2

Ein Freund fragte mich kürzlich, ob ich ihm einen SVN-Server aufsetzen könne. Ich habe selbst von SVN keine Ahnung und habe auch nicht vor mich einzulesen, da ich mit git ganz fit bin. Das ist also nur eine kleine Gedankenstütze für mich.

Voraussetzungen

  • funktionierender Apache2 auf einem Linuxsystem (hier: Debian)

Zielsetzung

Ziel soll es sein, dass ein Freund sich per SSH auf meinem Server einloggen kann und dann per „svnadmin“ die Repositories erstellt. Danach kann er über den Apache-VHost svn.misterunknown.de auf diese Repos zugreifen und diese verändern. Es gibt allerlei externe Programme, die mit dem Server kommunizieren können, beispielsweise TortoiseSVN.

Vorgehen

Als erstes hab ich die SVN-Erweiterung von Apache installiert.

apt-get install libapache2-svn

Anschließend kann man sich die (auskommentierte) Default-Konfiguration mal angucken (im Apache 2.4 heißt die Datei /etc/apache2/mods-available/dav_svn.conf). Ich dort allerdings alles auskommentiert gelassen und einen frischen VHost aufgesetzt:

<VirtualHost *:44
        ServerName svn.misterunknown.de
        ServerAdmin webmaster@misterunknown.de

        SSLEngine On # man sollte Verschlüsselung benutzen
        ...

        <Location />
                DAV svn
                SVNParentPath /data/svn
                SVNListParentPath on

                AuthType Basic # Authentifizierung einrichten
                ...
                <LimitExcept GET PROPFIND OPTIONS REPORT>
                        Require group svn
                </LimitExcept>
        </Location>

        DocumentRoot /data/svn
        <Directory /data/svn>
                Require all granted
                AllowOverride None
        </Directory>

        ... # normales Error- und Access-Log definieren
        CustomLog /var/log/apache2/vhosts/svn.misterunknown.de-svn.log "%t %u %{SVN-ACTION}e" env=SVN-ACTION
</VirtualHost>

weiterlesen

Debian-Server: Plex Media Server installieren

Plex ist ein kostenloser, closed-source Media-Server mit DLNA-Unterstützung, Transcoding und vielen Apps für Smartphones, Smart-TVs etc.

Im privaten Umfeld mag es ausreichen, das Paket zu installieren und loszulegen. Im Server-Umfeld, vielleicht sogar mit direkter Internetverbindung sollte man einige Sachen besser machen. Da die Software nicht quelloffen ist, stellt sie ein besonderes Sicherheitsrisiko dar. Diese Anleitung hält sich an bestimmte Festlegungen, die ich für meine Server getroffen habe, die Ihr natürlich auf eure Umgebungen anpassen könnt. Grundsätzlich gilt: Wer nicht genau weiß, was er tut, sollte einen solchen Server nicht im Internet betreiben.

Vorbereitungen

Als erstes legen wir einen Benutzer an, unter dem die Software dann laufen soll. Standardmäßig läuft Plex mit Root-Rechten, was im Falle einer Sicherheitslücke äußerst problematisch werden kann. Nicht, dass die Ausführung unter einem anderen Nutzer 100% Sicherheit bringt, aber es ist eine weitere Hürde, die ein eventueller Angreifer zu nehmen hat.

$ mkdir -p /opt/plex
$ mkdir -p /opt/plex/tmp   # dieses Verzeichnis brauchen wir später noch
$ useradd -M -d /opt/plex/ -s /bin/bash plex

Ich möchte, dass der Nutzer sein Home-Verzeichnis unter /opt/ hat, damit relevante Daten des Media-Severs dort liegen. Außerdem weise ich dem Nutzer als Login-Shell eine Bash statts der unter Debian mittlerweile üblichen Dash zu. Die Option -M verhindert nur, dass automatisch ein Homeverzeichnis unter /home/ erstellt wird.

Installation

Nun laden wir uns das das entsprechende Paket auf der Homepage von Plex herunter. Als Debian-Nutzer nehmen wir die „Ubuntu“-Version. Am besten per Rechtsklick -> Linkadresse kopieren und dann per wget  direkt auf dem Server herunterladen:

$ wget https://downloads.plex.tv/plex-media-server/0.9.11.7.803-87d0708/plexmediaserver_0.9.11.7.803-87d0708_amd64.deb

weiterlesen

VirtualBox auf Debian-Server installieren

Zunächst braucht man die Linux-Headers seines Kernels:

$ apt-get install linux-headers-$(uname -r)

Wenn man damit Probleme hat, kann es sein, dass man einen Custom-Kernel benutzt (ist beispielsweise bei OVH-Servern der Fall). In dem Fall muss man sich entweder die Header für seinen Kernel selbst suchen, oder man switcht auf einen Distro-Kernel, was natürlich immer mit einer Downtime verbunden ist.

Dann können wir VirtualBox installieren. Da wir auf einem Server-System natürlich keine grafische Oberfläche installiert haben, brauchen wir auch kein GUI für VirtualBox:

$ apt-get install virtualbox virtualbox-dkms virtualbox-fuse virtualbox-guest-additions virtualbox-guest-additions-iso --no-install-recommends

Anschließend testen wir, ob alles funktioniert hat:

$ /etc/init.d/virtualbox status
VirtualBox kernel module is not loaded.
$ /etc/init.d/virtualbox start
Starting VirtualBox kernel modules.
$ /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.

weiterlesen

Windows: SSH Server als Netzlaufwerk mounten

Screenshot
Quelle: http://www.swish-sftp.org/

Wer unter Windows mit einem entfernten Linux-System arbeiten will, beispielsweise mit einem virtuellen Server, den man irgendwo mietet, der wird auf einen SSH-Client zurückgreifen – der prominenteste Vertreter ist Putty. Der Dateiaustausch mit dem System gestaltet sich über Putty aber schwierig.

weiterlesen

Mailserver: Einrichten von Usern, virtuellen Usern, Domains etc.

Seit einiger Zeit betreibe ich auf meinem Server einen Mailserver. Einfach gesagt, im Hintergrund aber etwas komplizierter: ein Mailserver ist eine Kombination aus einem Mail-Transfer-Agent (MTA, bei mir Postfix), einem Mail-Delivery-Agent (MDA, bei mir Dovecot) und einem Mail-User-Agent (MUA, bei mir Roundcube). Die genaue Funktionsweise kann man bei bedarf googeln.

Standardmäßig hat ein Server eine Domain und User (Unix-User). Wenn alles richtig konfiguriert ist, können sich die „normalen“ Unix-User am MUA anmelden und sehen ihre Emails. In den seltensten Fällen ist das so einfach gewünscht. Denn als Serveradministrator hat man normalerweise ein oder mehrere Userkonten, möchte aber auch die Mails, die an root, postmaster, hostmaster und webmaster haben. Dafür eignen sich Aliase.

Aliase

Aliase sind im Prinzip Weiterleitungen, die den Postfix veranlassen entsprechende Mails nicht dem User zuzuordnen, an den sie gerichtet sind, sondern dem in der Alias-Datei definierten User. Die Aliasdatei ist /etc/aliases.

Aufgebaut ist die Datei sehr einfach:

root: marco
postmaster: marco
hostmaster: marco
webmaster: marco

Es werden also alle Mails an die User root, postmaster, hostmaster und webmaster an mich (marco) weitergeleitet. Hat man etwas an dieser Datei geändert muss noch folgenden Befehl ausführen, damit die Änderungen ihre Wirkung zeigen:

$ sudo newaliases

(als root entfällt selbstverfreilich das sudo)

Hat man mehrere Domains, die auf den Server zeigen, möchte man ziemlich sicher auch auf mehreren Domains Emails erhalten und schreiben können. Das ist – mit den normalen Unix-Usern – auch recht einfach möglich.

Mehrere gemeinsam genutzte Domains, Unix-User

In dieser Konstellation hält sich der Konfigurationsaufwand auch sehr in Grenzen. Es wird einfach in der Datei /etc/postfix/main.cf folgende Direktive geändert:

mydestination = $myhostname localhost.$mydomain example.com [weitere Domains]

Am besten einfach mit Leerzeichen getrennt die weiteren Domains hinten ranhängen.

Das funktioniert prima, solange man allein ist und es völlig Wurst ist, an welchen User welcher Domain jemand eine Email versendet, weil man sowieso alle selbst liest und beantwortet. Schwieriger ist es, wenn man mehrere User hat, die alle eine andere Domain zugeteilt bekommen sollen.

Mehrere getrennte Domains, Unix-User

Diese Konstellation wird im realen Umfeld nicht oft vorkommen; es ist aber dennoch eine Möglichkeit der Konfiguration. Hintergrund ist, nicht jeden User auf jeder Domain Mails empfangen zu lassen. Diese Lösung sieht so aus:

/etc/postfix/main.cf:
    virtual_alias_domains = example.org [weitere Domains]
    virtual_alias_maps = hash:/etc/postfix/virtual

weiterlesen