Server gebraucht kaufen

Ab und an baue ich mir einen Server für den Heimgebrauch zusammen. Dieser muss dabei nicht frisch vom Band kommen, sondern kann durchaus gebraucht sein. Natürlich hat man beim privaten Gebrauchtkauf dass Problem das man nicht ganz genau weiß was man bekommt.

Einer der Server der Serverschmiede

Die Vorteile des Gebrauchtkaufes, ohne die meisten der Nachteile bietet der Händler Serverschmiede.com GmbH, dessen Webseite unter der gleichnamigen Domain serverschmiede.com zu finden ist. Dort werden aufgearbeitete Server und deren Komponenten angeboten und kann sich so schnell einen Server zusammenstellen, der preislich wesentlich unter dem Neupreis liegt. Daneben erhält man auf Wunsch eine bis zu 36-monatige Garantie. Für den Hausgebrauch und die eine oder andere Firma ist dies sicherlich eine gangbare Alternative zu einem Neukauf.

SSH mit mehreren Schlüsseln nutzen

Normalerweise erzeugt man einen privaten und einen öffentlichen Teil seines SSH-Schlüssels, hinterlegt den öffentlichen Teil auf den entsprechenden Servern und loggt sich mit diesen dort ein. Nun kann es aber durchaus vorkommen, dass man mit unterschiedlichen Schlüsselpaaren arbeiten muss um sich auf verschiedenen Servern einzuloggen. Zur Lösung dieses Problems existieren zwei Herangehensweisen, welche beide mit der SSH-Konfigurationsdatei arbeiten. Die Konfigurationsdatei ist im Home-Verzeichnis der Nutzers unter .ssh/config zu finden ist. Bei der ersten Möglichkeit werden die entsprechenden Schlüssel in der Konfigurationsdatei hinterlegt:

IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_rsa_production
IdentityFile ~/.ssh/id_rsa_test
IdentityFile ~/.ssh/id_rsa_integration

Damit werden bei einem Login auf einem Server die Schlüssel der Reihe nach durchprobiert. Bei der zweiten Möglichkeit wird ein Host pro Server konfiguriert:

Host production production.example.com
    HostName production.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_production
    

Host test test.example.com
    HostName test.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_test

Host integration integration.example.com
    HostName integration.example.com
    User root
    IdentityFile ~/.ssh/id_rsa_integration

In der Konfiguration des Hosts befinden sich neben dem Host auch die zu nutzende Schlüsseldatei. Als weiteren Vorteil kann man die SSH-Verbindung nun über den definierten Kurznamen aufrufen:

ssh production

Dabei wird die Verbindung mit der definierten Schlüsseldatei aufgebaut, so dass ein durchprobieren der unterschiedlichen Schlüssel vermieden wird.

Nethack-Server im Browser

Nethack, einer der Klassiker des Roguelike, spielt man normalerweise im Terminal. Doch das muss nicht so sein, wenn man sich eines Nethack-Servers bedient. Einer der bekannteren Nethack-Server ist der alt.org Server. Der Server bietet unterschiedliche Nethack-Versionen und die Terminal-Emulation läuft komplett im Browser. Nach der Registrierung, kann man nicht nur auf dem Server spielen, sondern auch anderen Spielern beim Spiel zuschauen.

Nethack auf alt.org/nethack/

Neben dem Spiel im Browser bietet der Server noch einen anderen Vorteil – die sogenannten Bones files. Stirbt ein Spieler, so kann es passieren das die aktuelle Ebene, mitsamt seines Skelettes und seines Inventars in einem Bone file gespeichert wird. Wenn man nun spielt, betritt man ab und an ein solches Bone file und findet die Hinterlassenschaften eines anderen Spielers. So kommt ein wenig Multiplayer-Gefühl im Singleplayer-Nethack auf.

Gogs hinter einem Reverse Proxy betreiben

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Einführung in die uncomplicated firewall

PHP mail()-Funktion unter Ubuntu aktivieren

Wenn man einen eigenen Server betreibt und die mail()-Funktion von PHP benutzen möchte, so benötigt man auf dem Server einen Mail Transfer Agent kurz MTA. Über diesen MTA versucht die mail()-Funktion ihre Mails zu versenden. Ist kein MTA auf dem System installiert, schlägt der Versand von Mails fehlt. Nun ist es bei vielen Servern nicht gewünscht, einen vollwertigen MTA zu installieren. Abhilfe schafft hier der Nullmailer welcher mittels:

apt get install nullmailer

installiert werden kann. Nullmailer leitet die Mails, an einen Mailserver der Wahl weiter. Dazu muss er konfiguriert werden:

nano /etc/nullmailer/remotes

In dieser Datei wird der Mailserver mit seiner Konfiguration eingestellt:

mail.example.com smtp --port=587 --starttls --user=nutzername --pass=geheim

Nutzt man einen Mailserver mit einem selbstsignierten Zertifikat benötigt eine weitere Option:

mail.example.com smtp --port=587 --starttls --user=nutzername --pass=geheim --insecure

Anschließend sollte der Mailversand ohne Probleme funktionieren. Schlägt er trotzdem fehl, findet man genauere Informationen im Syslog unter /var/log/syslog.