Minecraft Server auf Debian 12 installieren

Einen eigenen Minecraft Server zu betreiben, hat einige Vorteile. Man kann z.B. die Einstellungen des Servers wählen. Du kannst außerdem entscheiden ob es ein privater Server nur für dich und deine Freunde wird, oder ob du diesen für die Allgemeinheit freigibst. Debian 12 ist für dieses Vorhaben das geeignete Betriebssystem. Im folgenden kannst du mit der Anleitung lernen, wie du einen eigenen Minecraft Server Stück für Stück aufsetzt. Diese Anleitung müsste auch auf einem RaspberryPi laufen, wurde aber nicht getestet.

Als erstes musst du dich mit deinem Server über das Terminal verbinden.

Du brauchst einige Pakete, die du herunterladen musst.
Dazu gibst du im Command Line Terminal folgende Befehle ein:

sudo apt update
sudo apt-get install wget screen openjdk-17-jre 

Erklärung zu den Paketen und was diese machen:

wgetMit wget lassen sich Datein via HTTPS direkt auf den Server runterladen
Das brauchen wir, wenn wir die Minecraft Server Software downloaden.
screenMit screen kann man bestimmte Befehle im Hintergrund weiterlaufen lassen auch wenn man das Terminal schließt.
openjdk-17-jre Das ist die sogenannte Headless Java Version. Diese wird benötigt um die Minecraft Server Software überhaupt zu starten.

User anlegen für den Server

Es ist am besten, den Minecraft-Server unter einem eigenen Konto laufen zu lassen, anstatt root oder ein anderes Konto zu verwenden. Das ist aus Sicherheit einfach besser. Erstellen ein neues Konto in Debian mit dem folgenden Befehl:

sudo useradd -m -r -d /opt/minecraft minecraft

Minecraft Server installieren

Es ist ohne Probleme möglich später auch mehrere Minecraft Server Instanzen auf einem Host zu betreiben. Daher geben wir dem ersten Server einen Namen und legen für diesen Server einen eigenen Ordner an. In dem Fall „creative“

sudo mkdir /opt/minecraft/creative

Jetzt musst du die Server Software runterladen. Dafür laden wir mit dem Tool wget eine Java Datei von der Minecraft Website herunter: https://www.minecraft.net/en-us/download/server

Nun musst du mit Hilfe von wget die java Datei runterladen und im richtigen Verzeichnis ablegen. Das alles geht mit einem Befehl:

sudo wget -O /opt/minecraft/creative/minecraft_server.jar https://piston-data.mojang.com/v1/objects/8dd1a28015f51b1803213892b50b7b4fc76e594d/server.jar

Den Link im Befehl musst du mit deinem kopierten Link von der Minecraft Website austauschen um die aktuelle Version zu haben.
Dann drückst du einfach [ENTER] und der Download beginnt.

Bevor du den Minecraft-Server installieren kannst, musst du die Nutzungsbedingungen akzeptieren. Das geht am schnellsten mit diesem Befehl:

sudo bash -c "echo eula=true > /opt/minecraft/creative/eula.txt" 

Und du musst noch dem User minecraft die notwendigen Berechtigungen geben, damit dieser im Verzeichnis /opt/minecraft/creative arbeiten darf:

sudo chown -R minecraft /opt/minecraft/creative/

Erstellen eines systemd Start Script

Dieses Script gibt dir die Möglichkeit ganz einfach den Server zu starten , neuzustarten und zu stoppen.

sudo nano /etc/systemd/system/minecraft@.service
[Unit]
Description=Minecraft Server: %i
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/%i

User=minecraft
Group=minecraft

Restart=always

ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx2G -jar minecraft_server.jar nogui

ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"\015'


[Install]
WantedBy=multi-user.target

Diesen Inhalt in die Datei einfügen und abspeichern, anschließend den File verlassen.

Unter diesem Punkt kannst du noch den Arbeitsspeicher zuweisen, wie viel der Server bekommen soll. Es sind 2GB eingestellt. Mehr sind natürlich besser: „-Xmx2G“ das G steht für die Gigabyte.

ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx2G -jar minecraft_server.jar nogui

Minecraft Server starten

Nun kannst du den Minecraft Server ganz einfach mit einem systemctl Command starten

sudo systemctl start minecraft@creative

Um den genauen Status des Servers zu sehen kannst du folgenden Befehl nutzen:

sudo systemctl status minecraft@creative

Wenn du möchtest, das dein System bei jedem Start mit hochfährt dann nimmst du den folgenden Befehl:

sudo systemctl enable minecraft@creative

Wenn auf deinem Server eine Firewall aktiv ist, musst du noch den Port freigeben. In meinem Fall nutze ich UFW. Dafür lautet der Befehl:

sudo ufw allow to any from any port 25565

Nun hast du alles gemacht, damit du deinen eigenen Minecraft Server unter Debian 12 betreiben kannst.
Ich wünsche dir viel Spaß beim zocken

Installation und Konfiguration der Nextcloud unter Debian 12

