Wie kann man ein Tor-Relay auf Selbstständigkeit umstellen?

2 Antworten

falls ich es vom Strom entferne

Uh, ganz übel. Der Pi will sauber heruntergefahren werden. Ausschalten per Stromausfall führt über kurz oder lang zu Fehlern im Dateisystem.

Du kannst jeden Dienst selbstständig beim Hochfahren des Gerätes per systemd starten. Dazu braucht es eine Unit-Datei.

cat /lib/systemd/system/tor.service
# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.

[Unit]
Description=Anonymizing overlay network for TCP (multi-instance-master)

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true

[Install]
WantedBy=multi-user.target

Ich würde vermuten, dass diese Datei bereits existiert. Anschließend:

systemctl daemon-reload
systemctl enable tor

So sollte Tor beim Systemstart automatisch gestartet werden. Für andere Dienste (keine Ahnung, was der V-Server sein soll) geht das analog. In der Regel werden die nötigen Units direkt mitinstalliert. In der Regel werden sie auch bei der Installation aktiviert. Wenn Du mehrere Tor-Instanzen parallel laufen lassen möchtest, geht das auch. Dazu legst Du ein Verzeichnis an:

mkdir /etc/tor/instances

In dieses Verzeichnis kommt dann für jede Instanz ein weiteres Verzeichnis:

ls /etc/tor/instances
instance1 instance2 instance3

Der Name der Verzeichnisse ist egal, da kannst Du auch etwas Beschreibenderes nehmen. In jedes dieser Verzeichnisse kommt nun die entsprechende torrc rein.

Dann schreibst Du eine Unit-Datei:

nano /etc/systemd/system/tor@.service
[Unit]
Description=Anonymizing overlay network for TCP (instance %i)
After=network.target nss-lookup.target
PartOf=tor.service
ReloadPropagatedFrom=tor.service

[Service]
Type=notify
NotifyAccess=all
PIDFile=/run/tor-instances/%i/tor.pid
PermissionsStartOnly=yes
ExecStartPre=/usr/bin/install -Z -m 02755 -o _tor-%i -g _tor-%i -d /run/tor-instances/%i
ExecStartPre=/bin/sed -e 's/@@NAME@@/%i/g; w /run/tor-instances/%i.defaults' /usr/share/tor/tor-service-defaults-torrc-instances
ExecStartPre=/usr/bin/tor --defaults-torrc /run/tor-instances/%i.defaults -f /etc/tor/instances/%i/torrc --verify-config
ExecStart=/usr/bin/tor --defaults-torrc /run/tor-instances/%i.defaults -f /etc/tor/instances/%i/torrc
ExecReload=/bin/kill -HUP ${MAINPID}
KillSignal=SIGINT
TimeoutStartSec=300
TimeoutStopSec=60
Restart=on-failure
LimitNOFILE=65536

# Hardening
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
# We would really like to restrict the next item to [..]/%i but we can't,
# as systemd does not support that yet. See also #781730.
ReadWriteDirectories=-/var/lib/tor-instances
ReadWriteDirectories=-/run
ReadWriteDirectories=-//media/hdd/var/log/tor-hs
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH

[Install]
WantedBy=multi-user.target

Anschließend:

systemctl daemon-reload
systemctl enable tor@instance1
systemctl enable tor@instance2

Für automatische Updates hilft:

apt install unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades

Dann noch eine Konfigurationsdatei:

nano etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "14";

Die erste Zeile bestimmt die Häufigkeit für apt update, 1 bedeutet: jeden Tag. 7 wäre einmal die Woche. Die zweite Zeile ist sinngemäß dasselbe für apt-upgrade

Die letzte Zeile besagt, dass alle 14 Tage nicht mehr benötigte Paketdateien aus dem apt-Cache gelöscht werden.

Die weitere Konfiguration steht in der Datei

/etc/apt/apt.conf.d/50unattended-upgrades

Dort ist festgelegt, dass nur Sicherheitsupdates automatisch installiert werden. Über die möglichen Optionen informiert die Man-Page.

und einen Befehl einzugeben, aber es kam leider früher zu einem ziemlich Technischem Desaster. Die Software ließ sich vorher ohne Probleme Aktualisieren. Jedoch passierte eines Tages dies nicht mehr obwohl ich alle Befehle eingeben hatte die ich sonst immer verwendet habe.

Das klingt so, als würdest Du nicht vollständig verstehen, was Du da machst. Ob es dann eine gute Idee ist, einen öffentlichen Server selbst zu betreiben, sei mal dahingestellt.

Dein Relay kannst du als Service laufen lassen. Dort kannst du auch festlegen, dass er sich automatisch neu starten soll, falls ein Fehler auftritt.

Die Updates könntest du jeden Tag mit einem Cronjob machen. Jedoch halte ich dies nicht für empfehlenswert. Geschieht beim automatischen Update nämlich ein Fehler, merkst du dies gar nicht.


TheHiddenUser 
Beitragsersteller
 18.11.2021, 05:52

Naja also Früher oder Später würde ich dies schon merken, weil ich auch gerne meine Eigenen Relays über der Torwebseite beobachte. Zb. Bandbreite und wichtigkeit. Das hab ich sonst auch gerne gemacht. Sollte es Offline Sein, dann würde ich das definitiv Merken.

0
Lezurex  18.11.2021, 06:05
@TheHiddenUser

Das kannst du schon machen, eventuell ist es dann aber schon zu spät und du hast dann mehr Aufwand, das System wieder hinzubiegen.

0