Skip to content

Bridge-Relay HOWTO wiki update for distros with apparmor, escalade log level when transport plugin process is killed

The bridge howto wiki instructions we currently have will not apply in Debian Buster or Bullseye (because of apparmor, and I assume the effect is the same on any distro with apparmor enabled).

Basically, the package Tor from deb.torproject.org comes with apparmor settings in /etc/apparmor.d/abstractions/tor that includes /usr/bin/obfs4proxy Pix, , but in case obfs4proxy executable is installed at a different path, it won't work:

audit[2994]: AVC apparmor="DENIED" operation="exec" profile="system_tor" name="/usr/local/bin/obfs4proxy" pid=2994 comm="tor" requested_mask="x" denied_mask="x" fsuid=107 ouid=0

kernel: audit: type=1400 audit(1630685584.124:19): apparmor="DENIED" operation="exec" profile="system_tor" name="/usr/local/bin/obfs4proxy" pid=2994 comm="tor" requested_mask="x" denied_mask="x" >

Also, Tor will not complain about it in the log if set to default notice level. If you switch to info :

[info] process_exec(): Starting new process: /usr/local/bin/obfs4proxy

[info] launch_managed_proxy(): Managed proxy at '/usr/local/bin/obfs4proxy' has spawned with PID '1856'.

These should be set to warn level I guess?

The simple fix is to edit /etc/apparmor.d/abstractions/tor and add/edit the obfs4proxy path if different from /usr/bin/obfs4proxy (which is the default) and reload apparmor service. We should add this extra step in the bridge relay wiki howto and explain that it is necessary if the pluggable transport is installed in a different path than /usr/bin/$transport in addition to the libcap2-bin step and NoNewPrivileges=no step in tor@default.service and tor@.service.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information