Wer sich mit dem Thema Self-Hosting auseinander setzt kommt früher oder später auf das Thema Nextcloud. Und wenn du einen vServer mit genügend freiem Speicherplatz hast, kannst du dir ja einen Cloud Server aufsetzen. Wenn du wissen willst wie, hier folgt jetzt die Anleitung.

Apache2 Webserver Installation

Zuerst installieren wir einen Webserver, ohne diesen bekommen wir nix im Browser angezeigt.
Mit dem folgenden Command wird Apache2 auf deinem Server installiert:

sudo apt install apache2

UFW installieren

Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW.
Also gleich mal installieren:

sudo apt install ufw

Nun müssen wir die Firewall „UFW“ noch konfigurieren.
Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240 diesen habe ich in der SSH-Konfigurtion so gesetzt. Dazu mehr findest du in dem Beitrag Absicherung eines Debian Server.

sudo ufw allow 10240/tcp 

Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus.
Firewall einschalten:

sudo ufw enable 

Diese Info musst du mit einem „y“ bestätigen.
Es kommt noch die Meldung: „Firewall is active and enabled on system startup“
Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.

Installation PHP 8.2

Über diesen Befehl wird PHP 8.2 installiert und dazu noch einige Plugins welche für die reibungslose Funktion von Nextcloud benötigt werden.

sudo apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-dev php-redis php-memcached

Jetzt kannst du direkt nach der Installation checken, ob auch das Richtige installiert wurde

php --version

Nun musst du noch die Konfigurationsdatei für Nextcloud anpassen. Alles Stück für Stück.
Mit dem nächsten Befehl kannst du die Config Datei öffnen.
Da diese Datei sehr lang ist und das stressig wird die einzelnen Werte zu suchen, kannst du die Suchfunktion von nano nutzen. Wenn du im Editor bist kannst du einfach [Strg]+[W] drücken dann erscheint eine Suchleiste. Gib einfach deinen Begriff ein und du springst an die Stelle in der Config Datei.

sudo nano /etc/php/8.2/apache2/php.ini

Kommentiere aus den Parameter date.timezone und geben Sie die richtige Zeitzone für PHP ein.

date.timezone = Europe/Berlin

Erhöhen Sie den Standardwert der Parameter memory_limit, upload_max_filesize, post_max_size und max_execution_time. Passe die Werte nach Bedarf an. Das Memory_limit orientiert sich stark am Arbeitsspeicher. Mein Server hat nur 1GB also belasse ich es bei 512MB.

memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300

Setze die Erlaubnis das Datein hochgelanden werden dürfen.

file_uploads = On
allow_url_fopen = On

Wenn das auf off steht werden mögliche Fehler in der Software Nextcloud ausgeblendet das ist besser für die Sicherheit des gesamten Systems.

display_errors = Off
output_buffering = Off

Kommentiere den Parameter zend_extension aus und ändere den Wert in opcache. Dadurch wird PHP OPcache aktiviert, das für Nextcloud benötigt wird.


zend_extension=opcache

Passe die opcache Werte wie folgt an. Dies wird auch von Nextcloud benötigt.

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Jetzt, wenn alle Werte angepasst sind, kannst du den Apache2 Server neustarten und damit die neue Konfiguration aktivieren.

sudo systemctl restart apache2

Installation MariaDB Server

Nachdem du nun den Apache2 Webserver und PHP in der Version 8.2 installiert hast, brauchen wir noch einen Datenbank Server. Hier installieren wir MariaDB Server.

sudo apt install mariadb-server

Nach der Installation kannst du mit folgendem Befehl schauen ob der Server läuft

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Wenn alles glatt gelaufen ist sollte es in etwa so bei dir aussehen

Jetzt musst du noch den MariaDB Server absichern, das passiert mit dem folgenden Befehl

sudo mariadb-secure-installation

Während des Prozesses solltest du „Y“ eingeben, um zuzustimmen und die Konfiguration auf MariaDB anzuwenden, oder „n“ eingeben, um nicht zuzustimmen und die Konfiguration als Standard zu belassen. Nachstehend findest einige MariaDB-Konfigurationen, nach welchen du gefragt werden wirst.

  • Drück ENTER wenn du nach dem MariaDB root password gefragt wirst
  • Gib n ein wenn du noch unix_socket_authentication method gefragt wirst
  • Gib Y ein, um ein neues Passwort für den MariaDB-Root-Benutzer einzurichten. Gib dann das neue Kennwort ein und wiederholen den Vorgang.
  • Gib Y ein, um den anonymen Standardbenutzer aus MariaDB zu entfernen.
  • Gib dann erneut Y ein, um die Remote Anmeldung für den MariaDB-Root-Benutzer zu deaktivieren.
  • Gib Y ein, um den Standard-Testdatenbank von MariaDB zu entfernen
  • Gib abschließend erneut Y ein, um die Tabellenberechtigungen neu zu laden und die Änderungen zu übernehmen.

Nun ist MariaDB fertig installiert und abgesichert.

Datenbank und User erstellen

Nun legst du eine Datenbank an und dazu einen Nutzer an, beides brauchst du für die Installation von Nextcloud. In der Datenbank werden dann später z.B. die Kalenderdaten, Kontakte usw.

Mit dem Befehl meldest du dich am Datenbank-Server an:

