There doesn't appear to be available/packaged for FC/RH, however...
You could use the obfs4proxy binary packaged with Tor Browser by running.
gpg --recv-keys 0x4E2C6E8793298290
gpg --list-keys --fingerprint 0x4E2C6E8793298290
# Manually verify fingerprint against https://www.torproject.org/docs/signing-keys.html.en or web of trust here
gpg --verify tor-browser-linux64-6.0.4_en-US.tar.xz.asc tor-browser-linux64-6.0.4_en-US.tar.xz
if [ $? -eq 0 ]; then
tar xaf tor-browser-linux64-6.0.4_en-US.tar.xz tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/obfs4proxy
sudo cp tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/obfs4proxy /usr/local/bin/
echo Signature verification failed.
Or you could build obfs4proxy from source by installing the
golang package then running (you may also need
go get ... utilises):
export GOPATH=`mktemp -d`
go get git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy
sudo cp $GOPATH/bin/obfs4proxy /usr/local/bin/
To use it as a client, add the following lines to your torrc
ClientTransportPlugin obfs3,obfs4,scramblesuit exec /usr/local/bin/obfs4proxy
Then also append your
Bridge ... lines for each of the bridges you wish to use.
To use it as a server, add the following lines to your torrc
ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy
ORPort 31337 # This isn't where obfs4 clients connect, but needs to be set and reachable.
#ServerTransportListenAddr obfs4 0.0.0.0:443 # This allows you to specify where the pluggable transport will listen, if it's not defined it will pick a random high numbered port.
#PublishServerDescriptor 0 # set this if you want to manually distribute your bridge address, otherwise it will be published to the Bridge Authority and distributed through BridgeDB
If you're providing an obfs4 bridge, the
Bridge ... line for your bridge can be found at
/var/lib/tor/ is your