Как туннелировать трафик по определенным направлениям через ssh?

Я хотел бы отправлять трафик, предназначенный для определенной ip / подсети, через один ssh socks5, в то же время маршрутизируя другой трафик через другой туннель socks5.

Я пробовал tsocks со следующей конфигурацией:

path {
        server = 127.0.0.1
        server_port = 3001
        server_type = 5
        reaches = 1.2.3.4/32
}

, но затем я пытаюсь «tsocks wget 1.2.3.4», он не проходит через этот прокси, выдавая ошибку IP (0.0.0.0) & 18:32:14 libtsocks(16065): SUBNET (0.0.0.0) != IP on line 33 in configuration file, ignored

[ 115] Я не понимаю ошибки.

Я также думаю, смогу ли я сделать это с помощью iptables.

Любые рекомендации о том, как это можно сделать?

0
задан 5 August 2012 в 04:20

2 ответа

Вы можете использовать sshuttle, как описано в Как маршрутизировать мой интернет через туннель SSH?

0
ответ дан 5 August 2012 в 04:20

Я также наткнулся на решение redsocks для этого http://darkk.net.ru/redsocks/

По существу, после запуска ваших ssh-туннелей и настройки redsocks для подключения к В эти туннели вы можете добавить iptables:

# Create new chain
iptables -t nat -N REDSOCKS

# Do not route the following through redsocks
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
#exclude your ssh tunnels from being routed through redsocks...and themselves
iptables -t nat -I REDSOCKS -d tunnel_address1 -j RETURN 
iptables -t nat -I REDSOCKS -d tunnel_address2 -j RETURN 

#redirect set of addresses to one socks proxy running on port 30000
iptables -t nat -A REDSOCKS -p tcp -d 1.2.3.4 -j REDIRECT --to-ports 30000
#redirect another set of addresses to a different proxy
iptables -t nat -A REDSOCKS -p tcp -d 4.3.2.1 -j REDIRECT --to-ports 30001

#connect output to redsocks chain
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS

Кажется, это работает. Я тоже попробую решение sshuttle, так как оно кажется немного более простым.

0
ответ дан 5 August 2012 в 04:20

Другие вопросы по тегам:

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