Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Moin, zusammen:
Ich stolpere gerade darüber, dass auf meinem 14.04 Tor bereits bei Systemstart als Dienst mitläuft:
PID 1137 ? S 0:02 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc --hush
Schaue ich auf meine torrc, sehe ich
[src=bash]## Uncomment this to start the process in the background... or use
## --runasdaemon 1 on the command line. This is ignored on Windows;
## see the FAQ entry if you want Tor to run as an NT service.
#RunAsDaemon 1[/src]
Wie man sieht, ist es auskommentiert...
in meiner tor-service-defaults-torr sehe ich:
[src=bash]c
DataDirectory /var/lib/tor
PidFile /var/run/tor/tor.pid
RunAsDaemon 1
User debian-tor
Weshalb läuft das als Dienst schon bei Systemstart mit? Ich dachte bisher, die torrc sei maßgeblich?
Weiß da jemand was? Kennt jemand dieses Verhalten?
Gruß:
Axel3
Grundsätzlich ja, allerdings wird in deinem Fall durch den Kommandozeilenparameter [kw]--defaults-torrc /usr/share/tor/tor-service-defaults-torrc[/kw] explizit festgelegt, dass die von Tor festgelegten Standardwerte durch die Werte in [kw]tor-service-defaults-torrc[/kw] zu ersetzen sind (und dann wiederum von deiner [kw]torrc[/kw] überschieben werden können). Das `Problem` in deinem Fall ist allerdings gar nicht die [kw]RunAsDaemon[/kw] (diese sorgt nur dafür, dass sich Tor nach dem Start selbst in den Hintergrund schickt), sondern die Tatsache, dass Tor überhaupt beim Systemstart gestartet wird.
Mutmasslich wurde auf deinem System, eventuell mit dem tor-Paket, ein Service-Skript installiert, welches Tor beim Systemstart automatisch startet. Überprüfe einmal, ob du eines in /etc/init.d/ findest (und/oder in der systemd-Konfiguration, sofern du systemd einsetzt).
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/tor
NAME=tor
DESC="tor daemon"
TORLOGDIR=/var/log/tor
TORPIDDIR=/var/run/tor
TORPID=$TORPIDDIR/tor.pid
DEFAULTSFILE=/etc/default/$NAME
WAITFORDAEMON=60
DEFAULT_ARGS="--defaults-torrc /usr/share/tor/tor-service-defaults-torrc"
VERIFY_ARGS="--verify-config $DEFAULT_ARGS"
USE_AA_EXEC="yes"
ARGS=""
if [ "${VERBOSE:-}" != "yes" ]; then
ARGS="$ARGS --hush"
fi
# Let's try to figure our some sane defaults:
if [ -r /proc/sys/fs/file-max ]; then
system_max=`cat /proc/sys/fs/file-max`
if [ "$system_max" -gt "80000" ] ; then
MAX_FILEDESCRIPTORS=32768
elif [ "$system_max" -gt "40000" ] ; then
MAX_FILEDESCRIPTORS=16384
elif [ "$system_max" -gt "10000" ] ; then
MAX_FILEDESCRIPTORS=8192
else
MAX_FILEDESCRIPTORS=1024
cat << EOF
Warning: Your system has very few filedescriptors available in total.
Maybe you should try raising that by adding 'fs.file-max=100000' to your
/etc/sysctl.conf file. Feel free to pick any number that you deem appropriate.
Then run 'sysctl -p'. See /proc/sys/fs/file-max for the current value, and
file-nr in the same directory for how many of those are used at the moment.
EOF
fi
else
MAX_FILEDESCRIPTORS=8192
fi
NICE=""
test -x $DAEMON || exit 0
# Include tor defaults if available
if [ -f $DEFAULTSFILE ] ; then
. $DEFAULTSFILE
fi
wait_for_deaddaemon () {
pid=$1
sleep 1
if test -n "$pid"
then
if kill -0 $pid 2>/dev/null
then
cnt=0
while kill -0 $pid 2>/dev/null
do
cnt=`expr $cnt + 1`
if [ $cnt -gt $WAITFORDAEMON ]
then
log_action_end_msg 1 "still running"
exit 1
fi
sleep 1
[ "`expr $cnt % 3`" != 2 ] || log_action_cont_msg ""
done
fi
fi
log_action_end_msg 0
}
check_torpiddir () {
if test ! -d $TORPIDDIR; then
mkdir -m 02750 "$TORPIDDIR"
chown debian-tor:debian-tor "$TORPIDDIR"
! [ -x /sbin/restorecon ] || /sbin/restorecon "$TORPIDDIR"
fi
if test ! -x $TORPIDDIR; then
log_action_end_msg 1 "cannot access $TORPIDDIR directory, are you root?"
exit 1
fi
}
check_torlogdir () {
if test ! -d $TORLOGDIR; then
mkdir -m 02750 "$TORLOGDIR"
chown debian-tor:adm "$TORLOGDIR"
! [ -x /sbin/restorecon ] || /sbin/restorecon "$TORPIDDIR"
fi
}
check_config () {
if ! $DAEMON $VERIFY_ARGS > /dev/null; then
log_failure_msg "Checking if $NAME configuration is valid"
$DAEMON $VERIFY_ARGS >&2
exit 1
fi
}
case "$1" in
start)
if [ "$RUN_DAEMON" != "yes" ]; then
log_action_msg "Not starting $DESC (Disabled in $DEFAULTSFILE)."
exit 0
fi
if [ -n "$MAX_FILEDESCRIPTORS" ]; then
[ "${VERBOSE:-}" != "yes" ] || log_action_begin_msg "Raising maximum number of filedescriptors (ulimit -n) for tor to $MAX_FILEDESCRIPTORS"
if ulimit -n "$MAX_FILEDESCRIPTORS" ; then
[ "${VERBOSE:-}" != "yes" ] || log_action_end_msg 0
else
[ "${VERBOSE:-}" != "yes" ] || log_action_end_msg 1
fi
fi
if test ! -f $TORPID -o -z "$pid"; then
log_action_end_msg 0 "not running - there is no $TORPID"
exit 0
fi
if start-stop-daemon --stop --signal INT --quiet --pidfile $TORPID --exec $DAEMON; then
wait_for_deaddaemon $pid
elif kill -0 $pid 2>/dev/null; then
log_action_end_msg 1 "Is $pid not $NAME? Is $DAEMON a different binary now?"
exit 1
else
log_action_end_msg 1 "$DAEMON died: process $pid not running; or permission denied"
exit 1
fi
;;
reload|force-reload)
check_config
if test ! -f $TORPID -o -z "$pid"; then
log_action_end_msg 1 "not running - there is no $TORPID"
exit 1
fi
if start-stop-daemon --stop --signal 1 --quiet --pidfile $TORPID --exec $DAEMON
then
log_action_end_msg 0
elif kill -0 $pid 2>/dev/null; then
log_action_end_msg 1 "Is $pid not $NAME? Is $DAEMON a different binary now?"
exit 1
else
log_action_end_msg 1 "$DAEMON died: process $pid not running; or permission denied"
exit 1
fi
;;
restart)
check_config
$0 stop
sleep 1
$0 start
;;
status)
if test ! -r $(dirname $TORPID); then
log_failure_msg "cannot read PID file $TORPID"
exit 4
fi
pid=`cat $TORPID 2>/dev/null` || true
if test ! -f $TORPID -o -z "$pid"; then
log_failure_msg "$NAME is not running"
exit 3
fi
if ps "$pid" >/dev/null 2>&1; then
log_success_msg "$NAME is running"
exit 0
else
log_failure_msg "$NAME is not running"
exit 1
fi
;;
*)
log_action_msg "Usage: $0 {start|stop|restart|reload|force-reload|status}" >&2
exit 1
;;
esac
exit 0
Wenn ich richtig aufgepasst habe, sagt er : Starte den Dienst bei 2,3,4 und 5
und vergleiche die Konfiguration mit "--defaults-torrc /usr/share/tor/tor-service-defaults-torrc"
Damit wäre - wenn ich das richtig verstehe - tor-service-defaults-torrc für den Start als Dienst verantwortlich.
finde ich jedoch: By default Tor reads configurations from the file /etc/tor/torrc
Bleibt noch die Frage: Welchen Grund gäbe es, TOR als Dienst bei Systemstart mitlaufen zu lassen?
Gruß:
Axel
Achtung: Komplette Spekulation. Ich hab keine Ahnung, ob das der Fall ist.
Sofern bei TOR die Einstellung für ein Relay/Exit-Node aktiviert ist, macht das Starten von TOR bei Systemstart durchaus Sinn, da dadurch mehr Relay/Exit Nodes vorhanden wären. Da aber meines Wissens nach sowohl Relay als auch Exit-Nodes explizit aktiviert werden müssen, sehe ich auch keinen richtigen Sinn darin.
Wenn ich richtig aufgepasst habe, sagt er : Starte den Dienst bei 2,3,4 und 5
und vergleiche die Konfiguration mit "--defaults-torrc /usr/share/tor/tor-service-defaults-torrc"
Damit wäre - wenn ich das richtig verstehe - tor-service-defaults-torrc für den Start als Dienst verantwortlich.
Nein, das Init-Skript als solches ist für den Start als Dienst verantwortlich. Der von dir zitierte LSB-Header führt dazu, dass das Skript (nach Ausführen von install_initd) für die Runlevels 2, 3, 4 und 5 gestartet wird, und dann Tor startet. [kw]tor-service-defaults-torrc[/kw] enthält lediglich die Konfiguration. Falls du den Dienst deaktivieren möchtest, kannst du das Init-Skript über [kw]/usr/lib/lsb/remove_initd tor[/kw] deinstallieren, dann wird es beim Systemstart nicht mehr automatisch ausgeführt.
Neben dem von Shinigami erwähnten Vorteil beim Betrieb als Tor-Node (Netzwerk-intern oder als Exit-Node) oder Tor-Bridge entspricht der Betrieb als Dienst eher den üblichen Unix-Paradigmen und erlaubt es z.B. auch, Tor unter einem eigenen Benutzerkonto auszuführen, das über keinerlei Rechte verfügt, was sicherheitstechnisch von Vorteil ist. Mutmasslich wird ein [kw]ps aux | grep tor[/kw] auf deinem System zeigen, dass der Tor-Prozess nicht unter deinem Benutzernamen, sondern als Benutzer `tor` (oder ggf. auch `nobody`) läuft.