I think what I'm asking for may not be possible with a userspace application like OpenVPN. I was asking if traffic to other services on the OpenVPN server itself would traverse the tunnel, but I don't think this is possible. Toward the end is a possible workaround.
e.g.,
My (temporary) OpenVPN server is an AWS instance with IP 54.165.206.148. OpenVPN is running on UDP 1194. As a test, I installed a telnet service on this AWS instance.
Even if I use 'push "redirect-gateway def1"' to route all traffic over the VPN, traffic to other services on the OpenVPN server itself (54.165.206.148) will not use the tunnel. Traffic to the OpenVPN server will use eth0--it would have to in order for the UDP 1194 to "get there"; traffic to any other IP will use tun0.
mint openvpn # ip route get 8.8.8.8
8.8.8.8 via 192.168.200.5 dev tun0 src 192.168.200.6
cache
mint openvpn # ip route get 54.165.206.148
54.165.206.148 via 10.0.2.2 dev eth0 src 10.0.2.15
cache
Therefore any telnet traffic to 54.165.206.148:23 is in cleartext (eth0) even though I have an OpenVPN tunnel established. Traffic to any other IP will traverse the tunnel (tun0) as it's my default route. This intuitively makes sense and I don't think it is a limitation of OpenVPN, just a consequence of a userspace application and how routing works.
As a workaround on a Windows 2008 R2 test VM (OS of eventual production instance), I believe I can accomplish what I want with the following:
1. Assign another IP address (on the same subnet) to the OpenVPN server network interface. Assume OpenVPN server has IP 192.168.1.100/24. Assign additional IP 192.168.1.101/24 to this interface.
2. Run OpenVPN on this interface (listen 192.168.1.101)
3. Configure the OpenVPN client to use this interface and only route 192.168.1.100/32 traffic over it).
remote 192.168.1.101
route-nopull
route 192.168.1.100 255.255.255.255 vpn_gateway
This seems to work. If I establish the tunnel and telnet to 192.168.1.100, the traffic is on the tunnel interface, not the physical interface.
If I've been setting this up wrong and OpenVPN is really supposed to protect other services on the OpenVPN server itself, please let me know. But it doesn't seem possible to me.
Thanks!