1. Aktiviere automatische Software Updates

Eines der wichtigsten Dinge, um dein Relay sicher zu halten, ist die rechtzeitige und idealerweise automatische Installation von Sicherheitsupdates, damit du es nicht vergessen kannst. Folge den Anweisungen, um automatische Software-Updates für dein Betriebssystem zu aktivieren.

2. Bootstrap pkg

Dieser Artikel geht davon aus, dass bereits eine Basisinstallation von FreeBSD läuft, und zwar nur das Basissystem. Das bedeutet, dass wir keine Pakete installiert haben, nicht einmal den pkg-Paketmanager selbst (es ist kein sudo verfügbar - wir führen die Befehle als root aus).

Um zu booten und pkg zu installieren, sollten wir den folgenden Befehl ausführen:

# pkg bootstrap
# pkg update -f
2.1. Empfohlene Schritte um pkg einzurichten

Um Upstream-Aktualisierungen "schneller" verfolgen zu können, empfehlen wir, den von pkg verwendeten 'vierteljährlichen' Zweig in den 'neuesten' Zweig zu ändern.

Ein zusätzlicher Schritt ist die bevorzugte Verwendung von HTTPS, um unsere Pakete und Aktualisierungen abzurufen - hier benötigen wir auch ein zusätzliches Paket, das uns dabei hilft (ca_root_nss).

Installieren des Pakets ca_root_nss:

# pkg install ca_root_nss

Wir behalten die ursprüngliche Einstellung von pkg bei, setzen aber eine neue, die diese überschreibt, also richten wir ein neues Verzeichnis ein und erstellen dann eine Konfigurationsdatei, die das überschreibt, was wir brauchen. Diese Konfigurationsdatei wird /usr/local/etc/pkg/repos/FreeBSD.conf sein.

Erstellen des neuen Verzeichnisses:

# mkdir -p /usr/local/etc/pkg/repos

So muss die neue Konfigurationsdatei /usr/local/etc/pkg/repos/FreeBSD.conf aussehen:

FreeBSD: {
  url: pkg+https://pkg.freebsd.org/${ABI}/latest
}

Nach Anwendung all dieser Änderungen aktualisieren wir die Paketliste erneut und versuchen zu prüfen, ob bereits eine neue Aktualisierung anzuwenden ist:

# pkg update -f
# pkg upgrade -y -f

3. Installiere Tor

Hier können wir uns für die letzte stabile Version entscheiden (empfohlen):

# pkg install tor

Oder wir können eine Alpha-Version installieren:

# pkg install tor-devel

4. Installiere obfs4proxy

# pkg install obfs4proxy-tor

5. Bearbeite deine Tor-Konfigurations-Datei, die sich normalerweise unter /usr/local/etc/tor befindet, und ersetze ihren Inhalt durch:

RunAsDaemon 1
BridgeRelay 1

# Ersetze "TODO1" durch einen Tor Port deiner Wahl. Dieser Port muss von außen
# erreichbar sein. Vermeide Port 9001, weil er üblicherweise mit Tor in Verbindung gebracht wird, und
# Zensoren suchen möglicherweise das Internet nach diesem Port ab.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy

# Ersetze "TODO2" durch einen obfs4 Port deiner Wahl. Dieser Port muss
# von außen erreichbar sein und muss sich von dem für ORPort angegebenen unterscheiden.
# Vermeide Anschluss 9001, weil er häufig in Verbindung gebracht wird mit
# Tor, und Zensoren suchen möglicherweise das Internet nach diesem Port ab.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# Lokaler Kommunikations-Port zwischen Tor und obfs4. Stelle dies immer auf "auto" ein.
# "Ext" bedeutet "erweitert", nicht "extern". Versuche weder eine bestimmte Port-Nummer
# einzustellen, noch auf 0.0.0.0 zu hören.
ExtORPort auto

# Ersetze "<address@email.com>" mit deiner E-Mail-Adresse, damit wir dich kontaktieren können, wenn
# es Probleme mit deiner Brücke gibt  Dies ist freiwillig, wird aber empfohlen.
ContactInfo <address@email.com>

# Wähle einen Spitznamen für deine Brücke. Dies ist optional.
Nickname PickANickname

Log notice file /var/log/tor/notices.log

Vergiß nicht, die Optionen ORPort, ServerTransportListenAddr, ContactInfo und Spitzname zu ändern.

  • Beachte, dass sowohl der OR-Port von Tor als auch der obfs4-Port erreichbar sein müssen. Wenn sich deine Brücke hinter einer Firewall oder NAT befindet, stelle sicher, dass beide Ports geöffnet sind. Du kannst unseren Erreichbarkeitstest benutzen, um zu sehen, ob dein obfs4-Port aus dem Internet erreichbar ist.

  • Verwendest du die FreeBSD-Firewall mit einer "default deny"-Richtlinie? Wenn ja, stelle sicher, dass dein obfs4proxy mit deinem Tor-Prozess über die Loopback-Schnittstelle kommunizieren kann. Vergiss nicht, Tor's ExtORPort auf die Whitelist zu setzen.

6. Stelle sicher, dass die Sysctl-Einstellung random_id aktiviert ist

# echo "net.inet.ip.random_id=1" >> /etc/sysctl.conf
# sysctl net.inet.ip.random_id=1

7. Starte den Tor-Daemon und stelle sicher, dass er beim Systemstart startet

# sysrc tor_setuid=YES
# sysrc tor_enable=YES
# service tor start

8. Überwache deine Logs

Um zu bestätigen, dass deine Brücke ohne Probleme läuft, solltest du in /var/log/tor/notices.log etwas wie das hier sehen:

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Registered server transport 'obfs4' at '[::]:46396'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
[notice] Now checking whether ORPort <redacted>:3818 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

9. Schlussbemerkungen

Wenn du Probleme beim Einrichten deiner Brücke hast, schau dir unsere Hilfe-Sektion an. Wenn deine Brücke jetzt läuft, sieh dir die Nachinstallations-Hinweise an.