Wünsche und Verbesserungsvorschläge sind willkommen.
Betriebssystemempfehlung • Installationsskript • Installation kompakt • Installation ausführlich • Support • Lizenz
Die meisten Installationsanleitungen für Masternodes erwähnen das Thema Sicherheit nur am Rande. Ihr seid im Begriff, einen Server offen ins Internet zu stellen und auch noch einiges an Coins auf dessen Wallet zu übertragen. Wir sollten uns also unbedingt mit dem Thema Serversicherheit auseinandersetzen.
Ich empfehle das aktuelle Debian-Betriebssystem in der Minimalversion. Debian ist auf Stabilität und Sicherheit ausgerichtet. Es hat natürlich nicht alle Pakete in der neuesten Version an Bord, das hat aber auch einen guten Grund. Neue Pakete und Versionen werden erst in das Release übernommen, wenn sie als stabil und sicher genug erachtet wurden.
Auch hat bei meinen Installationen ein Distributionsupgrade mit Debian immer einwandfrei funktioniert, mit Ubuntu z.B. noch nie komplett fehlerfrei oder überhaupt nicht.
Automatisches Installationsskript. Masternode installieren ohne viel Leserei.
su -
apt install wget && wget https://github.com/vmerz/defi-masternode-secure-installation/raw/main/installDefiMasternode.sh
chmod +x installDefiMasternode.sh
bash installDefiMasternode.sh
Geschafft! Jetzt geht es weiter mit der offiziellen Anleitung ab Step 3
ODER im Wiki mit Automatischen Start konfigurieren
Ihr wollt es genauer wissen? Dann einfach weiterlesen.
Kurz und knapp manuell installieren
# Wechseln zu root & Installation der benötigten Pakete
su -
apt -y update && apt -y upgrade
apt -y install ufw nano htop fail2ban psmisc unzip wget
# SSH-Port würfeln und in der Konfigurationsdatei ändern
SSH_PORT=$(( ((RANDOM<<15)|RANDOM) % 63001 + 2000 ))
sed -i '/^#Port/s/#Port/Port/' /etc/ssh/sshd_config
sed -i "/^Port/s/22/${SSH_PORT}/g" /etc/ssh/sshd_config
sed -i '/^PermitRootLogin/s/yes/no/' /etc/ssh/sshd_config
echo "ACHTUNG: beim nächsten LOGIN per SSH den Port $SSH_PORT nutzen. Bsp.: ssh defichain@yourIP -p $SSH_PORT."
# NOTIERT EUCH DEN NEUEN SSH-PORT!
# Benutzer zur Ausführung der Masternode anlegen
adduser defichain
# Passwörter und Daten zu User eingeben
# Benötigte Ports in der Firewall freigeben
ufw allow $SSH_PORT/tcp
ufw allow 8555/tcp
# SSH neustarten
systemctl restart ssh
# Firewall aktivieren
ufw enable
# zu normalem Benutzer wechseln
su defichain
# Masternode installieren
wget -P ~/ https://github.com/DeFiCh/ain/releases/download/v1.8.4/defichain-1.8.4-x86_64-pc-linux-gnu.tar.gz
tar -xvzf ~/defichain-1.8.4-x86_64-pc-linux-gnu.tar.gz -C ~/
mkdir ~/.defi
cp ~/defichain-1.8.4/bin/* ~/.defi
# Snapshot herunterladen, damit die Node schneller synchronisiert
mkdir -p ~/snapshot
wget -P ~/snapshot https://defi-snapshots-europe.s3.eu-central-1.amazonaws.com/snapshot-mainnet-1052243.zip
unzip ~/snapshot/*.zip -d ~/snapshot/
rm -Rf ~/.defi/chainstate ~/.defi/enhancedcs ~/.defi/blocks
mv ~/snapshot/* ~/.defi/
# Masternode-Daemon starten
~/.defi/bin/defid -daemon
# Aktuellen Blockcount abfragen
~/.defi/bin/defi-cli getblockcount
Geschafft! Jetzt geht es weiter mit der offiziellen Anleitung ab Step 3
ODER im Wiki mit Automatischen Start konfigurieren
Ihr wollt wissen, was ihr gerade getan habt? Dann lest einfach weiter.
Hier werden alle Installationsschritte einzeln beschrieben. Zu viel Infos? Dann einfach direkt zum Installationsskript oder zurück zur Kompaktanleitung
Zuerst wird das System aktualisiert und die notwendigen Pakete installiert. Wenn ihr nicht mehrere Administratoren auf dem System habt, schlagt euch sudo
aus dem Kopf.
Hier wird komplett auf sudo
verzichtet, ich möchte hier aber auch keine sudo
-Debatte starten.
Wir wechseln zu root und Installieren:
su -
apt -y update && apt -y upgrade
apt -y install ufw nano htop fail2ban psmisc unzip wget
Ufw ist eine einfach zu administrierende Firewall.
Nano benötigen wir, um Dateien zu bearbeiten. Im Vergleich zu vi ist er für Einsteiger intuitiver zu bedienen.
Enthält u.a. den Befehl killall, der in der offiziellen Doku verwendet wird.
Ein kleines Tool zur Darstellung und Verwaltung der laufenden Prozesse.
Blockiert IP-Adressen nach fehlgeschlagenen Login-Versuchen.
Ermöglicht den Download von Dateien via HTTP/HTTPS & FTP.
Wir generieren uns einen neuen Port für den SSH-Zugang. Das ist zwar keine richtige Sicherheitsmaßnahme, allerdings werden Server meist nur auf Standardports gescanned, um sie auf Sicherheitslücken zu untersuchen (Ports 443, 80, 81, usw...). Werft einfach mal einen Blick mit cat /var/log/ufw.log
ins Firewall-Log, nachdem euer Server eine Weile läuft.
Außerdem wird der Zugang für root
per SSH verboten.
SSH_PORT=$(( ((RANDOM<<15)|RANDOM) % 63001 + 2000 ))
sed -i '/^#Port/s/#Port/Port/' /etc/ssh/sshd_config
sed -i "/^Port/s/22/${SSH_PORT}/g" /etc/ssh/sshd_config
sed -i '/^PermitRootLogin/s/yes/no/' /etc/ssh/sshd_config
echo "ACHTUNG: beim nächsten LOGIN per SSH den Port $SSH_PORT nutzen. Bsp.: ssh defichain@yourIP -p $SSH_PORT"
Notiert euch den neuen SSH-Port! Ansonsten habt ihr euch nach dem Logout selbst vom System ausgeschlossen.
Benutzer zur Ausführung der Masternode anlegen.
adduser defichain
Nur die notwendigen Ports werden in der Firewall freigegeben. Wir schalten den neuen SSH-Port und den Port für die Kommunikation der Masternode frei. Nachdem die Ports offen sind, wird der SSH-Dienst neu gestartet.
ufw allow $SSH_PORT/tcp
ufw allow 8555/tcp
systemctl restart ssh
Um die neue Konfiguration zu testen, meldet ihr euch am Besten in einem zweiten Terminal mit dem neuen Port und dem User defichain
an, da der Login für root jetzt verboten ist ssh defichain@EureServerIP -p SSH_PORT
.
Aktuelle Maternode herunterladen, entpacken und in das richtige Verzeichnis verschieben.
wget -P ~/ https://github.com/DeFiCh/ain/releases/download/v1.8.4/defichain-1.8.4-x86_64-pc-linux-gnu.tar.gz
tar -xvzf ~/defichain-1.8.4-x86_64-pc-linux-gnu.tar.gz -C ~/
mkdir ~/.defi
cp ~/defichain-1.8.4/bin/* ~/.defi
Bevor die Node gestartet wird, wird der Snapshot heruntergeladen, damit die Node schneller synchronisiert.
mkdir -p ~/snapshot
wget -P ~/snapshot https://defi-snapshots-europe.s3.eu-central-1.amazonaws.com/snapshot-mainnet-1052243.zip
unzip ~/snapshot/*.zip -d ~/snapshot/
rm -Rf ~/.defi/chainstate ~/.defi/enhancedcs ~/.defi/blocks
mv ~/snapshot/* ~/.defi/
Den Masternode Dienst starten
# Masternode-Daemon starten
~/.defi/defid -daemon
# Aktuellen Blockcount abfragen
~/.defi/defi-cli getblockcount
Geschafft! Jetzt geht es weiter mit der offiziellen Anleitung ab Step 3
ODER im Wiki mit Automatischen Start konfigurieren
:coffee: oder :beer: für den Schreiberling ;)
DFI: dYVqg7U4Ubio8uLjsCBQzZseLXFJivr2h1
GNU GPLv3