Projekt eigener Server
(+) Ein/mehrere eigener Server wäre ganz praktisch, mit eigener Cloud, eigenem (Video)Chat, Bitcoin Node, Email usw. wäre schon ganz praktisch. Man spart ein bisschen Kosten, man hat viel mehr Privatsphäre und lernt eine Menge.
(-) Generell gibt es viele Anleitungen im Netz, die auch zu einen gewissen Zeitpunkt funktioniert haben, aber jetzt nicht mehr funktionieren. Diese Fehler kann nur mit großem Aufwand kompensieren, weil ich oft nicht alles in der Anleitung verstehe. Das führt dazu, dass man dauernd in Sackgassen läuft und wieder von Anfang anfangen muss. Das ist Zeit-intensiv und frustrierend. Es führt vermutlich kein Weg um ein genaues Verständnis herum, was man genau umsetzt.
Wer hier mitmachen möchte kann sich gerne Beteiligen und wir können dieses Projekt gemeinsam angehen. Tipps, wenn ich etwas offensichtlich falsch mache, sind natürlich auch immer willkommen.
Zielbild für meine Anwendungen:zu Hause: ⓐ Bitcoin-Node
ⓑ Mempool
ⓒ Lightning-Node
ⓓ Cloud
ⓔ Nostr
ⓕ Nextcloud
https://de.wikipedia.org/wiki/NextcloudVPS (Linode) - offene Daten ⓐ App für Notizen
https://notesnook.com/ ⓑ Passwortmanager Bitwarden
ⓒ Simplelogin = Email-Alias
VPS (TOR) - versteckte Daten ⓐ ggf. VPN
Angestrebter Endzustand für meinen Raspberry Pi zu Hause:Daten befinden sich auf einem verschlüsseltem SSD-Laufwerk.
Raspberry Pi ist mit LAN-Kabel mit meinem Router verbunden
Von Außerhalb des Netzwerks kommen wir per TOR-Service auf den Raspberry Pi.
BausteineMein Server Projekt wird recht komplex. Es gibt viele verschiedene technische Elemente, die je nach Zielsetzung des Servers unterschiedlich mit einander kombiniert werden müssen. Ich versuche die einzelnen Schritte daher in verschiedene Beiträge aufzuteilen.HardwareRaspberry Hardware
besorgen Verbindung zum ServerAufrufen können wir unseren Server entweder über die IP bzw. einen Alias oder über TOR.
Einloggen können wir uns (i) per Passwort oder (ii) noch sicherer indem wir auf einem
PC ohne Internet einen privaten Schlüssel erstellen und auf einem Yubikey speichern.
Schritt 4: Ubuntu Desktop auf SSD-Festplatte packenWahl Betriebssystemⓐ Das Raspberry Standard Betriebssystem hat später Kompatibilitätsprobleme.
ⓑ Das Ubuntu Server Abbild für Raspberry ist fehlerhaft: Ich kann mich nicht von meine Laptop in den Ubuntu Server SSHn. Greife ich per HDMI Montior und Tastatur direkt auf meinen Raspberry Pi zu, bekomme ich ständig Fehlermeldungen zu meiner Lanverbindung, die
bekannt sind. Unter "IP a" sehe ich, dass WLan geht aber ETH0 nicht geht. Mit dem Raspberry PI Betriebssystem oder mit Ububtu Desktop funktioniert die LAN-Verbindung. Es handelt sich also nicht um ein Hardware Problem sondern ein Softwareproblem speziell mit Ubuntu Server für Raspberry PI.
ⓒ Weil die erste Wahl (Ubuntu Server) nicht funktioniert entscheide ich mich für Ubuntu Desktop.
Wahl DatenträgerUnser Raspberry soll im Endzustand von der internen SSD aus laufen (nicht von der kleinen und langsamen SD-Karte):
❶ Option 1: Wer die interne SSD an seinen Laptop anschließen kann, sollte daher Ubuntu Desktop direkt mit dem Raspberry Pi Imager auf die SSD packen.
❷ Option 2: Ich kann keine zweite interne SSD-Festplatte an meinen Laptop anschließen. Deswegen (1) nutze ich den Raspberry Pi Imager, um Ubuntu Desktop auf die SD-Karte zu schreiben. (2) Anschließend starte ich den Raspberry Pi mit Ubuntu von der SD-Karte und schreibe mit dem Raspberry Pi Imager Ubuntu Desktop auf die SSD-Festplatte und (3) ändere die Bootreihenfolge.
❸ Ein
Klonen der SD-Karte auf die SSD mit Hilfe von
diesem Skript war nicht erfolgreich, da ein Booten nach dann nicht mehr möglich war und mit dem Fehler "
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)" abgebrochen ist. Im Raspberry PI Standardbetriebssyem gibt es das Programm "SD Card Cloner". Dieses Programm funktioniert.
ⓐ Imager
herunterladen ⓑ Imager installieren
sudo dpkg -i imager_1.8.5_amd64.deb
sudo apt --fix-broken install
rpi-imager
ⓒ Betriebssystem
Ubuntu Desktop auf die SD-Karte schreiben
ⓓ Raspberry mit Monitor und Tastatur starten
ⓔ Mit dem Imager
Ubuntu Desktop auf die SSD-Festplatte schreiben
ⓕ Boot-Reihenfolge ändern (Boot oder wird von rechts nach links gelesen mit 4 = USB, 1 = SD-Karte, 6 = SDD)
sudo rpi-eeprom-config --edit
BOOT_ORDER=0xf416
ⓖ Raspberry mit Monitor und Tastatur starten
ⓗ OpenSSH installieren (dieser Schritt entfällt bei Ubuntu Server)
Startbildschirm durchklicken, einfaches Passwort wählen, Terminal starten [Strg]+[Alt]+[t]
sudo apt update
pi@ras: sudo apt full-upgrade
pi@ras: sudo apt autoremove
pi@ras: sudo apt install openssh-server
pi@ras: hostname -I
192.168.0.122
Alternativ finden wir die IP-Adresse unseres Raspberry auch von unserem Client aus durch Login auf unserem Router unter "
http://192.168.0.1/".
Tipp: Zum Einrichten unseres Serves wählen wir ein Passwort, welches wir leicht eingeben können. Ein Passwort aus 24 zufälligen Buchstaben/Zahlen/Sonderzeichen dauernd auf dem Sperrbildschirm des Servers ohne Möglichkeit aus dem Passwortmanager zu kopieren ist zeitaufwändig
Schritt 5: Software auf Raspberry installieren6.1 Server LoginWir SSHn in unseren Server mit "ssh
USER@
IP", z.B.:
6.2 Passwort ändern6.3 Login über Youbi-Key ergänzenZiel: Wir möchten auf unseren Server nicht mehr per Passwort, sondern per Schlüsselpaar zugreifen. Hierbei liegt der öffentliche Schlüssel auf unserem Server und der private Schlüssel liegt auf unserem Youbikey.
6.3.1 SSH-Authentifizierung im Client umstellenDatei .bashrc öffnen
Kryptoarche@laptop nano .bashrc
folgende Zeilen einfügen
#Begründung: SSH soll "gpg-agent" statt "ssh-agent" benutzen um sich auf dem Server einzuloggen. Deswegen ändern wir SSH_AUTH_SOCK ab
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
Datei .bashrc speichern mit [Strg]+[X], [Y]
Neustart Shell, damit Änderungen wirksam werden:
Kryptoarche@laptop source .bashrc
Begründung:
Warum ".bashrc"? Immer wenn wir unser Terminal öffnen, werden die Befehle in der Datei .bashrc ausgeführt. Hier möchten wir eine Ergänzung vornehmen.
Warum "export"? Änderung soll für alle nachfolgenden Prozesse wirksam werden
Warum "gpgconf --list-dirs agent-ssh-socket"? Hier wird der Pfad zum agent-ssh-socket von GPG abgerufen
Code für Fehlerbehebung
echo $SSH_AUTH_SOCK #Zeigt an was SSH zum Login aktuell verwendet
gpgconf --list-dirs #Zeigt die Pfade an für die GPG Unterprogramme
gpgconf --list-dirs agent-ssh-socket #Zeigt den Pfad zum GPG Werkzeug für SSH an6.3.2 Den öffentlichen Schlüssel vom Youbikey an den Server schickenFür den Youbi-key Zugriff notwenidige Software installieren:
Kryptoarche@laptop sudo apt install scdaemon yubikey-manager libpam-yubico libpam-u2f libu2f-udev
Schlüsselnummer für den Authentification Key herausfinden:
Kryptoarche@laptop gpg --card-status
Schlüssel vom Youbikey auf den Client schicken:
Kryptoarche@laptop gpg --export-ssh-key 01234567890ABCDEF > ~/.ssh/id_rsa.pub
Schlüssel vom Client auf den Server schicken
Kryptoarche@laptop ssh-copy-id ubuntu@192.168.0.122
Prüfen, ob der öffentliche Schlüssel auf dem Server liegt:
ubuntu@ras cat .ssh/authorized_keys
ssh-rsa A....w== cardno:12 345 678
Evtl. mieten wir später mal einen Server mit Monero über TOR. In diesem Fall wäre es ungünstig unserem Server die Seriennummer unseres Yubikeys speichert. Über die Seriennummer lässt sich der Yubikeys unserer Rechnungsanschrift bzw. unserer Versandanschrift bzw. unserer Zahlungsmethode zuordnen.
Youbikey Bezeichung löschen
ubuntu@ras nano .ssh/authorized_keys
ssh-rsa A....w== Yubikey
Auf dem Server einloggen
Kryptoarche@laptop ssh ubuntu@192.168.0.120
Passwort für Youbikey eingeben
Youbikey druecken
6.3.3 Login im Server nach Neustart von QubesJe nach setup in Qubes vergisst die Virtuelle Maschine in Qubes vieles wieder.
Kryptoarche@laptop sudo apt install scdaemon yubikey-manager libpam-yubico libpam-u2f libu2f-udev
Youbi-Key der virtuellen Maschine zuordnen
Kryptoarche@laptop ssh ubuntu@192.168.0.122
Youbikey Passwort eingeben
Youbikey drücken
6.4 Login über Passwort beschränkenNachdem wir die Tür für einen Login mit Youbi-Key geöffnet haben, schließen wir die Tür mit unserem Passwort auf unseren Server zugreifen zu können.
Türen zu schließen schützt deinen Server vor unerwünschten Eindringlingen. Es kann vorkommen, dass du dir dabei selbst die Tür verschießt dich selbst von deinem Server ausschließt und keine SSH-Verbindung mehr aufbauen darfst.
Sicherheitsmassnahme 2 ssh verbindungen in 2 terminal laufen lassen. und yum test der neuen Verbindung nur von einem Terminal auslogen und wieder einloggen.
In diesem Fall musst du dich wieder mit Tastatur und Monitor direkt an deinen Server anschließen und die Regeln wieder lockern.
Konfigurationsdatei für den SSH-Server öffnen:
nano /etc/ssh/sshd_config
Wir verschärfen 3 Anmelderegeln
1.) Man darf sich per SSH nur als Benutzer Ubuntu (Sicht des Servers nicht des Clients) anmelden.
2.) Man darf sich nicht mehr per Passwort sondern nur per Youbikey anmelden.
3.) Man darf sich nicht mehr direkt als Root anmelden nur noch indirekt über den Benutzter Ubuntu.
Inhalt, den wir ändern müssen:
#PermitRootLogin prohibit-password#PasswordAuthentication yesneuer Inhalt:
AllowUsers ubuntu
PasswordAuthentication no
PermitRootLogin no
ubuntu@ras systemctl restart ssh.service
https://www.youtube.com/watch?v=_Hrnls92TxQPrüfe, ob du dich noch einloggen kannst:
ubuntu@ras logout
Kryptoarche@laptop ssh ubuntu@192.168.0.122
ubuntu@ras
Ein Einloggen per Passwort oder als Benutzer PI sollte nicht mehr möglich sein.
6.5 Firewall hinzufügenUncomplicated Firewall soll nur SSH-Verbindungen aus dem lokalen Netzwerk zulassen und fail2ban soll Brute-force-Angriffe unterbinden.
Wir erlauben Verbindungen nur aus dem eigenen Netzwerk. Dein Laptop ist jetzt z.B. 192.168.
0.35. Ein Anderer Laptop hat die IP-Adresse 192.168.
0.50. Wir erlauben alles mit einer IP-Adresse 192.168.
0.XXX.
ubuntu@ras sudo -i
root@ras sudo ufw allow from 192.168.0.0/24 to any port ssh comment 'Allow SSH from LAN'
Rules updated
root@ras: ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
root@ras: ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW 192.168.0.0/24 # Allow SSH from LAN
root@ras: apt install fail2ban[/code]
Befehle zum Entfernen von Regeln Nr. 1
sudo ufw delete 1
Befehle zur Wartung:
fail2ban-client status
fail2ban-client status sshd
6.6 Server soll auch über TOR und I2PD kommunizieren könnenHinzufügen von HTTPS, der TOR-Paketquelle, dem TOR Schlüssel, TOR und i2pd
root@ras: apt install apt-transport-https
root@ras: wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
root@ras: dpkg --print-architecture
arm64
root@ras: lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
Jede Ubuntu Version hat einen Codenamen
Ubuntu 18.04 LTS = bionic
Ubuntu 20.04 LTS = focal
Ubuntu 22.04 LTS = jammy
Ubuntu 24.04 LTS = noble
https://deb.torproject.org/torproject.org/dists/Ich habe Ubuntu 24.04 installiert, aber TOR hat erst 22.04 als neuste Version, deswegen nutze ich "jammy"
root@ras: nano /etc/apt/sources.list.d/tor.list
deb [arch=arm64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org jammy main
deb-src [arch=arm64 signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org jammy main
root@ras: apt update
root@ras: apt install tor deb.torproject.org-keyring
root@ras: torsocks add-apt-repository ppa:purplei2p/i2pd
root@ras: torsocks apt install i2pd
root@ras: systemctl enable i2pd
6.6 Reserve Proxy nginx installieren als Schutz vor Ddos-AngriffenDdos-Angriffe = Server kann normale Anfragen nicht mehr bearbeiten, weil Angreifer Server den Server mit vielen falschen Anfragen überlasten und lahm legen.
Anfragen werden indirekt über den Reserve Proxy (in diesem Fall Nginx) geleitet, der als Spamschutz fungiert.root@ras: apt install nginx
root@ras: sudo apt-get install nginx-extras
root@ras: nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@ras: nano /etc/nginx/nginx.conf
Inhalt ersetzen
user www-data;
worker_processes 1;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
stream {
ssl_certificate /etc/ssl/certs/nginx.crt;
ssl_certificate_key /etc/ssl/private/nginx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 4h;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
include /etc/nginx/streams-enabled/*.conf;
}
root@ras: nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
selbstsigniertes SSL/TLS-Zertifikat erzeugen:
Nginx-Konfigurationsdateien auf Syntaxfehler und Konsistenzfehler überprüfen
nginx neu starten
root@ras: openssl req -x509 -newkey rsa:4096 -days 365 -keyout /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.crt -nodes -subj "/CN=localhost"
root@ras: nginx -t
root@ras: systemctl restart nginx.service
7.1 Benutzer hinzufügenroot@ras: adduser --disabled-password --gecos "" bitcoin
root@ras: adduser --disabled-password --gecos "" electrs
root@ras: adduser --disabled-password --gecos "" lightning
root@ras: adduser --disabled-password --gecos "" rtl
root@ras: logout
so kommt man rein in den Benutzter: sudo su - bitcoin
so kommt man raus: [Strg]+[d]
7.2 Bitcoincore installierenTor Browser öffnen
Seite aufrufen
https://bitcoincore.org/bin/neuste Version finden (z.B.
https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz und
https://bitcoincore.org/bin/bitcoin-core-27.1/SHA256SUMS.asc)
ubuntu@ras: torsocks wget https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-aarch64-linux-gnu.tar.gz
ubuntu@ras: torsocks wget https://bitcoincore.org/bin/bitcoin-core-27.1/SHA256SUMS.asc
ubuntu@ras: torsocks wget https://raw.githubusercontent.com/bitcoin/bitcoin/refs/heads/master/contrib/verify-commits/trusted-keys
ubuntu@ras: while read key keyholder_name; do gpg --keyserver keyserver.ubuntu.com --recv-keys ${key}; done < ./trusted-keys
https://github.com/bitcoin-core/guix.sigs/tree/main/builder-keysubuntu@ras: torsocks wget
https://bitcoincore.org/bin/bitcoin-core-27.1/SHA256SUMSubuntu@ras: gpg --verify SHA256SUMS.asc
Good signature from ...
Can't check signature ...
ubuntu@ras: sha256sum bitcoin-27.1-aarch64-linux-gnu.tar.gz
bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee
ubuntu@ras: grep bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee SHA256SUMS
bb878df4f8ff8fb8acfb94207c50f959c462c39e652f507c2a2db20acc6a1eee
ubuntu@ras: tar -xzf bitcoin-27.1-aarch64-linux-gnu.tar.gz
ubuntu@ras: cd bitcoin-27.1/bin/
sudo cp * /usr/local/bin/
cd
rm -r *
----
ubuntu@ras: sudo apt install cargo clang cmake
ubuntu@ras: sudo apt install curl git
ubuntu@ras: sudo su - electrs
electrs@ras: torify curl
https://romanzey.de/pgp.txt | gpg --import
electrs@ras: git clone
https://github.com/romanz/electrs.gitelectrs@ras: cd electrs
electrs@ras: git tag | sort -V
...
v0.10.5
electrs@ras: electrs@ras: git checkout v0.10.5
electrs@ras: git verify-tag v0.10.5
Good signature from "Roman Zeyde
electrs@ras: cargo build --locked --release
cargo fix --lib -p electrs
-----
ubuntu@ras: sudo ln -s /home/electrs/electrs/target/release/electrs /usr/local/bin/electrs
ubuntu@ras: sudo apt-get install autoconf automake build-essential git libtool libgmp-dev libsqlite3-dev python3 python3-pip net-tools zlib1g-dev libsodium-dev gettext python3.12-venv
ubuntu@ras: sudo su - lightning
lightning@ras: pip3 install --upgrade pip --break-system-packages
lightning@ras: curl -sSL
https://install.python-poetry.org | python3 -
lightning@ras: . .profile
lightning@ras: git clone
https://github.com/ElementsProject/lightning.gitlightning@ras: curl
https://raw.githubusercontent.com/ElementsProject/lightning/master/contrib/keys/rustyrussell.txt | gpg --import
lightning@ras: torify curl
https://raw.githubusercontent.com/ElementsProject/lightning/refs/heads/master/contrib/keys/sfarooqui.txt | gpg --import
lightning@ras: cd lightning/
lightning@ras: git tag | sort -V
...
v24.08
v24.08rc1
v24.08rc2
v24.08rc3
v24.08.1
variant-pyunittests
where-the-500-went
Wir suchen die neuste stabile Version aus ohne das Kürzel "rc" = realse candidat
lightning@ras: git checkout v24.08.1
lightning@ras: git verify-tag v24.08.1
...
gpg: Good signature from "Shahana Farooqui <
shahana.farooqui@gmail.com>"
...
lightning@ras: poetry install
lightning@ras: ./configure
lightning@ras: poetry run make
lightning@ras: logout
ubuntu@ras: sudo ln -s /home/lightning/lightning/lightningd/lightningd /usr/local/bin/lightningd
ubuntu@ras: sudo ln -s /home/lightning/lightning/cli/lightning-cli /usr/local/bin/lightning-cli
ubuntu@ras: sudo ln -s /home/lightning/lightning/tools/hsmtool /usr/local/bin/hsmtool
-----
ubuntu@ras: torify curl -fsSL
https://deb.nodesource.com/setup_18.x | sudo -E bash -
ubuntu@ras: sudo apt install nodejs
ubuntu@ras: mkdir ~/.npm-global
ubuntu@ras: npm config set prefix '~/.npm-global'
ubuntu@ras: export PATH="$HOME/.npm-global/bin:$PATH"
ubuntu@ras: sudo su - lightning
lightning@ras: git clone
https://github.com/Ride-The-Lightning/c-lightning-REST.gitlightning@ras: torify curl
https://keybase.io/suheb/pgp_keys.asc | gpg --import
lightning@ras: cd c-lightning-REST/
lightning@ras: git tag | sort -V
...
v0.10.6
v0.10.7
lightning@ras: git checkout v0.10.7
lightning@ras: git verify-tag v0.10.7
lightning@ras: npm install
lightning@ras: logout
ubuntu@ras: sudo su - rtl
rtl@ras:~$ torify git clone
https://github.com/Ride-The-Lightning/RTL.gitrtl@ras: cd RTL
rtl@ras: git tag | sort -V
...
v0.15.2
rtl@ras: git checkout v0.15.2
rtl@ras: curl
https://keybase.io/suheb/pgp_keys.asc | gpg --import
rtl@ras: git verify-tag v0.15.2
rtl@ras: npm install --only-prod --legacy-peer-deps
rtl@ras: logout
_____
ubuntu@ras: ls -l /usr/local/bin
ubuntu@ras: logout
user@work: nano .ssh/config
Host bitcoin
Hostname 192.168.0.122
User ubuntu
user@work: ssh bitcoin
ubuntu@ras: sudo nano /etc/tor/torrc
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
ubuntu@ras: sudo adduser bitcoin debian-tor
ubuntu@ras: sudo reboot
user@work: ssh bitcoin
ubuntu@ras: sudo su - bitcoin
bitcoin@ras: mkdir .bitcoin
bitcoin@ras: chmod 750 .bitcoin/
bitcoin@ras:~$ cd .bitcoin/
bitcoin@ras: torify wget
https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.pybitcoin@ras: python3 rpcauth.py bitcoin
String to be appended to bitcoin.conf:
rpcauth=
bitcoin:5008f857919c4fa48d60bafc01c7aede$d5ee4a8331300bf27ecb67f0b8c08388205e22ae5ddfbd32b4609fae87281c77Your password:
YeSNPaaffVL5ZhM8DPKANexx0UALaNJjZdYhN06W-0M
bitcoin@ras: nano rpcauth.passwd
bitcoin@ras: rm rpcauth.py
bitcoin@ras: chmod 400 rpcauth.passwd
bitcoin@ras: nano bitcon.conf
server=1
daemon=1
txindex=1
blockfilterindex=1
dns=0
dnsseed=0
debug=tor
listen=1
onlynet=onion
bind=127.0.0.1
proxy=127.0.0.1:9050
debug=i2p
onlynet=i2p
i2psam=127.0.0.1:7656
i2pacceptincoming=1
addnode=qymtyb3jr5dcdfxrollomfc47m6d26zb6fimch2vquu57ohmnm4bggqd.onion
addnode=ibl4vd3oroohjnqbfifnvzmqe3wx4ndvbt6rwrjlq5dnw5gfrox7diid.onion
addnode=tyj6766rt52lg55vgckovncqixix2ks4hozkmxzao3gs7o34pzogzfad.onion
addnode=3gel4s6h7hvdcedmgcccgn2cf4stiujh3pad74oc2xawq3h6anygfdad.onion
addnode=7whfpvckeujkakxitpl3hupxjwbzvktwlbkcfux3ofkj3ia4tgtggzyd.onion
addnode=fztze67r6sq4eysnyx5oam6i35s4iwg4ffqx57jucrjjgppj4wqx3yid.onion
addnode=lasdk54cwhyzwyykl3giuiqqwfzx7jc3opr7b3ysokvoz3tmrffcldid.onion
addnode=xzoyoujmunmbf53zlruufdkcq7lvm35zf22zqpgfwjt3gl5hexrq.b32.i2p
addnode=dbm4jht7uyxgy5h4kpp4t65dwqjykv5kltitbzuhtjm4ccqnrpha.b32.i2p
addnode=pri25k5fagjnwhceb4io6sl2oio4ssw7juhpt2iebwnkkuuc2ihq.b32.i2p
addnode=liu75cvktv4icbctg72w7nxbk4eibt7wamizfdii4omz7gcke5vq.b32.i2p
bitcoin@ras: nano bitcon.conf #add line
rpcauth=
bitcoin:5008f857919c4fa48d60bafc01c7aede$d5ee4a8331300bf27ecb67f0b8c08388205e22ae5ddfbd32b4609fae87281c77bitcoin@ras: chmod 640 bitcoin.conf
bitcoin@ras: systemctl status tor
bitcoin@ras: systemctl status i2pd
bitcoin@ras: bitcoind
bitcoin@ras: tail -f debug.log
bitcoin@ras: bitcoin-cli -getinfo
bitcoin@ras: bitcoin-cli -netinfo
bitcoin@ras: watch -t bitcoin-cli -getinfo
21:25
bitcoin@ras: bitcoin@ras: bitcoin-cli stop
Bitcoin als Service aufsetzten
bitcoin@ras: logout
ubuntu@ras: sudo nano /etc/systemd/system/bitcoind.service
[Unit]
Description=Bitcoin daemon
After=network.target
[Service]
# Service execution
###################
ExecStart=/usr/local/bin/bitcoind -daemon \
-pid=/run/bitcoind/bitcoind.pid \
-conf=/home/bitcoin/.bitcoin/bitcoin.conf \
-datadir=/home/bitcoin/.bitcoin \
# Process management
####################
Type=forking
PIDFile=/run/bitcoind/bitcoind.pid
Restart=on-failure
TimeoutSec=300
RestartSec=30
# Directory creation and permissions
####################################
User=bitcoin
UMask=0027
# /run/bitcoind
RuntimeDirectory=bitcoind
RuntimeDirectoryMode=0710
# Hardening measures
####################
# Provide a private /tmp and /var/tmp.
PrivateTmp=true
# Mount /usr, /boot/ and /etc read-only for the process.
ProtectSystem=full
# Disallow the process and all of its children to gain
# new privileges through execve().
NoNewPrivileges=true
# Use a new /dev namespace only populated with API pseudo devices
# such as /dev/null, /dev/zero and /dev/random.
PrivateDevices=true
# Deny the creation of writable and executable memory mappings.
MemoryDenyWriteExecute=true
[Install]
WantedBy=multi-user.target
ubuntu@ras: sudo systemctl enable bitcoind.service #starten beim hochfahren
ubuntu@ras: sudo systemctl start bitcoind.service #starten jetzt
ubuntu@ras: sudo systemctl status bitcoind.service #status checken
ubuntu@ras: sudo journalctl -fu bitcoind #logs checken
ubuntu@ras: sudo adduser ubuntu bitcoin #ubuntu soll Mitglied der Gruppe bitcoin sein, damit er auf die Dateien von bitcoin zugreifen kann.
ubuntu@ras: logout
user@work: ssh bitcoin
ubuntu@ras: cd /home/bitcoin/.bitcon
ubuntu@ras: ls -la
ubuntu@ras: sudo systemctl stop bitcoind.service #stoppen
ubuntu@ras: sudo nano /etc/systemd/system/bitcoind.service
-startupnotify="chmod g+r /home/bitcoin/.bitcoin/.cookie" #ergänzen
ubuntu@ras: sudo systemctl daemon-reload #Änderungen übernehmen
ubuntu@ras: sudo systemctl start bitcoind.service #starten jetzt
ubuntu@ras: ls -la
-rw-r----- 1 bitcoin bitcoin 75 Oct 2 08:11 .cookie #gruppe darf jetzt auch lesen
ubuntu@ras: sudo systemctl stop bitcoind.service
(hier habe ich etwas ausgelassen)
27:00
ubuntu@ras: cd /
ubuntu@ras: rm -r .bitcoin/
ubuntu@ras: ln -s /home/bitcoin/.bitcoin/ ./.bitcoin
ubuntu@ras: sudo systemctl stop bitcoind.service
ubuntu@ras: bitcoin-cli -getinfo
Electrum server installieren
ubuntu@ras: sudo adduser electrs bitcoin #damit Electrum Zugriff auf den Bitcoin blocks hat
ubuntu@ras: id electrs
uid=1004(electrs) gid=1004(electrs) groups=1004(electrs),100(users),1003(bitcoin)
ubuntu@ras: sudo su - electrs
electrs@ras: mkdir .electrs
electrs@ras: nano .electrs/electrs.conf
network = "bitcoin"
daemon_dir= "/home/bitcoin/.bitcoin"
daemon_rpc_addr = "127.0.0.1:8332"
daemon_p2p_addr = "127.0.0.1:8333"
electrum_rpc_addr = "127.0.0.1:50001"
db_dir = "/home/electrs/.electrs/db"
index_lookup_limit = 1000
log_filters = "INFO"
timestamp = true
electrs@ras: electrs --conf .electrs/electrs.conf
#ein paar stunden warten
29:42