sudo mariadb -u root -p

Das sind die Befehle zum erstellen der Datenbank und des Users
Am besten du kopierst die Zeilen einzeln in die Konsole und drückst jeweils ENTER

CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;

Mit dem Befehl „quit“ meldest du dich vom Datenbank-Server ab.

Download Nextcloud

Um den Download von Nextcloud zu verarbeiten benötigst du noch zwei Tools, die du nun installieren wirst. Das ist „wget“ zum Download von Nextcloud und „unzip“ zum Entpacken.

sudo apt install wget unzip -y

Jetzt wechseln wir in das Verzeichnis, wo die Programmdaten von Nextcloud hin kommen.

cd /var/www/

Dann laden wir das Softwarepaket von Nextcloud

sudo wget https://download.nextcloud.com/server/releases/latest.zip

Dann wird die *.zip Datei entpackt

sudo unzip latest.zip
ls

Dann vergibst du noch für den gesamten Ordner „nextcloud“ die nötigen Rechte.

sudo chown -R www-data:www-data nextcloud

Erstellen des VirtualHosts unter Apache2

Nachdem du das Nextcloud Softwarepaket heruntergeladen hast, musst du die neue Konfiguration des virtuellen Apache2-Hosts erstellen, der für den Betrieb von Nextcloud verwendet werden soll. Stell sicher, dass die Domain auf die IP-Adresse deines Debian-Servers für deine Nextcloud-Installation zeigt.

Nun erstellen wir den vituellen Host unter Apache2
Wir legen dazu eine neue Datei im Verzeichnis /etc/apache2/sites-available/

sudo nano /etc/apache2/sites-available/nextcloud.conf

Das kommt in die Datei rein. Passe bite deine Domain unter ServerName an. Bei mir steht dort storage.cy3er.de

<VirtualHost *:80>
    ServerName storage.cy3er.de
    DocumentRoot /var/www/nextcloud/

    # log files
    ErrorLog /var/log/apache2/files.hwdomain.io-error.log
    CustomLog /var/log/apache2/files.hwdomain.io-access.log combined

    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
</VirtualHost>

Speicher die Datei und verlasse den Editor.

Dann noch zwei Commands

sudo a2ensite nextcloud.conf
sudo apachectl configtest

Mit dem ersten Befehl legen wir mit dem virtuellen Host eine neue Seite an die der Webserver nun bereit stellt. Der zweite Befehl checkt ob die Syntax von der Konfiguration so passt.

Nun starten wir nochmal den Apache2 Webserver neu.

sudo systemctl restart apache2
Absicherung der Nextcloud mit SSL-Zertifikat

Um eine zusätzliche Sicherheitsebene für Ihre Nextcloud hinzuzufügen, richten Sie HTTPS innerhalb Ihrer virtuellen Apache2-Host-Konfiguration über Certbot ein. Certbot ist ein Tool zur Generierung kostenloser SSL/TLS-Zertifikate von Letsencrypt.
Erstmal muss dieses Tool aber installiert werden:

sudo apt install certbot python3-certbot-apache

Und dann nutzen wir gleich das Tool um unser Zertifikat zu erzeugen und es dann mit unserer Seite zu verknüpfen. In dem Command müsst ihr eure E-Mail anpassen und auch eure Domain/Subdomain.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email hi@cy3er.de -d storage.cy3er.de

Wenn alles durchgelaufen ist müsste es bei dir möglich sein die Domain aufzurufen ohne eine Sicherheitsmeldung zu bekommen. Dort erscheint dann die Installationsmaske von der Nextcloud.

Installation der Nextcloud

In diesem Abschnitt startest du die Nextcloud-Installation über den Webbrowser. Dabei wirst du den Admin-Benutzer für Nextcloud anlegen.

