Setup for an OpenVPN server which routes all traffic ("road-warrior")

First install and configure OpenVPN: https://wiki.gentoo.org/wiki/OpenVPN

Do not forget to first setup the key infrastructure: https://wiki.gentoo.org/wiki/Create_a_Public_Key_Infrastructure_Using_the_easy-rsa_Scripts

I changed the OpenVPN server config to use tcp instead of udp in /etc/openvpn/openvpn.conf:

proto tcp

Add these lines to /etc/openvpn/openvpn.conf:

push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"

Check the necessary kernel options (can be set as M):

CONFIG_TUN
CONFIG_IP_NF_CONNTRACK 
CONFIG_IP_NF_IPTABLES 
CONFIG_IP_NF_NAT

Enable IP forwarding in /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Check that it is enabled:

cat /proc/sys/net/ipv4/ip_forward

Enable on the fly:

echo 1 > /proc/sys/net/ipv4/ip_forward

After each reboot:

modprobe iptable_nat # if compiled as module
iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE

If everything works, add OpenVPN to the default runlevel, so that it starts during boot:

rc-update add openvpn