BTCPay und LNBits auf Raspiblitz über Clearnet erreichen mit IP2Tor
Heute schauen wir uns in diesem Artikel an, wie wir BTCPay Server und eine LNBits Instanz auf dem Raspiblitz mit IP2Tor über das Clearnet erreichen können. Dabei richten wir auch gleich Nginx ein, und holen uns eine Zertifikat für die Domain.
Vorbereitungen
Das Tutorial basiert auf dem Artikel eigenen IP2Tor Server für den Rapsiblitz einrichten. Damit ihr einen groben Überblick habt, lesst euch den Artikel vorher durch, damit ihr vorbereitet seid, und die entsprechenden Bedienungen installiert habt. Die im Artikel beschriebene Einrichtung vom LND Dienst muss nicht eingerichtet werden, sie galt nur als Beispiel.
Installiert euch zudem den BTCPay Server, und / oder LNBits auf eurem Raspiblitz. Schreibt euch die Onion Adressen der jeweiligen Dienste auf. Die findet ihr im cli-menu
unter den jeweiligen Einträgen:
Die Onion Addresse für LNBits findet ihr 2 Einträge unter BTCPay Server Info.
Domain einrichten
Damit ihr euren BTCPay Server über eine Domain via https erreichen könnt, müsst ihr eine Domain haben, die auf den Server zeigt, dass kann auch eine gratis DynDNS Addresse sein, falls ihr kein Geld ausgeben möchtet. Bei einem VPS Server mit statischer IP bietet es sich aber an, eine eigene fixe Domain zu kaufen, und diese auf den Server zeigen zu lassen. Das könnt ihr zum Beispiel bei https://strato.de, oder in der Schweiz bei https://hostpoint.ch tun.
Falls ihr kein Bock auf sowas habt, könnt ihr auch eine Domain bei uns kaufen. Wir erledigen die Einrichtung mit einem A-Record auch gerne gleich mit dazu.
In den DNS Records müsst ihr einen A-Record setzen, der auf die VPS IP zeigt. Dies sieht in der Regel bei Hostpoint zum Beispiel so aus:
Name: eure Subdomain, zum Beispiel btcpay oder btcpay-raspibliblitz, und für LNBits zum Beispiel einfach lnbits
TTL: Bleibt bei 300
IP-Adresse: die IP Adresse eurer VPS
Danach Record hinzufügen und bestätigen.
Einrichtung auf eurem IP2Tor Server
Ihr habt euch im bestenfall schon einen IP2Tor Server eingerichtet, falls nicht, lesst den oben verlinkten Beitrag, und richtet kurz Tor und Socat ein. Hier nochmals der Beitrag:
BTCPay Server IP2Tor Dienst einrichten
Erstellt euch einen neuen IP2TorDienst auf dem VPS mit:
sudo nano /etc/systemd/system/ip2tor_btcpay.service
und fügt folgenden Inhalt hinzu:
[Unit]
Description=Tor2IP Tunnel Service
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/bin/socat TCP4-LISTEN:23002,bind=0.0.0.0,fork SOCKS4A:localhost:eure_btcpay_onion_addresse.onion:80,socksport=9050
StandardOutput=journal
PrivateTmp=true
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.target
Der Port ist frei wählbar, ihr könnt einen nehmen, der euch passt. Dieser muss dann einfach mit dem SystemD Dienst weiter übereinstimmen. Ersetzt den fett markierten Teil mit eurer BTCPay Onion Adresse die ihr euch von eurem Raspiblitz notiert habt. Speichert die Datei mit strg+o und beendet mit strg+x
Startet den Dienst mit neu mit sudo systemctl start ip2tor_btcpay.service
und checkt den Dienst mit sudo systemctl status ip2tor_btcpay.service
:
Mit sudo systemctl enable ip2tor_btcpay.service
aktiviert ihr den Dienst bei Systemstart.
Nginx installieren, einrichten und SSL Zertifikat beantragen
Damit wir die Seite über unsere Domain erreichen können, müssen wir uns Nginx auf dem VPS installieren und einen Reverse Proxy einrichten, der die Anfrage an socat weiterleitet.
Installiert euch nginx mit
apt install nginx
Entfernt die Standard Konfigurationen mit
rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default
Fügt eine neue nginx Konfiguration hinzu mit:
nano /etc/nginx/sites-available/ip2tor_btcpay
und fügt folgenden Eintrag ein:
server {
server_name eure_domain.de;
location / {
proxy_pass http://127.0.0.1:23002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ersetzt den fett markierten Text mit eurer Domain die ihr bei eurem Hoster festgelegt habt und gebt den selben Port hier an!
Erstellt einen syslink in den sites-enabled Ordner:
ln -s /etc/nginx/sites-available/ip2tor_btcpay /etc/nginx/sites-enabled/
checkt ob alles korrekt ist mit dem Befehl nginx -t
und falls ihr ein Syntax OK bekommt, ladet nginx mit sudo systemctl reload nginx
neu.
SSL Zertifikat holen
Für die Domain brauchen wir ein SSL Zertifikat um eine gesicherte Verbindung herstellen zu können. Dafür müssen wir uns ein SSL-Zertifikat holen. Das geht am besten mit certbot. Damit lassen sich einfach Lets Encrypt Zertifikate beantragen, und direkt die entsprechende nginx Konfiguration anpassen.
Installiert euch certbot auf dem VPS mit:
apt install certbot python3-certbot-nginx
und beantragt anschliessend nach der Installation eine Zertifikat mit:
certbot --nginx -d eure_domain.de -m eure_mail_addresse
Ersetzt eure_domain.de mit eurer gekauftet Domain, und gebt eure Mail-Addresse an. Die Domain muss die selbe sein wie in der nginx Konfiguration, welche wir angelegt haben!
Ihr bekommt 2 Fragen von Letsencrypt. Einmal ob ihr mit den Vertragsbediengungen einverstanden seid, und einmal ob ihr Neuigkeiten von Letsencrypt erhalten wollt. Stimmt den Vertragsbediengungen hinzu, und nehmt den Newsletter an, oder nicht. Falls alles geklappt habt, bekommt ihr folgende Meldung:
Das SSL Zertifikat wird automatisch erneuert, falls es abläuft. Die Zertifikate sind in der Regel 90 Tage gültig.
Hat alles geklappt, könnt ihr nun euren BTCPay Server via Domain und https Verbindung aufrufen:
LNBits Server IP2Tor Dienst einrichten
Die Ablauf ist der selbe wie beim BTCPay Server. Natürlich müsst ihr auf eurem Hoster eine neue Subdomain erstellen, zum Beispiel lnbits.eure_domain.de. Erzeugt eine neuen LNBits Dienst auf dem VPS mit:
sudo nano /etc/systemd/system/ip2tor_lnbits.service
Fügt folgenden Inhalt hinzu:
[Unit]
Description=Tor2IP Tunnel Service
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/bin/socat TCP4-LISTEN:5002,bind=0.0.0.0,fork SOCKS4A:localhost:eure_lnbits_addresse.onion:80,socksport=9050
StandardOutput=journal
PrivateTmp=true
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
[Install]
WantedBy=multi-user.target
Speichert die Datei ab, startet den Dienst mit sudo systemctl start ip2tor_lnbits.service
und aktiviert den Dienst bei Systemstart mit sudo systemctl enable ip2tor_lnbits.service
Erstellt eine neue Nginx Kongifurationsdatei mit
nano /etc/nginx/sites-available/ip2tor_lnbits
und fügt folgenden Inhalt hinzu:
server {
server_name eure_lnbits_domain.de;
location / {
proxy_pass http://127.0.0.1:5002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Achtet darauf dass ihr den selben Port nehmt, wie in eurer Nginx Konfiguration! Fügt einen neuen symlink hinzu mit:
ln -s /etc/nginx/sites-available/ip2tor_lnbits /etc/nginx/sites-enabled/
Testet die Konfiguration mit nginx -t
und ladet Nginx neu mit systemctl reload nginx
Danach wieder das SSL Zertifikat beantragen mit:
certbot --nginx -d lnbits-eure_domain.de -m info@yourdevice.ch
Passt die fett markierten Einträge entsprechend an.
Anschliessend solltet ihr über die URL auf eure LNBits Instanz kommen:
Damit ihr auf euren Server Account kommt, fügt die Wallet Addresse am Ende der URL hinzu, die euch der Info-Screen des Raspiblitzes gibt:
Abschluss
Die Einrichtung von Tor-Diensten über socat
, Tor und Nginx mit SSL-Zertifikat bietet eine sichere und anonyme Methode, um verborgene Dienste im Clearnet zugänglich zu machen. Dieser Prozess ermöglicht es euch, die Vorteile des Tor-Netzwerks zu nutzen, während ihr gleichzeitig die Benutzerfreundlichkeit und Sicherheit einer HTTPS-Verbindung gewährleistet. Ich hoffe der Artikel <BTCPay und LNBits auf Raspiblitz über Clearnet erreichen mit IP2Tor> hat euch gefallen. Habt ihr Fragen, hinterlasst sie in den Kommentaren!