Ruf den Webbrowser auf und gib deinen Domainname deiner Nextcloud-Installation auf (z.B.: http://storage.cy3er.de/). Du solltest automatisch auf eine sichere HTTPS-Verbindung umgeleitet werden und , wirst aufgefordert einen Administrator-Benutzer für Nextcloud anzulegen.

Benutzername und Passwort kannst du selber wählen. Das wird dann automatisch der Admin-Account.

Dann musst du noch die Datenbank Daten eintragen Username, Datenbankname und Passwort.
Diese haben wir in dem Schritt „Datenbank und User erstellen“ angelegt.

Dann wenn du alle Daten eingetragen hast, brauchst du nur noch auf installieren drücken. Das dauert dann einen kleinen Moment je nachdem wie schnell dein Server so ist.
Das ist dann auch das Ende. Du hast fertig einen Nextcloudserver installiert. Jetzt wird dir nur noch eine Frage gestellt, ob du ein paar nützliche Tools installieren willst. Das kannst du entscheiden danach bist du dann aber wirklich fertig.

Schlüsselpaar generieren mit puttygen unter Windows

Du wirst in diesem Tutorial lernen, wie du ein Schlüsselpaar bestehend aus öffentlichem Schlüssel (public key) und dem geheimen Schlüssel (private key) generierst. Dazu benötigst du das Programm puttygen.

Dieses kannst du dir hier downloaden:

puttygen

So sieht das Programm aus. Nun kannst du einfach auf „Generate“ klicken und das Schlüsselpaar fängt an zu generieren. Während des Prozesses musst du innerhalb des Fensters deine Maus bewegen. Die Mausbewegung wird genutzt um ein möglichst starkes Muster für die Verschlüsselung zu erstellen.

Im Anschluss siehst du die fertigen Schlüssel.
Jetzt solltest du auch noch bei „Key passphrase“ und „Confirm passphrase“ deine Passphrase mit der dein Privatekey geschützt wird eintragen.
Dann kannst du sowohl „PublicKey“ und „PrivateKey“ speichern.

Mit diesem Schlüsselpaar kannst du dich dann in putty zum Server verbinden.
Wenn du die Keys in z.B. Powershell nutzen willst musst du noch über die Menüleiste „Conversations“ -> „Export OpenSSH Key“.

Absicherung eines Debian Server

Bei den meisten Providern für vServer aller Art, gibt es die Möglichkeit den Server automatisch installieren zu lassen. Daher zeige ich jetzt nicht die komplette Installation von Debian 12. Das werde ich in einem anderen Tutorial noch nachholen. Wir gehen nun bei dieser Anleitung davon aus, das wir einen frisch installierten Debian Server vor uns haben. Am besten noch haben wir uns mit dem Root-User angemeldet.

Non-Root User anlegen und mit sudo Rechten ausstatten

Nun kannst du erstmal einen non-Root-User anlegen und diesem sudo Rechte übertragen.
Dazu nutzen wir folgenden Befehl

adduser bernd

Dort wird nach einem Passwort gefragt und noch ein paar Andere Daten. Das Passwort ist wichtig die anderen Daten kannst du auch ohne Eingabe mit Enter bestätigen. Zum Schluss noch die Eingabe eines Y und der User „bernd“ ist angelegt. Du kannst natürlich einen selbst gewählten Namen nutzen.

Dann installierst du das Paket sudo

apt install sudo

Im Anschluss kannst du dem Nutzer „bernd“ die sudo Rechte zuweisen.
Das sind im Prinzip Admin Rechte für das System. So brauchst du dann nicht mehr mit Root anmelden und hast trotzdem die Möglichkeit Updates einzuspielen und Pakete zu installieren.
Nun die Gruppenzuweisung von sudo an User „bernd“

usermod -aG sudo bernd

Nun kannst du dich mit dem Command „exit“ mit dem User Root abmelden.

exit

Dann melden wir uns mit dem User bernd an

ssh nonroot@deineip

Dann kannst du es gleich mal ausprobieren, ob sudo Rechte vorhanden sind. Wir aktualisieren einfach mal unsere Paketliste. Dort werdet ihr nach dem User-Passwort von „bernd“ gefragt.

sudo apt update 

SSH Public Key Authentifizierung

Dieser Part ist für Linux Systeme beschrieben für Windows findet ihr hier eine Anleitung.
Der Schritt findet auf deinem Computer und nicht auf dem Server statt. Für euren persönlichen PC Account habe ich den Namen user genommen. Also ist euer Home Verzeichnis: /home/user

Nun öffnest du deinen Terminal und wechselst in das versteckte Verzeichnis „.ssh“ – Dieses liegt in deinem /home Verzeichnis.

cd /home/user/.ssh 

Wenn es dieses noch nicht gibt dann leg es einfach mit „mkdir .ssh“ an.
Nun legst du in diesem Ordner unser Schlüsselpaar bestehend aus Public und Private Key .

 ssh-keygen -b 4096

Dort wirst du gefragt wie du die Schlüsseldatei nennen möchtest, ich hab sie im Screenshot key01 genannt.
Dann noch eine Passphrase und nochmal bestätigen. Dann Enter und zack ist das Schlüsselpaar erstellt und kann verwendet werden.

Nun musst du noch den Public Schlüssel auf das Zielsystem übertragen, dafür nutzt du den Befehl
ssh-copy-id

ssh-copy-id -i /home/user/.ssh/key01.pub bernd@ipvomserver 

Dann wirst du wie bei der SSH Verbindung nach deinem Passwort vom Server User gefragt. Dieses gibst du ein und dann wird der Public Schlüssel auf den Server geschoben. Wenn das alles geklappt hat, kannst du dich ohne Passwort nur mit Passphrase und Schlüssel anmelden.

ssh -i /home/user/.ssh/key01 bernd@ipvomserver

Konfiguration SSH

Nun widmen wir uns dem SSH-Dienst und konfigurieren diesen so das er die nötigsten Einstellungen bekommt. Dazu musst du die Konfigurations-Datei des SSH-Dienstes bearbeiten.
Diese öffnest du mit folgendem Befehl:

sudo nano /etc/ssh/sshd_config

So etwa sollte die Konfigurations-Datei aussehen nun musst du einige Werte anpassen. Wenn du die Datei runter scrollt kommen noch einige weitere Werte die angepasst werden müssen.

Der Wert Port steht am Anfang auf 22. Aus Sicherheitsgründen sollten wir diesen ändern.
Dazu kannst du dir eine Zahl ab 10240 aussuchen

LoginGraceTime 2m vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PermitRootLogin noRoot soll sich weder mit Password noch Pubkey anmelden können
StrictModes yes vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
MaxAuthTries 6 vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PubkeyAuthentication yes Pubkey Schlüssel Authentifizierung
PasswordAuthentication noDieser Wert wird auf No gesetzt weil wir das verbieten wollen

Wenn diese Werte angepasst sind, kannst du die Konfigurationsdatei speichern [Strg]+[O] + [ENTER] und mit [Strg]+ [X] verlassen.

Nun startest du den SSH-Dienst neu:

sudo service ssh restart

Fail2Ban installieren

Nun installierst du ein Tool, das Bots und Hacker davon abhalten soll unseren SSH Zugang zu übernehmen. Dabei bemerkt das Tool, wie von bestimmten IP Adressen Anmelde-Versuche kommen. Wenn diese eine bestimmte Anzahl von malen nicht funktioniert hat, sperrt Fail2Ban diese IP für einen bestimmten Zeitraum.
Installation:

sudo apt install fail2ban

Firewall UFW

Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW.
Also gleich mal installieren:

sudo apt install ufw

Nun müssen wir die Firewall „UFW“ noch konfigurieren.
Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240

sudo ufw allow 10240/tcp 

Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus.
Firewall einschalten:

sudo ufw enable 

Diese Info musst du mit einem „y“ bestätigen.
Es kommt noch die Meldung: „Firewall is active and enabled on system startup“
Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.

Vor- und Nachteile eines VPS

Ein Virtuell Private Server kann eine ideale Lösung für Dich sein, wenn Du diesen Service wirklich brauchst. Im Folgenden findest Du eine Aufstellung von Vor- und Nachteile des Betriebs eines VPS.

Bild von OpenClipart-Vectors auf Pixabay
Vorteile
  • Da Serverressourcen wie RAM (Arbeitsspeicher) oder Rechenleistung garantiert sind, gibt es keine oder nur minimale Schwankungen bei den verfügbaren Hardware-Ressourcen.
  • Probleme und Traffic-Spitzen anderer Serverbenutzer haben keine Auswirkungen auf Deine Website.
  • Er ist schneller als ein Shared-Hosting
  • Du erhältst Root Rechte auf dem Server.
  • Du hast mehr Privatsphäre, da deine Daten auf einer separaten Schicht des physikalischen Servers liegen.
  • Es ist ein leicht zu anzupassender Service. Wenn Deine Website wächst, kannst Du Ihre Serverressourcen (RAM, CPU, Festplattenplatz, Traffic usw.) bei den meisten Anbietern einfach upgraden.
Nachteile / Voraussetzung

Was ich vorweg dazu sagen muss, dass es aus meiner Sicht eigentlich keine Nachteile gibt. Es gibt nur ein paar Voraussetzung die gegeben sein sollten, damit man einen VPS sicher betreiben kann.

  • Beim VPS-Hosting musst du dich um die Administration und Verwaltung selber kümmern. Daher solltest Du einen gewissen Wissensstand haben um diese Aufgabe bewältigen zu können.
  • Er steht in Abhängigkeit zum Hypervisor : Muss das Hauptsystem, beispielsweise aufgrund von eines Hardware-Tauschs, neugestartet werden, sind davon auch alle darauf befindlichen virtuellen Maschinen betroffen. Die VM’s müssen im Anschluss auch neu gestartet werden. Dadurch wird die Ausfallzeit nochmals verlängert. Je nach Größe des physikalischen Servers, hat die Anzahl der virtuellen Maschinen auch direkten Einfluss auf die Neustartzeit des Hauptsystems. Das ganze würde sich nur ändern, wenn man sich einen eigenen dedizierten Server mietet.
  • Sicherheitsproblem, teilen sich mehrere virtuelle Maschinen einen physikalischen Server so haben auch alle eine verwundbare Stelle gemeinsam, der Hypervisor. Wenn dieser von Hackern infiziert oder gar übernommen wird sind alle virtuellen Maschinen auch betroffen.

Warum sollte ich ein Backup machen?

Datenverlust ist verbreiteter als man glaubt.
Ein Unfall, eine Naturkatastrophe, Diebstahl oder technischer Defekt könnte alle Daten, die dir wichtig sind zerstören. Auch die schönen Erinnerungsbilder vom letzten Urlaub sind dann eventuell weg. Wenn man sich aus dem privaten Bereich raus bewegt und in den unternehmerischen Bereich geht, kann es sogar illegal sein keine Backups zu haben. Den bestimmte Daten müssen immer vorgehalten werden. Und natürlich gibt es auch die Möglichkeit von Cyber-Angriffe und Ransomware.
Das sind alles Szenarien die sich durch eine gute Backup-Strategie vermeiden lassen.

Was ist ein Backup?

Der deutsche Begriff für Backup ist Datensicherung. Ein Backup ist eine zweite Kopie deiner wichtigen Daten beispielsweise der Fotos, Dokumente, Videos, Musik, und E-Mails. Zum Schluss eines erfolgreichen Backups steht eine Sicherheitskopie zur Verfügung. Statt diese Sicherheitskopie am selben Ort zu speichern (wie z.B. deinem Laptop), lagere eine weitere Kopie von all diesen Daten an einem anderen Ort.
Falls es zum Ernstfall kommt, für den das Backup angefertigt wurde, kommt es zum Restore der Wiederherstellung von Daten nach einem Datenverlust.

Mehr zum Thema: Backup-Strategien – Ein Anfang

Bild von Stephan auf Pixabay

Smartphone weg… und nu?

Bild von Mohamed Hassan auf Pixabay

Das Smartphone

Es spielt, bei den meisten Menschen, eine zentralisierte Rolle.

Wir

  • informieren uns
  • dokumentieren unsere Erlebnisse
  • wir lassen uns erinnern
  • wir kommunizieren auf sämtlichen Ebenen
  • wir lassen uns unterhalten
  • erledigen Bankgeschäfte
  • spielen Games
  • erkunden WeltWeitesWissen
  • lernen
  • kollaborieren mit unserem Team

Diese Liste kann natürlich noch weiter ergänzt werden. Was wir aber auch oft tun, blind diesem Gerät zu vertrauen. Das tut schon was es soll. Aber wenn es das dann mal nicht mehr tut, sind wir nicht vorbereitet.
Dann sind die Urlaubsbilder von 2022 weg, Bilder von sonstigen wichtigen Ereignissen.
Oder auch die Daten aus dem Kalender, Kontakte und gespeicherte Aufgaben.

Backup

Daher ist es wichtig die eigenen Daten in regelmäßigen Abständen zu sichern.
Wie und wo du die Daten speicherst kommt auf deine Situation an.

Betriebssystem Laptop/Computer : Windows, Linux oder Mac. (Es gibt auch noch andere Betriebssystem – Ausnahmen bestätigen die Regel)

Kleiner Ausschnitt aus meiner Backup Strategie.
Ich betreibe auf einem vServer in Deutschland eine Nextcloud Instanz. Dort werden meine Daten verschlüsselt abgelegt. Von dieser Instanz wird 2 mal täglich ein Backup auf einen Backup vServer in Canada mit dem Repo Backup Tool Restic abgelegt. Einmal wöchentlich holt sich ein Computer bei Mir zu Hause alle neusten Daten von dem Server in Canada. Sowohl der vServer in Deutschland als auch der in Canada werden beide von einem RAID60-Array beschrieben. Das heißt bei beiden Host Systemen können bis zu 2 Festplatten ausfallen ohne das ein Datenverlust folgt bzw. das ich überhaupt etwas merke. Ah und zusätzlich habe ich auch noch auf meinem Laptop eine Kopie der Daten aus der Nextcloud.

Nun hört sich das sicherlich ziemlich übertrieben an. Aber ich habe 1 Jahr etwa an diesesm Plan gebastelt und rum getestet und bin damit nun zufrieden.

Um diese beiden vServer zu betrieben muss ich die Ressourcen natürlich anmieten.

  • vServer Deutschland 8,90 €
  • vServer Canada 5 €
    Sind also gesamt 13,90 € und da ich wirklich sehr viel mit meiner Nextcloud arbeite und auch auf den Servern ein paar andere nützliche Dienste betreibe, lohnen sich die Kosten für mich.

Um die Daten in einer gemanagten Umgebung zu betreiben kann ich Hetzner StorageShare sehr empfehlen. Diese habe ich selbst eine Weile benutzt
Dort gibt es ab 5,11€ eine Nextcloud Instanz mit 1TB Speicherplatz und das ganze soll wohl mehrmals täglich automatisiert gesichert werden. Soviel zum Backup meiner Datenlandschaft.

Was mach ich, wenn es weg ist?

Im besten Fall

Das Smartphone war zum Zeitpunkt des Verlustes gesperrt, alle Deine Daten auf dem Smartphone sind verschlüsselt und die SIM Karte ist mit einer PIN geschützt.
In diesem Fall:

  • sperre deine SIM Karte
  • versuch aus der Ferne orten, sperren oder löschen
Hersteller Link
Andorid https://android.com/find
Apple https://www.icloud.com/find
Zusatz Infos Android Apple
  Link Link

IMEI Nummer

Das ist eine eindeutige Identifikations Nummer deines Smartphones bzw. deines SIM Kartensteckplatzes, wenn wir es genau nehmen. Über diese Nummer kann die Polizei dein Gerät orten. Bei einer Diebstahlmeldung bei der Polizei ist es daher von Vorteil, wenn du diese Nummer zur Hand hast.

SIM Karte Sperren

Ruf deinen Mobilfunkanbieter an, erkläre dem Support Mitarbeiter, dass du dein Smartphone samt SIM Karte verloren hast.
Damit umgehst Du, dass der Dieb sich als Smartphones Besitzer ausgeben kann (Anrufe in deinem Namen führt, SMS mit Verifizierungscodes für Passwortänderungen oder zur Bestätigung von Buchungen erhält).

  • Wenn du dir sicher bist, das dein Smartphone gestohlen wurde, dann solltest du die Polizei rufen
  • Wenn du die Möglichkeit hast, solltest du von allen wichtigen Accounts die du dort auf dem Smartphone genutzt hast, das Passwort ändern.
    Beispiel: Paypal, Google, Facebook, Instagram, TikTok, ebay, Kleinanzeigen, Deutsche Post, Spotify, Payback, Krankenkassen App,
    Wenn du ein Wallet von Android oder Apple nutzt um kontaktlos zu zahlen, dann ändere auch dort die Daten bzw. sperre zur Not auch deinen Bankzugang.
    Bei allen Accounts wo es dir irgendwie möglich ist, sperre den Zugang oder ändere das Passwort
  • dann ist es schwierig da etwas zu retten, außerdem wird es auch schwierig den ein oder anderen Account wieder zu beschaffen
  • Bei Android brauchst du in der Regel einen Google Account. Von diesem solltest du die Daten wissen. Wenn du die 2FA Auth von Google nutzt, musst du von irgend einem anderen Gerät die neue Anmeldung auf einem neuen Smartphone zusätzlich bestätigen.

Und jetzt?

Daten aus Backup wiederherstellen

In der Hoffnung das Sie ein Backup gemacht haben, können Sie es auf dem „neuen“ Smartphone wieder herstellen. Sowohl Google als auch Apple stellen dir ein gewisses Volumen an Speicherplatz in der Cloud zu Verfügung. Wenn sie das aktiviert hatten bevor das Smartphon weg gekommen ist, werden sie direkt beim ersten Start eines „neuen“ Smartphone gefragt, ob sie die Daten aus der Cloud wiederherstellen wollen. Das kann sinnvoll sein für Kontakte, Aufgaben, Kalender usw. Alles was andere Daten angeht ist meist ein anderer Speicherort angebracht, z.B, eine Speicherkarte oder ein eigener Cloudspeicher wie der von Hetzner (weiter oben beschrieben)

Nicht den Kopf hängen lassen

So ein Verlust bzw. Defekt eines Smartphones kann eine Stresssituation auslösen. Das ist ganz klar, weil es ja schließlich auch um die privaten eigenen Daten geht, Gerade auch der Verlust von Bildern kann sehr schmerzlich sein. Aber genau dieser Punkt wo du nach einem Verlust, deines Gerätes stehst, ist ein guter Zeitpunkt sich um die eigene Backupstrategie zu kümmern. Das ist nicht nur etwas für Nerds und Fachleute. Mit etwas lesen und probieren, kannst auch du deine Daten etwas besser absichern und bei einem erneuten Verlust viele Nerven sparen.

DynDNS für zu Hause einrichten

Bild von Clker-Free-Vector-Images auf Pixabay

Vorwort

Wenn du einen Serverdienste an deinem privaten Internetanschluss zur Verfügung stellen möchtest, ist neben Portfreigaben, eine feste IP Adresse notwendig. Am heimischen Anschluss hast du in den meisten Fällen keine Möglichkeit eine feste IP Adresse zu bekommen. An einem privaten Anschluss wird bei fast allen Providern die Verbindung nach eine gewissen Zeit zwangsgetrennt oder zumindest die IP-Adresse erneuert. Bei einigen Providern kannst du eine feste IP gegen eine Pauschale buchen.

Das ist aber auch kostenlos möglich:
Stichwort Dynamic DNS, kurz DynDNS.Bei dieser Prozedur, überträgt der Router die aktuelle IP-Adresse, sobald sie sich ändert an einen DynDNS Anbieter. Bei diesem kann man sich eine Subdomain erstellen, welche dann immer auf die gerade vergebene IP-Adresse zeigt.
So ist es möglich trotz wechselnder IP immer erreichbar zu sein, weil der Router in Verbindung mit dem DynDNS Anbieter den Job übernehmen.

Vorrausetzungen

  • Router mit DynDNS Funktion (z.B. FritzBox)
  • einen Account und eine Subdomain bei einem DynDNS Anbieter

Anbieter DynDNS Service;

  • selfhost.de (FreeAccount)
  • freedns.afraid.org (viele verschiedene Subdomains)
  • Eigene TLD (z.B bei wint.global oder strato.de)

Registrierung DynDNS Service

Jetzt geht es in die Praxis über, wir legen uns einen Account beim DNS Anbieter an,
erstellen uns dann einen Subdomain und bringen dann noch der FritzBox bei wie sie immer die richtige öffentliche IP an den DNS Anbieter weitergibt.
Aber alles nach und nach.

Den DNS Anbieter findest du unter https://freedns.afraid.org
Dort musst du dir einen kostenlosen Account anlegen.
Homepage freedns.afraid.de
Dort klickst du einfach auf Sign up Free

Anschließend bekommst du folgende Seite zu Gesicht
![Registrierung Maske freedns.afraid.org]()
freedns.afraid.org Signup

Dort trägst du alle nötigen Daten ein und klickst anschließend auf „Send Activation Mail“.
Nun sollte in den nächsten Sekunden/Minuten eine Aktivierungsemail bei dir eintreffen. Dort klickst du auf den Aktivierungslink um den Registrationsprozess abzuschließen.

Dann kannst du dich mit deiner USERID und gewähltem Passwort einloggen.
Jetzt kannst du dir eine Subdomain aussuchen, über die dann später dein Server/PC hinter der Fritzbox bei dir erreichbar ist.

Subdomain anlegen

freedns.afraid.org Add Subdomain

Klick dafür einfach auf der linken Seite auf „Main Menue“ und in der erscheinenden Tabelle auf „Subdomain“. Anschließend erscheint ein Schriftzug „Add Subdomain“

freedns.afraid.org Edit Subdomain

Dort kannst du deine Subdomain aussuchen.

   
Type A
Subdomain deinwunschname.mooo.com
Domain mooo.com (kann frei gewählt werden)
Destination Deine derzeit öffentliche IP erscheint hier, diese kann dort so übernommen werden
TTL Nur Premium TTL steht für TimeToLive
Wildcard kein Haken

Wenn das alles erledigt ist, ist der Teil beim DynDNS Anbieter erstmal erledigt.
Nun musst du noch die Fritzbox konfigurieren, damit sie die Subdomain kennt und das die Fritzbox in regelmäßigen Abständen deine öffentliche IP an den DynDNS Anbieter schickt und automatisch angepasst.

Konfiguration FritzBox

Dafür loggst du dich wie gewohnt in deine FritzBox ein und suchst den Menüpfad :

Internet > Freigaben > Tab(DynDNS)

fritz.box DynDNS Einstellung

DynDNS benutzen Haken setzen!
DynDNS-Anbieter Benutzerdefiniert
Update-URL Hier kommt die Adresse rein, die es ermöglicht, die öffentliche IP automatisch beim DynDNS Anbieter anzupassen, wenn eine Änderung stattgefunden hat.
Domainname Hierkommt deine gewählte Subdomain rein submaxxi.mooo.com
Benutzername Hier kommt deine USERID mit der du dich einloggst bei freedns.afraid.org
Passwort Hier kommt dein Passwort rein mit dem du dich einloggst bei freedns.afraid.org

Um die Update-URL herauszufinden gehst du wie folgt vor
Du gehst in das Backend von freedns.afraid.org.

freedns.afraid.org Dynamic Update Kanidates

Dann wählst du auf der linken Seite im Menü „Dynamic DNS“ aus.
Relativ weit unten steht deine Subdomain.
Daneben steht „Direct URL“ -> Dort machst du einen Rechtsklick drauf und wählst „Link Adresse kopieren“
Nun hast du die Update-URL in deiner Zwischenablage und kannst diese einfach per Drag&Drop in das Feld „Update-URL“ in die Eingabemaske der Fritzbox eingeben.
Wenn das alles erledigt ist klickst du im FritzBox Backend auf „Übernehmen“.

Nun hast du eine Subdomain angelegt und diese mit deiner FritzBox verknüpft. Ab jetzt wird dem DynDNS Anbieter immer die neuste öffentliche IP Adresse gemeldet und als A Record in der Subdomain eingetragen.

Nun kannst du z.B. mit einem RaspberryPI einen Webserver der über deine Subdomain erreichbar ist über Port 80/443 mit der Fritzbox für das WWW freigeben.

Zum Thema Protfreigabe schreibe ich bald einen Artikel und werde somit an die Serie anknüpfen. In der Zeit kannst du ja die FritzBox auf die nästen Schritte vorbereiten.
Bis dahin erstmal frohes Basteln.

WebDAV Account unter Linux einbinden

Es kann nützlich sein, wenn man z.B. einen WebDAV Account, einer Nextcloud in ein Dateisystem unter Linux einzubinden. Um beispielsweise ein automatisches Backup der eigenen Dateien einzurichten.

Installation

Um das zu erreichen, benötigen wir zu erst das Linux Paket davfs2
Unter Debian und Ubuntu, die den apt Paketmanager nutzen geht das wie folgt:

sudo apt install davfs2

WebDAV-Resource einhängen

sudo mount.davfs https://example.net/webdav /media/example

Dieser Befehl ist für das „einmalige“ einhängen. Wenn es automatisch auch bei einem Neustart eingehängt werden soll dann kannst du das in der Datei /etc/fstab hinterlegen.

https://example.net/webdav /media/example davfs user,rw,noauto 0 0

Wenn die Daten in der /etc/fstab hinterlegt wurden, lässt sich die WebDAV-Resource ganz einfach mit diesem Befehl einbinden:

mount /media/example

Um die WebDAV-Resource wieder auszuhängen bzw. aus dem Dateisystem zu entferenen nutzt du den Befehl fusermount.

fusermount -u /media/example

Wenn fusermount nicht funktioniert kann es sein, dass du noch das Paket fuse nachinstallieren musst.

sudo apt install fuse

Login Daten hinterlegen

Um nicht bei jedem einbinden bzw. beim automatischen einbinden die Login Daten einzugeben, kannst du die Login Daten hinterlegen. Diese werden dann in /etc/davfs2/secrets oder ~/.davfs2/secrets

Nur Benutzername:
/media/example Benutzername

Benutzername und Passwort:
/media/example Benutzername Passwort

Quellen:

Davfs2 Dinotools.de
WebDAV ubuntuusers.de