PDA

Bekijk de volledige versie : Помогите сделать прозрачный исходящий ssh-туннель



all-x
06-01-2009, 22:06
Уважаемые, не дайте потратить неделю в мануале к iptables :)

Задача такая: в офисе есть почтовый сервер, снаружи напрямую недоступен, имеет реальный ip адрес. Есть возможность сделать ssh туннель для доступа к нему, это я умею. Есть ноутбук, который бывает в офисе и дома. Хочется не перенастраивать настройки почтового клиента, то есть соединение на pop3server_address:110 всегда должно вести на офисный сервер.

Пытаюсь написать примерно следующее:

iptables -t nat -A PREROUTING -p tcp -d pop3server_address --dport 110 -j DNAT --to-destination 127.0.0.1:10110

На роутере запущен ssh с ключиком -L 10110 : pop3server_address:110 (туннель)


telnet 127.0.0.1 10110
с роутера работает как надо - есть соединение с POP3 сервером.

А вот с ноутбука
telnet pop3server_address 110
не работает - соединение, похоже, устанавливается, но в терминале ничего не появляется.

Чего не хватает? :confused:

Раньше такое делал на компьютере с Linux с помощью guidedog, непосредственно с iptables дела не имел. Ну и ситуация была немного другая - адрес подменялся на той же машине, с которой соединение устанавливалось...

UPDATE: Начинаю думать, что проблема не в iptables. Может быть, локальный порт туннеля недоступен с других машин? Где-то я про это читал, не могу найти...

UPDATE: Ура, разобрался! Чтобы туннель был доступен с других машин, надо при его создании указывать не только порт, но и адрес, типа:
-L 192.168.0.1:10110 : pop3server_address:110
Можно вместо адреса указать *, тогда порт будет доступен со всех интерфейсов. А по умолчанию: localhost, и доступен он только с самого роутера.