1. Aktiviere automatische Software Updates

One of the most important things to keep your relay secure is to install security updates timely and ideally automatically so you can not forget about it. Follow the instructions to enable automatic software updates for your operating system.

2. Bootstrap pkg

This guide assumes we have already a base installation of FreeBSD running, and only the base system. 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

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

We are keeping the original setting used by pkg but setting a new one that will override it. So we set up a new directory, and then create a configuration file to override what we need. This configuration file will be /usr/local/etc/pkg/repos/FreeBSD.conf.

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. Install Tor

You can choose to install the stable version (recommended):

# pkg install tor

Or install an alpha release:

# pkg install tor-devel

4. Install obfs4proxy

# pkg install obfs4proxy-tor

5. Edit your Tor config file, usually located at /usr/local/etc/tor and replace its content with:

RunAsDaemon 1
BridgeRelay 1

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

ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy

# Ersetze "TODO2" durch einen obfs4-Anschluss deiner Wahl. Dieser Anschluss 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 Anschluss ab.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# Lokaler Kommunikations-Anschluss zwischen Tor und obfs4. Stelle dies immer auf "auto" ein.
# "Ext" bedeutet "erweitert", nicht "extern". Versuche weder eine bestimmte Anschluss-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-Anschluss von Tor als auch der obfs4-Anschluss erreichbar sein müssen. Wenn sich deine Brücke hinter einer Firewall oder NAT befindet, stelle sicher, dass beide Anschlüsse geöffnet sind. Du kannst unseren Erreichbarkeitstest benutzen, um zu sehen, ob dein obfs4-Anschluss aus dem Internet erreichbar ist.

  • Are you using FreeBSD's firewall with a "default deny" policy? If so, make sure that your obfs4proxy can talk to your Tor process over the loopback interface. Don't forget to whitelist Tor's ExtORPort.

6. Ensure that the random_id sysctl setting is enabled

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

7. Start the tor daemon and make sure it starts at boot

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

8. Monitor your 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:

[Hinweis] Der Fingerabdruck des Identitätsschlüssels deines Tor-Servers ist '<NICKNAME> <FINGERPRINT>'
[Hinweis] Der Fingerabdruck des gehashten Identitätsschlüssels deiner Tor-Brücke ist '<NICKNAME> <HASHED FINGERPRINT>'
[Hinweis] Registrierter Server-Transport 'obfs4' unter '[::]:46396'
[Hinweis] Tor hat erfolgreich einen Kanal geöffnet. Sieht aus, als ob die Programm-Funktionalität funktioniert.
[Hinweis] Bootstrapped 100%: Abgeschlossen
[Hinweis] Überprüfung, ob ORPort <redacted>:3818 erreichbar ist ... (dies kann bis zu 20 Minuten dauern - suche nach Logmeldungen, die den Erfolg anzeigen)
[Hinweis] Der Selbsttest zeigt an, dass dein ORPort von außen erreichbar ist. Ausgezeichnet. Veröffentliche Server-Deskriptor.

9. Final Notes

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.