Назад | Перейти на главную страницу

OpenVPN как прокси

Что я хочу:

Я хочу подключиться к OpenVPN, и мой предопределенный список IP-адресов маршрутизируется через это соединение (tun0). На весь остальной трафик это не влияет (проходит через eth0).

Что я пробовал:

$ iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

(который должен в значительной степени принимать любое соединение)

Что удалось сделать:

Что не сработало:

Как я настраивал вещи:

На стороне клиента я вручную устанавливаю маршруты (в conf-файле):

route-nopull
route 54.175.222.246 255.255.255.255
route 10.8.0.0 255.255.255.0

(54.175.222.246 это IP-адрес http://httpbin.org/)

Фактически это отправляет материал на сервер OpenVPN; журналы:

Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 UDPv4 WRITE [229] to     [AF_INET]77.251.109.156:45958: P_DATA_V1 kid=0 DATA len=228
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 UDPv4 WRITE [229] to [AF_INET]77.251.109.156:45958: P_DATA_V1 kid=0 DATA len=228
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 UDPv4 READ [101] from [AF_INET]77.251.109.156:45958: P_DATA_V1 kid=0 DATA len=100
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 UDPv4 READ [101] from [AF_INET]77.251.109.156:45958: P_DATA_V1 kid=0 DATA len=100
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 TUN WRITE [64]
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 TUN WRITE [64]
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 TUN READ [123]
Jan  1 12:02:08 bare2 ovpn-server[25265]: client-deskserver/77.251.109.156:45958 TUN READ [123]

Однако либо сервер не перенаправляет его на общедоступное интернет-соединение, или все, что HTTP-сервер отправляет обратно, не принимается / не перенаправляется сервером OpenVPN. Я понятия не имею, в каком именно случае, и не знаю, как исправить любой из них. (Большинство сообщений, которые я нашел, касались отправки все трафик через OpenVPN, а не конкретный трафик; те что мы о конкретном трафике, говорили о пропуске вещей iptables, но это не помогло)

Какие-либо предложения?

Примерно через полдня поиска в Интернете я наконец наткнулся на эта почта.

Короче говоря, все, что мне нужно было сделать, это следующее:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

(Мне также пришлось включить переадресацию ipv4, но я уже давно это сделал