Client side torrc configuration:

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy

Bridge side torrc configuration:

# Act as a bridge relay.
BridgeRelay 1

# Enable the Extended ORPort
ExtORPort auto

# Use obfs4proxy to provide the obfs4 protocol.
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy

# (Optional) Listen on the specified address/port for obfs4 connections as
# opposed to picking a port automatically.
#ServerTransportListenAddr obfs4 0.0.0.0:443

Tips and tricks

On modern Linux systems it is possible to have obfs4proxy bind to reserved ports (<=1024) 
even when not running as root by granting the CAP_NET_BIND_SERVICE capability with setcap:

# setcap 'cap_net_bind_service=+ep' /usr/bin/obfs4proxy

obfs4proxy can also act as an obfs2 and obfs3 client or server. 
Adjust the ClientTransportPlugin and ServerTransportPlugin lines in the torrc as appropriate.

obfs4proxy can also act as a ScrambleSuit client. 
Adjust the ClientTransportPlugin line in the torrc as appropriate.

The autogenerated obfs4 bridge parameters are placed in DataDir/pt_state/obfs4_state.json. 
To ease deployment, the client side bridge line is written to DataDir/pt_state/obfs4_bridgeline.txt.
