Одно приложение через туннель OpenVPN (Debian Lenny)

4107
user14124

Я использую Debian Lenny и хочу туннелировать rtorrent только через туннель OpenVPN.

У меня работает туннель, файл конфигурации выглядит так:

client dev tun proto udp remote openvpn.xxx.com 1194 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/xxx/keys/ca.crt cert /etc/openvpn/xxx/keys/client.crt key /etc/openvpn/xxx/keys/client.key tls-auth /etc/openvpn/xxx/keys/tls.key 1 ns-cert-type server comp-lzo verb 3 auth-user-pass script-security 3 reneg-sec 0 

Моя идея заключается в том, что я могу запустить прокси-сервер sockd внутри, который перенаправляет трафик в туннель openvpn. Я мог бы использовать приложение * nix "proxifier" "tsocks", чтобы позволить rtorrent подключаться через этот прокси (так как rtorrent не поддерживает прокси).

У меня проблемы с настройкой sockd, так как мой IP внутри VPN меняется каждый раз, когда я подключаюсь. Это файл конфигурации, который кто-то сказал, поможет: http://ircpimps.org/sockd.conf Поскольку мой IP-адрес меняется при каждом подключении, я не знаю, что добавить в этот файл конфигурации. У меня нет контроля над файлом конфигурации на стороне хоста.

Любая помощь хотела. Любой другой метод очень приветствуется.

1

4 ответа на вопрос

1
Janos Pasztor

You have to mark the packets for this application somehow. The easiest way to do this would be the following:

  • Run rtorrent as an own user
  • Use iptables to mark the connections from the rtorrent user (-m owner --uid-owner rtorrent)
    • Alternatively you could also match the PID (--pid-owner)
  • Use policy routing to route those connections differently from your "normal" routing table.

The detailed explanation would be beyond useful if written here, but this should give you enough keywords to google for.

0
Jimmy Hedman

Другим способом решения этой проблемы может быть использование socks ower ssh ( ssh -D portnumber), которая отлично работает с tsocks.

0
pberlijn

SOCKS-прокси, вероятно, не лучший инструмент для этой работы. Я настроил это так:

  1. Запустите rtorrent от имени конкретного пользователя
  2. Используйте iptables для пересылки трафика от этого пользователя через VPN

Вопрос, в основном, заключается в том, хотите ли вы запустить rtorrent от имени другого пользователя. Скорее всего, вы запускаете его внутри экрана, и экран не является большим поклонником обращения к его пользователю. Это выполнимо, но вам нужно еще кое-что выяснить.

Исследуя этот точный вопрос для моей установки, я обнаружил, что чрезвычайно трудно ограничить OpenVPN на уровне процесса. Если вы можете найти способ заставить его работать, мне, безусловно, будет интересно.

-1
LawrenceC

Скажите, rtorrentчтобы только слушать tun0или любой IP назначен на него. Это должно заботиться о входящих соединениях.

Я не знаю, что такое "sockd", но tsocksфайл конфигурации - /etc/tsocks.confIIRC. Но вам нужно приложение с поддержкой носков на другой стороне, а OpenVPN - нет.

Похоже, вы можете сказать rtorrentограничить порты, которые он использует для исходящих подключений к определенному диапазону. Сделайте это, а затем используйте iptablesдля REDIRECTисходящего трафика на этих портах из eth0в tun0.

Похожие вопросы