Help setting up a bridge - Fedora - Guide may be outdated

I’m in the process of setting up a Tor bridge on a fresh install of Fedora Workstation using this guide but am coming across some issues. Some of them I believe are due to the guide having outdated parts. I’ll bold the issues to aid in understanding since this is a lengthy post. Possible solution: am I supposed to remove any “#” for the bridge to function or what is wrong?

  • Step 1: Successful.

  • Step 2. RESOLVED Configure Tor Project’s Repository: I entered the command below with and without sudo and “[tor]” at the beginning but I the command wasn’t recognized:

[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100
  • Steps 3 through 4: Seem to have been successful.

  • Step 5 Edit your Tor config file: Has steps that aren’t present in the torrc text files. There is no “TODO1/2/3” present, no “Local communication port between Tor and obfs4.” nor “ServerTransportListenAddr.” On the torrc and obfs4.torrc text files I only set a port to ORPort, a contact email since the ServerTransportListenAddr field wasn’t available. I then saved and exited both documents and ran the next steps.

  • Step 5 RESOLVED Disable SeLinux through step 7: I to check for logs at /var/log/tor/log but the folder is empty and /var/log/syslog doesn’t seem to be present. I also tried Tor’s reachability test and, of course, the results were unreachable. Below is the output of both text files.

torrc contents:

## Configuration file for a typical Tor user
## Last updated 28 February 2019 for Tor 0.3.5.1-alpha.
## (may or may not work for much older or much newer versions of Tor.)
##
## Lines that begin with "## " try to explain what's going on. Lines
## that begin with just "#" are disabled commands: you can enable them
## by removing the "#" symbol.
##
## See 'man tor', or https://www.torproject.org/docs/tor-manual.html,
## for more options you can use in this file.
##
## Tor will look for this file in various places based on your platform:
## https://www.torproject.org/docs/faq#torrc

ControlSocket /run/tor/control
ControlSocketsGroupWritable 1
CookieAuthentication 1
CookieAuthFile /run/tor/control.authcookie
CookieAuthFileGroupReadable 1

## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't
## configure one below. Set "SOCKSPort 0" if you plan to run Tor only
## as a relay, and not make any local application connections yourself.
#SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections.
#SOCKSPort 192.168.0.1:9100 # Bind to this address:port too.

## Entry policies to allow/deny SOCKS requests based on IP address.
## First entry that matches wins. If no SOCKSPolicy is set, we accept
## all (and only) requests that reach a SOCKSPort. Untrusted users who
## can access your SOCKSPort may be able to learn about the connections
## you make.
#SOCKSPolicy accept 192.168.0.0/16
#SOCKSPolicy accept6 FC00::/7
#SOCKSPolicy reject *

## Logs go to stdout at level "notice" unless redirected by something
## else, like one of the below lines. You can have as many Log lines as
## you want.
##
## We advise using "notice" in most cases, since anything more verbose
## may provide sensitive information to an attacker who obtains the logs.
##
## Send all messages of level 'notice' or higher to /var/log/tor/notices.log
#Log notice file /var/log/tor/notices.log
## Send every possible message to /var/log/tor/debug.log
#Log debug file /var/log/tor/debug.log
## Use the system log instead of Tor's logfiles
#Log notice syslog
## To send all messages to stderr:
#Log debug stderr

## 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

## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
#DataDirectory /var/lib/tor

## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
#ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
#HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
#CookieAuthentication 1

############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

################ This section is just for relays #####################
#
## See https://www.torproject.org/docs/tor-doc-relay for details.

## Required: what port to advertise for incoming Tor connections.
#ORPort 201
## If you want to listen on a port other than the one advertised in
## ORPort (e.g. to advertise 443 but bind to 9090), you can do it as
## follows.  You'll need to do ipchains or other port forwarding
## yourself to make this work.
#ORPort 443 NoListen
#ORPort 127.0.0.1:9090 NoAdvertise
## If you want to listen on IPv6 your numeric address must be explicitly
## between square brackets as follows. You must also listen on IPv4.
#ORPort [2001:DB8::1]:9050

## The IP address or full DNS name for incoming connections to your
## relay. Leave commented out and Tor will guess.
#Address noname.example.com

## If you have multiple network interfaces, you can specify one for
## outgoing traffic to use.
## OutboundBindAddressExit will be used for all exit traffic, while
## OutboundBindAddressOR will be used for all OR and Dir connections
## (DNS connections ignore OutboundBindAddress).
## If you do not wish to differentiate, use OutboundBindAddress to
## specify the same address for both in a single line.
#OutboundBindAddressExit 10.0.0.4
#OutboundBindAddressOR 10.0.0.5

## A handle for your relay, so people don't have to refer to it by key.
## Nicknames must be between 1 and 19 characters inclusive, and must
## contain only the characters [a-zA-Z0-9].
## If not set, "Unnamed" will be used.
#Nickname ididnteditheconfig

## Define these to limit how much relayed traffic you will allow. Your
## own traffic is still unthrottled. Note that RelayBandwidthRate must
## be at least 75 kilobytes per second.
## Note that units for these config options are bytes (per second), not
## bits (per second), and that prefixes are binary prefixes, i.e. 2^10,
## 2^20, etc.
#RelayBandwidthRate 100 KBytes  # Throttle traffic to 100KB/s (800Kbps)
#RelayBandwidthBurst 200 KBytes # But allow bursts up to 200KB (1600Kb)

## Use these to restrict the maximum traffic per day, week, or month.
## Note that this threshold applies separately to sent and received bytes,
## not to their sum: setting "40 GB" may allow up to 80 GB total before
## hibernating.
##
## Set a maximum of 40 gigabytes each way per period.
#AccountingMax 40 GBytes
## Each period starts daily at midnight (AccountingMax is per day)
#AccountingStart day 00:00
## Each period starts on the 3rd of the month at 15:00 (AccountingMax
## is per month)
#AccountingStart month 3 15:00

## Administrative contact information for this relay or bridge. This line
## can be used to contact you if your relay or bridge is misconfigured or
## something else goes wrong. Note that we archive and publish all
## descriptors containing these lines and that Google indexes them, so
## spammers might also collect them. You may want to obscure the fact that
## it's an email address and/or generate a new address for this purpose.
##
## If you are running multiple relays, you MUST set this option.
##
#ContactInfo Random Person <tor.coat144@aleeas.com>
## You might also include your PGP or GPG fingerprint if you have one:
#ContactInfo 0xFFFFFFFF Random Person <tor.coat144@aleeas.com>

## Uncomment this to mirror directory information for others. Please do
## if you have enough bandwidth.
#DirPort 9030 # what port to advertise for directory connections
## If you want to listen on a port other than the one advertised in
## DirPort (e.g. to advertise 80 but bind to 9091), you can do it as
## follows.  below too. You'll need to do ipchains or other port
## forwarding yourself to make this work.
#DirPort 80 NoListen
#DirPort 127.0.0.1:9091 NoAdvertise
## Uncomment to return an arbitrary blob of html on your DirPort. Now you
## can explain what Tor is if anybody wonders why your IP address is
## contacting them. See contrib/tor-exit-notice.html in Tor's source
## distribution for a sample.
#DirPortFrontPage /etc/tor/tor-exit-notice.html

## Uncomment this if you run more than one Tor relay, and add the identity
## key fingerprint of each Tor relay you control, even if they're on
## different networks. You declare it here so Tor clients can avoid
## using more than one of your relays in a single circuit. See
## https://www.torproject.org/docs/faq#MultipleRelays
## However, you should never include a bridge's fingerprint here, as it would
## break its concealability and potentially reveal its IP/TCP address.
##
## If you are running multiple relays, you MUST set this option.
##
## Note: do not use MyFamily on bridge relays.
#MyFamily $keyid,$keyid,...

## Uncomment this if you want your relay to be an exit, with the default
## exit policy (or whatever exit policy you set below).
## (If ReducedExitPolicy, ExitPolicy, or IPv6Exit are set, relays are exits.
## If none of these options are set, relays are non-exits.)
#ExitRelay 1

## Uncomment this if you want your relay to allow IPv6 exit traffic.
## (Relays do not allow any exit traffic by default.)
#IPv6Exit 1

## Uncomment this if you want your relay to be an exit, with a reduced set
## of exit ports.
#ReducedExitPolicy 1

## Uncomment these lines if you want your relay to be an exit, with the
## specified set of exit IPs and ports.
##
## A comma-separated list of exit policies. They're considered first
## to last, and the first match wins.
##
## If you want to allow the same ports on IPv4 and IPv6, write your rules
## using accept/reject *. If you want to allow different ports on IPv4 and
## IPv6, write your IPv6 rules using accept6/reject6 *6, and your IPv4 rules
## using accept/reject *4.
##
## If you want to _replace_ the default exit policy, end this with either a
## reject *:* or an accept *:*. Otherwise, you're _augmenting_ (prepending to)
## the default exit policy. Leave commented to just use the default, which is
## described in the man page or at
## https://www.torproject.org/documentation.html
##
## Look at https://www.torproject.org/faq-abuse.html#TypicalAbuses
## for issues you might encounter if you use the default exit policy.
##
## If certain IPs and ports are blocked externally, e.g. by your firewall,
## you should update your exit policy to reflect this -- otherwise Tor
## users will be told that those destinations are down.
##
## For security, by default Tor rejects connections to private (local)
## networks, including to the configured primary public IPv4 and IPv6 addresses,
## and any public IPv4 and IPv6 addresses on any interface on the relay.
## See the man page entry for ExitPolicyRejectPrivate if you want to allow
## "exit enclaving".
##
#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports on IPv4 and IPv6 but no more
#ExitPolicy accept *:119 # accept nntp ports on IPv4 and IPv6 as well as default exit policy
#ExitPolicy accept *4:119 # accept nntp ports on IPv4 only as well as default exit policy
#ExitPolicy accept6 *6:119 # accept nntp ports on IPv6 only as well as default exit policy
#ExitPolicy reject *:* # no exits allowed

## Bridge relays (or "bridges") are Tor relays that aren't listed in the
## main directory. Since there is no complete public list of them, even an
## ISP that filters connections to all the known Tor relays probably
## won't be able to block all the bridges. Also, websites won't treat you
## differently because they won't know you're running Tor. If you can
## be a real relay, please do; but if not, be a bridge!
##
## Warning: when running your Tor as a bridge, make sure than MyFamily is
## NOT configured.
#BridgeRelay 1
## By default, Tor will advertise your bridge to users through various
## mechanisms like https://bridges.torproject.org/. If you want to run
## a private bridge, for example because you'll give out your bridge
## address manually to your friends, uncomment this line:
#BridgeDistribution none

## Configuration options can be imported from files or folders using the %include
## option with the value being a path. This path can have wildcards. Wildcards are 
## expanded first, using lexical order. Then, for each matching file or folder, the following 
## rules are followed: if the path is a file, the options from the file will be parsed as if 
## they were written where the %include option is. If the path is a folder, all files on that 
## folder will be parsed following lexical order. Files starting with a dot are ignored. Files 
## on subfolders are ignored.
## The %include option can be used recursively.
#%include /etc/torrc.d/*.conf

obfs4.torrc contents:

## Configuration file for a typical Tor user
## Last updated 22 September 2015 for Tor 0.2.7.3-alpha.
## (may or may not work for much older or much newer versions of Tor.)
##
## Lines that begin with "## " try to explain what's going on. Lines
## that begin with just "#" are disabled commands: you can enable them
## by removing the "#" symbol.
##
## See 'man tor', or https://www.torproject.org/docs/tor-manual.html,
## for more options you can use in this file.
##
## Tor will look for this file in various places based on your platform:
## https://www.torproject.org/docs/faq#torrc

ControlSocket /run/tor/control
ControlSocketsGroupWritable 1
CookieAuthentication 1
CookieAuthFile /run/tor/control.authcookie
CookieAuthFileGroupReadable 1

## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't
## configure one below. Set "SOCKSPort 0" if you plan to run Tor only
## as a relay, and not make any local application connections yourself.
#SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections.
#SOCKSPort 192.168.0.1:9100 # Bind to this address:port too.

## Entry policies to allow/deny SOCKS requests based on IP address.
## First entry that matches wins. If no SOCKSPolicy is set, we accept
## all (and only) requests that reach a SOCKSPort. Untrusted users who
## can access your SOCKSPort may be able to learn about the connections
## you make.
#SOCKSPolicy accept 192.168.0.0/16
#SOCKSPolicy accept6 FC00::/7
#SOCKSPolicy reject *

## Logs go to stdout at level "notice" unless redirected by something
## else, like one of the below lines. You can have as many Log lines as
## you want.
##
## We advise using "notice" in most cases, since anything more verbose
## may provide sensitive information to an attacker who obtains the logs.
##
## Send all messages of level 'notice' or higher to /var/log/tor/notices.log
#Log notice file /var/log/tor/notices.log
## Send every possible message to /var/log/tor/debug.log
#Log debug file /var/log/tor/debug.log
## Use the system log instead of Tor's logfiles
#Log notice syslog
## To send all messages to stderr:
#Log debug stderr

## 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

## The directory for keeping all the keys/etc. By default, we store
## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
#DataDirectory /var/lib/tor

## The port on which Tor will listen for local connections from Tor
## controller applications, as documented in control-spec.txt.
#ControlPort 9051
## If you enable the controlport, be sure to enable one of these
## authentication methods, to prevent attackers from accessing it.
#HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
#CookieAuthentication 1

############### This section is just for location-hidden services ###

## Once you have configured a hidden service, you can look at the
## contents of the file ".../hidden_service/hostname" for the address
## to tell people.
##
## HiddenServicePort x y:z says to redirect requests on port x to the
## address y:z.

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

#HiddenServiceDir /var/lib/tor/other_hidden_service/
#HiddenServicePort 80 127.0.0.1:80
#HiddenServicePort 22 127.0.0.1:22

################ This section is just for relays #####################
#
## See https://www.torproject.org/docs/tor-doc-relay for details.

## Required: what port to advertise for incoming Tor connections.
#ORPort 443
## If you want to listen on a port other than the one advertised in
## ORPort (e.g. to advertise 443 but bind to 9090), you can do it as
## follows.  You'll need to do ipchains or other port forwarding
## yourself to make this work.
#ORPort 443 NoListen
#ORPort 127.0.0.1:9090 NoAdvertise

## The IP address or full DNS name for incoming connections to your
## relay. Leave commented out and Tor will guess.
#Address noname.example.com

## If you have multiple network interfaces, you can specify one for
## outgoing traffic to use.
# OutboundBindAddress 10.0.0.5

## A handle for your relay, so people don't have to refer to it by key.
## Nicknames must be between 1 and 19 characters inclusive, and must
## contain only the characters [a-zA-Z0-9].
#Nickname ididnteditheconfig

## Define these to limit how much relayed traffic you will allow. Your
## own traffic is still unthrottled. Note that RelayBandwidthRate must
## be at least 75 kilobytes per second.
## Note that units for these config options are bytes (per second), not
## bits (per second), and that prefixes are binary prefixes, i.e. 2^10,
## 2^20, etc.
#RelayBandwidthRate 100 KBytes  # Throttle traffic to 100KB/s (800Kbps)
#RelayBandwidthBurst 200 KBytes # But allow bursts up to 200KB (1600Kb)

## Use these to restrict the maximum traffic per day, week, or month.
## Note that this threshold applies separately to sent and received bytes,
## not to their sum: setting "40 GB" may allow up to 80 GB total before
## hibernating.
##
## Set a maximum of 40 gigabytes each way per period.
#AccountingMax 40 GBytes
## Each period starts daily at midnight (AccountingMax is per day)
#AccountingStart day 00:00
## Each period starts on the 3rd of the month at 15:00 (AccountingMax
## is per month)
#AccountingStart month 3 15:00

## Administrative contact information for this relay or bridge. This line
## can be used to contact you if your relay or bridge is misconfigured or
## something else goes wrong. Note that we archive and publish all
## descriptors containing these lines and that Google indexes them, so
## spammers might also collect them. You may want to obscure the fact that
## it's an email address and/or generate a new address for this purpose.
#ContactInfo Random Person <tor.coat144@aleeas.com>
## You might also include your PGP or GPG fingerprint if you have one:
#ContactInfo 0xFFFFFFFF Random Person <tor.coat144@aleeas.com>

## Uncomment this to mirror directory information for others. Please do
## if you have enough bandwidth.
#DirPort 9030 # what port to advertise for directory connections
## If you want to listen on a port other than the one advertised in
## DirPort (e.g. to advertise 80 but bind to 9091), you can do it as
## follows.  below too. You'll need to do ipchains or other port
## forwarding yourself to make this work.
#DirPort 80 NoListen
#DirPort 127.0.0.1:9091 NoAdvertise
## Uncomment to return an arbitrary blob of html on your DirPort. Now you
## can explain what Tor is if anybody wonders why your IP address is
## contacting them. See contrib/tor-exit-notice.html in Tor's source
## distribution for a sample.
#DirPortFrontPage /etc/tor/tor-exit-notice.html

## Uncomment this if you run more than one Tor relay, and add the identity
## key fingerprint of each Tor relay you control, even if they're on
## different networks. You declare it here so Tor clients can avoid
## using more than one of your relays in a single circuit. See
## https://www.torproject.org/docs/faq#MultipleRelays
## However, you should never include a bridge's fingerprint here, as it would
## break its concealability and potentially reveal its IP/TCP address.
#MyFamily $keyid,$keyid,...

## A comma-separated list of exit policies. They're considered first
## to last, and the first match wins.
##
## If you want to allow the same ports on IPv4 and IPv6, write your rules
## using accept/reject *. If you want to allow different ports on IPv4 and
## IPv6, write your IPv6 rules using accept6/reject6 *6, and your IPv4 rules
## using accept/reject *4.
##
## If you want to _replace_ the default exit policy, end this with either a
## reject *:* or an accept *:*. Otherwise, you're _augmenting_ (prepending to)
## the default exit policy. Leave commented to just use the default, which is
## described in the man page or at
## https://www.torproject.org/documentation.html
##
## Look at https://www.torproject.org/faq-abuse.html#TypicalAbuses
## for issues you might encounter if you use the default exit policy.
##
## If certain IPs and ports are blocked externally, e.g. by your firewall,
## you should update your exit policy to reflect this -- otherwise Tor
## users will be told that those destinations are down.
##
## For security, by default Tor rejects connections to private (local)
## networks, including to the configured primary public IPv4 and IPv6 addresses,
## and any public IPv4 and IPv6 addresses on any interface on the relay.
## See the man page entry for ExitPolicyRejectPrivate if you want to allow
## "exit enclaving".
##
#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports on IPv4 and IPv6 but no more
#ExitPolicy accept *:119 # accept nntp ports on IPv4 and IPv6 as well as default exit policy
#ExitPolicy accept *4:119 # accept nntp ports on IPv4 only as well as default exit policy
#ExitPolicy accept6 *6:119 # accept nntp ports on IPv6 only as well as default exit policy
#ExitPolicy reject *:* # no exits allowed

## Bridge relays (or "bridges") are Tor relays that aren't listed in the
## main directory. Since there is no complete public list of them, even an
## ISP that filters connections to all the known Tor relays probably
## won't be able to block all the bridges. Also, websites won't treat you
## differently because they won't know you're running Tor. If you can
## be a real relay, please do; but if not, be a bridge!
#BridgeRelay 1
## By default, Tor will advertise your bridge to users through various
## mechanisms like https://bridges.torproject.org/. If you want to run
## a private bridge, for example because you'll give out your bridge
## address manually to your friends, uncomment this line:
#PublishServerDescriptor 0
UseBridges 1

ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit exec /usr/bin/obfs4proxy

Bridge obfs4 154.35.22.10:443 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0
Bridge obfs4 154.35.22.12:80 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0
Bridge obfs4 85.17.30.79:443 FC259A04A328A07FED1413E9FC6526530D9FD87A cert=RutxZlu8BtyP+y0NX7bAVD41+J/qXNhHUrKjFkRSdiBAhIHIQLhKQ2HxESAKZprn/lR3KA iat-mode=0
Bridge obfs4 37.218.245.14:38224 D9A82D2F9C2F65A18407B1D2B764F130847F8B5D cert=bjRaMrr1BRiAW8IE9U5z27fQaYgOhX1UCmOpg2pFpoMvo6ZgQMzLsaTzzQNTlm7hNcb+Sg iat-mode=0
Bridge obfs4 198.245.60.50:443 752CF7825B3B9EA6A98C83AC41F7099D67007EA5 cert=xpmQtKUqQ/6v5X7ijgYE/f03+l2/EuQ1dexjyUhh16wQlu/cpXUGalmhDIlhuiQPNEKmKw iat-mode=0
Bridge obfs4 38.229.33.83:80 0BAC39417268B96B9F514E7F63FA6FBA1A788955 cert=VwEFpk9F/UN9JED7XpG1XOjm/O8ZCXK80oPecgWnNDZDv5pdkhq1OpbAH0wNqOT6H6BmRQ iat-mode=1
Bridge obfs4 154.35.22.11:16488 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 192.95.36.142:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
Bridge obfs4 154.35.22.11:443 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 154.35.22.9:443 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 37.218.240.34:40035 88CD36D45A35271963EF82E511C8827A24730913 cert=eGXYfWODcgqIdPJ+rRupg4GGvVGfh25FWaIXZkit206OSngsp7GAIiGIXOJJROMxEqFKJg iat-mode=1
Bridge obfs4 83.212.101.3:50002 A09D536DD1752D542E1FBB3C9CE4449D51298239 cert=lPRQ/MXdD1t5SRZ9MquYQNT9m5DV757jtdXdlePmRCudUU9CFUOX1Tm7/meFSyPOsud7Cw iat-mode=0
Bridge obfs4 154.35.22.13:443 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0
Bridge obfs4 154.35.22.11:80 A832D176ECD5C7C6B58825AE22FC4C90FA249637 cert=YPbQqXPiqTUBfjGFLpm9JYEFTBvnzEJDKJxXG5Sxzrr/v2qrhGU4Jls9lHjLAhqpXaEfZw iat-mode=0
Bridge obfs4 109.105.109.165:10527 8DFCD8FB3285E855F5A55EDDA35696C743ABFC4E cert=Bvg/itxeL4TWKLP6N1MaQzSOC6tcRIBv6q57DYAZc3b2AzuM+/TfB7mqTFEfXILCjEwzVA iat-mode=1
Bridge obfs4 154.35.22.12:4304 00DC6C4FA49A65BD1472993CF6730D54F11E0DBB cert=N86E9hKXXXVz6G7w2z8wFfhIDztDAzZ/3poxVePHEYjbKDWzjkRDccFMAnhK75fc65pYSg iat-mode=0
Bridge obfs4 109.105.109.147:13764 BBB28DF0F201E706BE564EFE690FE9577DD8386D cert=KfMQN/tNMFdda61hMgpiMI7pbwU1T+wxjTulYnfw+4sgvG0zSH7N7fwT10BI8MUdAD7iJA iat-mode=2
Bridge obfs4 38.229.1.78:80 C8CBDB2464FC9804A69531437BCF2BE31FDD2EE4 cert=Hmyfd2ev46gGY7NoVxA9ngrPF2zCZtzskRTzoWXbxNkzeVnGFPWmrTtILRyqCTjHR+s9dg iat-mode=1
Bridge obfs4 [2001:470:b381:bfff:216:3eff:fe23:d6c3]:443 CDF2E852BF539B82BD10E27E9115A31734E378C2 cert=qUVQ0srL1JI/vO6V6m/24anYXiJD3QP2HgzUKQtQ7GRqqUvs7P+tG43RtAqdhLOALP7DJQ iat-mode=1
Bridge obfs4 154.35.22.9:12166 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 154.35.22.9:80 C73ADBAC8ADFDBF0FC0F3F4E8091C0107D093716 cert=gEGKc5WN/bSjFa6UkG9hOcft1tuK+cV8hbZ0H6cqXiMPLqSbCh2Q3PHe5OOr6oMVORhoJA iat-mode=0
Bridge obfs4 192.99.11.54:443 7B126FAB960E5AC6A629C729434FF84FB5074EC2 cert=VW5f8+IBUWpPFxF+rsiVy2wXkyTQG7vEd+rHeN2jV5LIDNu8wMNEOqZXPwHdwMVEBdqXEw iat-mode=0
Bridge obfs4 154.35.22.13:16815 FE7840FE1E21FE0A0639ED176EDA00A3ECA1E34D cert=fKnzxr+m+jWXXQGCaXe4f2gGoPXMzbL+bTBbXMYXuK0tMotd+nXyS33y2mONZWU29l81CA iat-mode=0
Bridge obfs4 154.35.22.10:80 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0
Bridge obfs4 154.35.22.10:15937 8FB9F4319E89E5C6223052AA525A192AFBC85D55 cert=GGGS1TX4R81m3r0HBl79wKy1OtPPNR2CZUIrHjkRg65Vc2VR8fOyo64f9kmT1UAFG7j0HQ iat-mode=0

Hi,

  • for step 2: these are not commands to run, but content to put in a file named /etc/yum.repos.d/Tor.repo (which you will likely have to create). You can use any text editor of your choice to do so, but you will probably need to run your text editor as root, or with sudoedit.

  • for step 5:

    Edit your Tor config file, usually located at /etc/tor/torrc and replace its content with:

    you are supposed to replace the content of the file, and do some light modifications to it (filling in some ports, there is no TODO3 that I see).

  • for step 7: documentation seems outdated. In the era of systemd, you usually have to run something like journalctl -e -u tor to get logs. If you want to contribute to the documentation, the source file to correct is here. Otherwise, you can open an issue, or ask for someone to do it for you.

You shouldn’t try to force things and go forward when a step seems to be failing. Come here (or elsewhere) asking directly, unless you are confident in understanding what it’s supposed to do, and that you did something equivalent.

You don’t need to touch obfs4.torrc. This file isn’t used by tor, and seems to be a sample file showcasing how to use obfs4 bridges as a client, that one can mv to torrc so it become their active config

1 Like
  1. Step 2: Thank you, I think I managed to set up the repo text file using nano.

  2. Step 5: I did edit ORPort and ContactInfo. As for TODO3, my bad, I meant the ServerTransportListenAddr instructions although it mentions TODO2 for ServerTransportListenAddr and obfs4 edits so I assume this was a typo (Step 5 being mentioned for two different steps may have also been a typo. What do I do in regards to the ServerTransportListenAddr edit that we’re asked to do that doesn’t seem to be present?

Ok so I got this output from that command. The reachability test still doesn’t seem to reach my bridge.

[user@fedora yum.repos.d]$ journalctl -e -u tor
Jun 20 17:05:45 fedora Tor[12851]: Opening Control listener on /run/tor/control
Jun 20 17:05:45 fedora Tor[12851]: Opened Control listener connection (ready) o>
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 5% (conn): Connecting to a relay
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 10% (conn_done): Connected to a>
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 14% (handshake): Handshaking wi>
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 15% (handshake_done): Handshake>
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 20% (onehop_create): Establishi>
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 25% (requesting_status): Asking>
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 30% (loading_status): Loading n>
Jun 20 17:05:48 fedora Tor[12851]: I learned some more directory information, b>
Jun 20 17:05:48 fedora Tor[12851]: Bootstrapped 40% (loading_keys): Loading aut>
Jun 20 17:05:49 fedora Tor[12851]: The current consensus has no exit nodes. Tor>
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 45% (requesting_descriptors): A>
Jun 20 17:05:49 fedora Tor[12851]: I learned some more directory information, b>
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 50% (loading_descriptors): Load>
Jun 20 17:05:50 fedora Tor[12851]: The current consensus contains exit nodes. T>
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 57% (loading_descriptors): Load>
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 64% (loading_descriptors): Load>
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 69% (loading_descriptors): Load>
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 75% (enough_dirinfo): Loaded en>
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 90% (ap_handshake_done): Handsh>
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 95% (circuit_create): Establish>
Jun 20 17:05:53 fedora Tor[12851]: Bootstrapped 100% (done): Done
lines 29-51/51 (END)
Jun 20 17:05:45 fedora Tor[12851]: Opening Control listener on /run/tor/control
Jun 20 17:05:45 fedora Tor[12851]: Opened Control listener connection (ready) on /run/tor/control
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 5% (conn): Connecting to a relay
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 10% (conn_done): Connected to a relay
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 14% (handshake): Handshaking with a relay
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 15% (handshake_done): Handshake with a relay done
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 30% (loading_status): Loading networkstatus consensus
Jun 20 17:05:48 fedora Tor[12851]: I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
Jun 20 17:05:48 fedora Tor[12851]: Bootstrapped 40% (loading_keys): Loading authority key certs
Jun 20 17:05:49 fedora Tor[12851]: The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
Jun 20 17:05:49 fedora Tor[12851]: I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6837, and can only b>
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 50% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:50 fedora Tor[12851]: The current consensus contains exit nodes. Tor can build exit and internal paths.
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 57% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 64% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 69% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 75% (enough_dirinfo): Loaded enough directory info to build circuits
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Jun 20 17:05:53 fedora Tor[12851]: Bootstrapped 100% (done): Done
~
~
~
~
~
~
~
~
~
~
~
~
~
~
lines 29-51/51 (END)
Jun 20 17:05:45 fedora Tor[12851]: Opening Control listener on /run/tor/control
Jun 20 17:05:45 fedora Tor[12851]: Opened Control listener connection (ready) on /run/tor/control
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 5% (conn): Connecting to a relay
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 10% (conn_done): Connected to a relay
Jun 20 17:05:45 fedora Tor[12851]: Bootstrapped 14% (handshake): Handshaking with a relay
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 15% (handshake_done): Handshake with a relay done
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 20% (onehop_create): Establishing an encrypted directory connection
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 25% (requesting_status): Asking for networkstatus consensus
Jun 20 17:05:46 fedora Tor[12851]: Bootstrapped 30% (loading_status): Loading networkstatus consensus
Jun 20 17:05:48 fedora Tor[12851]: I learned some more directory information, but not enough to build a circuit: We have no usable consensus.
Jun 20 17:05:48 fedora Tor[12851]: Bootstrapped 40% (loading_keys): Loading authority key certs
Jun 20 17:05:49 fedora Tor[12851]: The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services.
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 45% (requesting_descriptors): Asking for relay descriptors
Jun 20 17:05:49 fedora Tor[12851]: I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/6837, and can>
Jun 20 17:05:49 fedora Tor[12851]: Bootstrapped 50% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:50 fedora Tor[12851]: The current consensus contains exit nodes. Tor can build exit and internal paths.
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 57% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 64% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 69% (loading_descriptors): Loading relay descriptors
Jun 20 17:05:51 fedora Tor[12851]: Bootstrapped 75% (enough_dirinfo): Loaded enough directory info to build circuits
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
Jun 20 17:05:52 fedora Tor[12851]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Jun 20 17:05:53 fedora Tor[12851]: Bootstrapped 100% (done): Done
~
~
~
~
~
~
~
~
~
~
~
lines 29-51/51 (END)

You shouldn’t try to force things and go forward when a step seems to be failing

Understood, I’ll come here next time :slight_smile:

You don’t need to touch obfs4.torrc

Since I already made a few minor edits to it, should they be reverted or will this not affect anything? Also, you mentioned that it can be moved to torrc so can I just copy and paste its contents to save time?

I’m getting the following 404 repo errors in steps 3 & 4 to install tor & obfs4proxy.

At /etc/yum.repos.d I created a plain text document named Tor.repo with the following contents:

[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100

Tor installation CLI error:

[user@fedora ~]$ sudo dnf install tor
Tor for Fedora 38 - x86_64                                                            131  B/s | 265  B     00:02    
Errors during downloading metadata for repository 'tor':
  - Status code: 404 for https://rpm.torproject.org/fedora/38/x86_64/repodata/repomd.xml (IP: 95.216.163.36)
Error: Failed to download metadata for repo 'tor': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Ignoring repositories: tor
Last metadata expiration check: 0:03:44 ago on Wed 21 Jun 2023 09:05:05 PM -05.
Dependencies resolved.
======================================================================================================================
 Package                    Architecture             Version                           Repository                Size
======================================================================================================================
Installing:
 tor                        x86_64                   0.4.7.13-3.fc38                   fedora                   3.2 M
Installing dependencies:
 torsocks                   x86_64                   2.4.0-4.fc38                      fedora                    68 k

Transaction Summary
======================================================================================================================
Install  2 Packages

Total download size: 3.3 M
Installed size: 19 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): torsocks-2.4.0-4.fc38.x86_64.rpm                                                64 kB/s |  68 kB     00:01    
(2/2): tor-0.4.7.13-3.fc38.x86_64.rpm                                                 1.5 MB/s | 3.2 MB     00:02    
----------------------------------------------------------------------------------------------------------------------
Total                                                                                 1.1 MB/s | 3.3 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                              1/1 
  Installing       : torsocks-2.4.0-4.fc38.x86_64                                                                 1/2 
  Running scriptlet: tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Installing       : tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Running scriptlet: tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Verifying        : tor-0.4.7.13-3.fc38.x86_64                                                                   1/2 
  Verifying        : torsocks-2.4.0-4.fc38.x86_64                                                                 2/2 

Installed:
  tor-0.4.7.13-3.fc38.x86_64                               torsocks-2.4.0-4.fc38.x86_64                              

Complete!

obfs4proxy installation CLI error:

[user@fedora ~]$ systemctl enable --now dnf-automatic-install.timer
Created symlink /etc/systemd/system/timers.target.wants/dnf-automatic-install.timer → /usr/lib/systemd/system/dnf-automatic-install.timer.
[user@fedora ~]$ # dnf install tor
[user@fedora ~]$ dnf install tor
Error: This command has to be run with superuser privileges (under the root user on most systems).
[user@fedora ~]$ sudo dnf install tor
Tor for Fedora 38 - x86_64                                                            131  B/s | 265  B     00:02    
Errors during downloading metadata for repository 'tor':
  - Status code: 404 for https://rpm.torproject.org/fedora/38/x86_64/repodata/repomd.xml (IP: 95.216.163.36)
Error: Failed to download metadata for repo 'tor': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Ignoring repositories: tor
Last metadata expiration check: 0:03:44 ago on Wed 21 Jun 2023 09:05:05 PM -05.
Dependencies resolved.
======================================================================================================================
 Package                    Architecture             Version                           Repository                Size
======================================================================================================================
Installing:
 tor                        x86_64                   0.4.7.13-3.fc38                   fedora                   3.2 M
Installing dependencies:
 torsocks                   x86_64                   2.4.0-4.fc38                      fedora                    68 k

Transaction Summary
======================================================================================================================
Install  2 Packages

Total download size: 3.3 M
Installed size: 19 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): torsocks-2.4.0-4.fc38.x86_64.rpm                                                64 kB/s |  68 kB     00:01    
(2/2): tor-0.4.7.13-3.fc38.x86_64.rpm                                                 1.5 MB/s | 3.2 MB     00:02    
----------------------------------------------------------------------------------------------------------------------
Total                                                                                 1.1 MB/s | 3.3 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                              1/1 
  Installing       : torsocks-2.4.0-4.fc38.x86_64                                                                 1/2 
  Running scriptlet: tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Installing       : tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Running scriptlet: tor-0.4.7.13-3.fc38.x86_64                                                                   2/2 
  Verifying        : tor-0.4.7.13-3.fc38.x86_64                                                                   1/2 
  Verifying        : torsocks-2.4.0-4.fc38.x86_64                                                                 2/2 

Installed:
  tor-0.4.7.13-3.fc38.x86_64                               torsocks-2.4.0-4.fc38.x86_64                              

Complete!
[user@fedora ~]$ dnf install obfs4
Error: This command has to be run with superuser privileges (under the root user on most systems).
[user@fedora ~]$ sudo dnf install obfs4
Tor for Fedora 38 - x86_64                                                                                                                                                                                    268  B/s | 265  B     00:00    
Errors during downloading metadata for repository 'tor':
  - Status code: 404 for https://rpm.torproject.org/fedora/38/x86_64/repodata/repomd.xml (IP: 204.8.99.146)
Error: Failed to download metadata for repo 'tor': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Ignoring repositories: tor
Last metadata expiration check: 0:05:45 ago on Wed 21 Jun 2023 09:05:05 PM -05.
Dependencies resolved.
==============================================================================================================================================================================================================================================
 Package                                                Architecture                                            Version                                                         Repository                                               Size
==============================================================================================================================================================================================================================================
Installing:
 obfs4                                                  x86_64                                                  0.0.11-6.fc36                                                   fedora                                                  2.3 M

Transaction Summary
==============================================================================================================================================================================================================================================
Install  1 Package

Total download size: 2.3 M
Installed size: 7.0 M
Is this ok [y/N]: y
Downloading Packages:
obfs4-0.0.11-6.fc36.x86_64.rpm                                                                                                                                                                                1.8 MB/s | 2.3 MB     00:01    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                         1.2 MB/s | 2.3 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                      1/1 
  Installing       : obfs4-0.0.11-6.fc36.x86_64                                                                                                                                                                                           1/1 
  Running scriptlet: obfs4-0.0.11-6.fc36.x86_64                                                                                                                                                                                           1/1 
  Verifying        : obfs4-0.0.11-6.fc36.x86_64                                                                                                                                                                                           1/1 

Installed:
  obfs4-0.0.11-6.fc36.x86_64                                                                                                                                                                                                                  

Complete!

After receiving the aforementioned errors, I followed the following importing GPG key command from this sub section of the guide and got the following errors.

[user@fedora ~]$ Importing GPG key 0x3621CD35:
Userid     : "Kushal Das (RPM Signing key) <kushal@torproject.org>"
Fingerprint: 999E C8E3 14BC 8D46 022D 6C7D E217 C30C 3621 CD35
From       : https://rpm.torproject.org/fedora/public_gpg.key
Is this ok [y/N]: y
bash: Importing: command not found...
bash: Userid: command not found...
bash: Fingerprint:: command not found...
bash: From: command not found...
bash: Is: command not found...
[user@fedora ~]$ 

As for the “ServerTransportPlugin”/TODO2 portion of step 5, I tried opening ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy with Text Editor and Nano as sudo but it displays ever expanding gibberish and Nano asks to download more fonts. What are we supposed to do for this step?

You don’t have to touch this file for becoming a bridge. You can restore it if you want, it doesn’t really matter.

That’s unfortunate. It seems the repository only has things for Fedora up to v37. I’ll try to contact the person handly that.

These are not commands, but the expected output of dnf install tor -y (assuming the repo are fine, which they currently aren’t).

You are not supposed to open /usr/bin/obfs4proxy as a file. The whole section describe the content of /etc/tor/torrc

I see, thanks for the update. By any chance, do you have any idea if the Fedora 38 repo will be fixed within a week or am I better off downgrading and getting my bridge up and running? I bought this laptop just for this purpose.

It should be available now :smiley:

1 Like

Fantastic, thanks! As for step 5, changing the ServerTransportListenAddr, do you know how we do that? There’s no mention of it in torrc.