У меня есть Ubuntu Server, и я хотел бы отфильтровать трафик, и через VPN можно передавать только трафик определенных пользователей или групп, а остальную часть трафика - через стандартное интернет-соединение. Я думаю, это будет довольно легко сделать, но у меня много проблем с его настройкой.
Мне удалось успешно установить VPN-соединение с помощью:
openvpn --config '/etc/openvpn/Sweden.ovpn' --auth-user-pass '/etc/openvpn/pia.txt' --persist-key --persist-tun --tls-client --remote-cert-tls server --user vpn &
Файл конфигурации для OpenVPN содержит следующее:
client
dev tun
proto udp
remote sweden.privateinternetaccess.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
Который создает новый интерфейс с именем "tun0". Использование этого интерфейса прекрасно работает:
curl -v --interface tun0 icanhazip.com
Однако, когда я пытаюсь использовать интерфейс eth0, время соединения истекает:
curl -v --interface eth0 icanhazip.com
Если я отключу соединение OpenVPN, то мой вызов curl через eth0 будет работать правильно.
Как только я смог заставить работать и eth0, и tun0, я планировал использовать нечто подобное этой команде для маршрутизации определенной группы через туннель OpenVPN:
iptables -A OUTPUT -m owner --gid-owner vpn \! -o tun0 -j REJECT
Кто-нибудь знает, как я мог заставить и eth0, и tun0 работать одновременно, чтобы я мог направлять через него трафик определенного пользователя / группы и оставлять весь другой трафик в покое?
Похожие посты: Как маршрутизировать определенный трафик через OpenVPN? - У меня в решателе только одна сетевая карта, в этом решении используются две сетевые карты.