VPS - Hornet Fullnode mit SWARM installieren

  • Hornet Logo


    Github: https://github.com/gohornet/hornet

    Neueste Veröffentlichung: https://github.com/gohornet/hornet/releases

    Twitter: https://twitter.com/gohornet




    Achtung dieses Tutorial soll nur einen groben Überblick über die Einrichtung und Absicherung eines VPS/Root-Servers liefern und bietet keinen garantierten Schutz. Es wird keine Haftung für Fehler in der Anleitung übernommen oder Schäden die durch diese entstehen.

    Bitte informiert euch trotz der Anleitung über die Wartung und weitere Absicherung eures Servers!

    Anleitung

    Schritt 1 - System aktualisieren

    Viele Systeme sind nicht in einem aktuellen Zustand installiert. Es wird daher empfohlen, zunächst alle System-Updates und Softwarepakete zu aktualisieren, damit das System wieder auf dem neuesten Stand ist.


    Aber zuerst sollten Sie das root-Passwort ändern (bitte achten Sie darauf, dass Sie sich das Passwort sehr gut merken!)

    Code
    passwd


    Mit dem folgenden Befehl erhalten wir eine Liste der verfügbaren Updates:

    Code
    sudo apt update


    Es folgt die Aktualisierung des Systems und der Pakete:

    Code
    sudo apt dist-upgrade -y && sudo apt upgrade -y


    Danach sollten wir das System "bereinigen", um nicht mehr benötigte Pakete zu entfernen:

    Code
    sudo apt autoremove -y

    Schließlich sollte der Server aus Sicherheitsgründen einmal neu gestartet werden:

    Code
    sudo reboot


    Das bedeutet, dass der erste Schritt bereits abgeschlossen ist. Nach dem Neustart können Sie sich wieder über SSH verbinden und mit Schritt 2 fortfahren.


    Schritt 2 - Sichern des SSH-Zugriffs

    Im zweiten Schritt wollen wir sicherstellen, dass nur wir Zugang zu unserem Server haben und niemand anders. Da VPS/Root-Server in der Regel den Benutzer root direkt benutzen und dieser Benutzer die volle Kontrolle über das System hat, muss dieser Benutzer natürlich besonders geschützt werden.


    Dieser Schritt ist optional und erzeugt einen zusätzlichen Benutzer. Der Benutzer iota kann durch einen anderen Benutzernamen ersetzt werden. Der Benutzer erhält kein Passwort und wird nicht zu den sudoers hinzugefügt (sie können also kein sudo verwenden).

    Code
    sudo useradd -s /bin/bash -m iota

    Dann wechseln wir zu dem neu erstellten Benutzer

    Code
    su iota

    Nun wird direkt das Verzeichnis für den SSH-Schlüssel sowie die SSH-Datei für den öffentlichen Schlüssel erstellt.

    Code
    mkdir ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys

    Nun wird direkt das Verzeichnis für den SSH-Schlüssel sowie die SSH-Datei für den öffentlichen Schlüssel erstellt.


    Sie benötigen PuttyGen.exe, um einen öffentlichen und privaten Schlüssel zu erzeugen. Nachdem Sie das Programm heruntergeladen und ausgeführt haben, können wir damit beginnen. Aber bevor Sie auf Generieren drücken, ist es wichtig, dass Sie die Parameter anpassen. Stellen Sie sicher, dass Typ des zu generierenden Schlüssels = RSA ausgewählt ist und Anzahl der Bits im generierten Schlüssel = 4096.


    Dann können Sie auf Generieren drücken und dann müssen Sie die Maus im oberen Bereich bewegen. Nach Fertigstellung wird dort der öffentliche Schlüssel angezeigt

    Code
    ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAkkm3CmV++feqfQsqGF/zsOidX8XpkkrJ5cmTGB2fM0/GNcyn3N3NNtJMLsUqWajH/HlitczRDAXSptg1NakXpysAiqEJD3UtFf+iZOhjCrma5hMPI+n+6eTQoIWLJRHQpz5rj7CEKi0hdI2wC8uTslxoYfFInRUUiRG/kSiBfJ4UyIQKl37pwZsxXDYInr1ruesPZMBsaijWby91HQOzocyO62BYz74LIKf5A6A0PGIjkE1OoTHWmGjLvwNFWSeQ3L+J/Byl89jJokIAUqYN3mz5XLfKqFVNIKl2D9uzAPEUiiC3xYi3Xp9O1Kp5TULFYrIWQ/YljkPTNBF4tzZrL4ovhqKRl3SbcHzojyLAWHgj8s9N66VV01gg4y/UU2mPO1ppqRxt5gDFzNI/ZBinm7danvmKpWbk8mZMunAL80p/S1GBRLbXqJaSmkrJfrWYHXqdKvWeaKj4Ehu9Lsi8HSVLrS9I7UiRKD5uEN6xsDAMq3VsfoRVkXecH6J9KQ35BKPs+rcJDBJ/CU5ZY4O6HyEO9cqSjhw2gbi3eAn9m0fdOdhetVllZjapuIa7Qc+y7NoNJf/Bo/5GbU6D53iPbvBGjkE0KbRHjJ/PPkULW8qyoXb1l2tf5IWVSyRxg9S2x1ZAKFAi80n/L33iN1nvyJHPypvfDHkllFlWdkchN6E= rsa-key-20200426

    Kopieren Sie Ihren öffentlichen Schlüssel und gehen Sie dann zurück zu Ihrem Terminal. Dort öffnen Sie den Editor und fügen den öffentlichen Schlüssel ein.

    Code
    sudo nano /home/iota/.ssh/authorized_keys

    Nun müssen Sie den privaten Schlüssel in PuttyGen speichern (bitte bewahren Sie ihn sicher auf, sonst ist ein späteres Einloggen nicht möglich).


    Nachdem Sie alle Dateien gespeichert haben, werden wir die SSH-Konfiguration entsprechend anpassen:

    Code
    sudo nano /etc/ssh/sshd_config

    Durchsucht die untenstehenden Zeilen und passt sie entsprechend an

    Der SSH-Dienst muss dann neu gestartet werden, damit die Änderungen in Kraft treten können.

    Code
    sudo systemctl restart ssh

    WICHTIG! Bitte schließen Sie NICHT die aktuelle SSH-Verbindung!!! Öffnet stattdessen einfach ein zweites Terminalfenster. Lade die Putty-Konfiguration und stelle unter Connections -> SSH -> Auth deinen privaten Schlüssel ein, der zuvor von PuttyGen erzeugt wurde. Speicher dann die Einstellungen für die SSH-Verbindung, damit du diese nicht erneut setzen musst.


    Die SSH-Konfiguration ist nun abgeschlossen und eine Anmeldung mit root oder ohne Schlüsseldatei ist nicht mehr möglich. Bei der Anmeldung werden Sie nun als Benutzer iota (oder Ihr eigener Benutzername) angemeldet und dieser dient nur noch als Funktionsbenutzer. Mit diesem Benutzer ist nur noch die Benutzung des HLM möglich. Um fortzufahren oder um später Befehle auszuführen, müssen Sie immer zum Benutzer root wechseln. Geben Sie dazu einfach su in die Konsole und dann das aktuelle Passwort ein.


    Sie können nun mit Schritt 3 fortfahren.


    Schritt 3 - Konfigurieren der Firewall

    Als Firewall verwenden wir die Ubuntu Firewall (ufw), die eine einfache Handhabung erlaubt und daher auch für nicht erfahrene Unix-Benutzer nutzbar ist.


    Zunächst stellen wir sicher, dass wir standardmäßig alle eingehenden Verbindungen blockieren, so dass sie explizit freigegeben werden müssen.

    Code
    sudo ufw default deny incoming


    Danach geben wir nun alle erforderlichen Ports für Hornet in der Firewall frei.


    Die Firewall-Regel für Autopeering erfordert die Freigabe von Port 14626 (UDP)

    Code
    sudo ufw allow 14626/udp

    Die Firewall-Regel für Nachbarn erfordert die Freigabe von Port 15600 (TCP)

    Code
    sudo ufw allow 15600/tcp

    Die Firewall-Regel für die Knoten-API erfordert die Freigabe von Port 443 (TCP), der standardmäßig vom HLM verwendet wird. Sie können den Port hier variieren, wenn Sie einen anderen verwenden möchten

    Code
    sudo ufw allow https

    Damit ein SSL-Zertifikat ausgestellt und automatisch erneuert werden kann, muss auch der Port 80 (TCP) freigegeben werden. Dies führt jedoch zu einer permission denied von Nginx, weil wir nicht wollen, dass es verwendet wird. Sie wird daher nur für die Ausstellung des SSL-Zertifikats verwendet.

    Code
    sudo ufw allow http

    Aber die letzte und wichtigste Firewall-Regel ist die Aktivierung des SSH-Ports, damit wir weiterhin eine Verbindung zum Server herstellen können. Wir verwenden hier die Option Limit, so dass eine automatische Sperre für einen bestimmten Zeitraum gesetzt wird, wenn zu viele Fehlversuche unternommen werden.

    Code
    sudo ufw limit ssh


    Der folgende Schritt ist optional und verhindert, dass der Knoten auf PING antwortet. Dazu öffnen Sie die folgende Datei

    Code
    sudo nano /etc/ufw/before.rules

    Dort suchen Sie nach diesen vier Einträgen und ersetzen das ACCEPT durch DROP

    Code
    # ok icmp codes for INPUT
    -A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP
    -A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP
    -A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP
    -A ufw-before-input -p icmp --icmp-type echo-request -j DROP

    Nun, da alle Einstellungen festgelegt sind, müssen wir die Firewall aktivieren (eine Bestätigung ist notwendig)

    Code
    sudo ufw enable


    Damit ist die Einrichtung der Firewall abgeschlossen, und Sie können mit Schritt 4 fortfahren.


    Schritt 4 - SWARM installieren

    SWARM basiert auf einem Skript für die Shell und soll die Installation und Verwaltung einer Hornet- Node vereinfachen.

    Bitte beachten Sie, dass es keinen Support für SWARM gibt und die Benutzung auf eigene Gefahr erfolgt!


    Anleitung für SWARM

    Mit den unten aufgeführten Adressen kann man mir ein kleines Trinkgeld zukommen lassen, vielen Dank im voraus!

    IOTA: M9CGJRCFSEPEDJULUOCHXMLYQLRYNXYLSDCRMYG9GWLMYLJGET9IYBRLOWIR99KMXQW9WR9WMBPXZNIGXAA999DGUB

    BTC (N-Segwit): bc1qfc9vxj3kzavcmk7tejfe5d82mcpcvyk6lqapzm

    BTC (Segwit): 3DTvyYrM2uXxT7D1APQkigmMQPHcVchgqi

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!