Как настроить интерфейс tun в Linux для переадресации портов SSH?
Я пытаюсь перенаправить порт 139 с компьютера с Windows на мой SSH-сервер Ubuntu по интерфейсу TUN с IP-адресом 10.0.0.1.
Это сделано для того, чтобы я мог получить доступ к общим папкам Windows на машине на моем сервере Ubuntu через обратный туннель.
Я могу перенаправить порты на 127.0.0.1, но не на 10.0.0.1.
На окнах я использую Tunnelier ssh клиент.
На моем сервере Ubuntu в auth.log напечатано следующее сообщение:
Received disconnect from 124.109.51.154: 11: Server denied request for client-side server-2-client forwarding on 10.0.0.1:139.
До сих пор я пробовал следующие настройки:
GatewayPorts yes
PermitTunnel yes
AllowTcpForwarding yes
в файле /etc/ssh/sshd_config, но это не сработало.
Я настроил мелодию так:
sudo tunctl -t loc_0 -u myusername
sudo ifconfig loc_0 inet 10.0.0.1 netmask 255.255.255.0 up
Настройки в ssh-клиенте Tunneler не должны иметь значения, потому что я могу успешно перенаправить порт 139 на адаптер Loopback Microsoft на компьютере с Windows, на котором работает сервер WinSSHD.
Версии: Windows XP XP SP3, Ubuntu 10.10.
Обновить:
Я попытался перенаправить порт на номер больше 1024 с указанием IP-адреса туннеля, и он успешно подключился, но пересылка была выполнена на 127.0.0.1 вместо IP-адреса туннеля 10.0.0.1.
Таким образом, при подключении с компьютера под управлением Windows существуют две отдельные проблемы:
1) Переадресация на порты менее 1024, вероятно, запрещена. Как мы можем разрешить это на сервере?
2) Переадресация выполняется только на 127.0.0.1, даже если я упоминаю 10.0.0.1, который является IP-адресом тунца.
Еще одна попытка: я также попытался перенаправить порт 22 компьютера с Linux на порт tun 55567. Он показал успех. Но когда я попытался подключиться к этому порту с помощью обоих локальных адресов, на машине с Linux в окне отладки я получил ошибку Connection failed: no route to host
при использовании 127.0.0.1 для подключения и просто Connection refused
при использовании IP-адреса туннеля.
Таким образом, туннель не получает перенаправленный порт, независимо от того, подключаемся мы от клиента Windows или клиента Linux.
2 ответа
Что касается <1024, вы можете сделать это только с помощью root для туннеля ssh:
http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-ssh-beyondshell-tcpip.html
Заметка
Настройка переадресации портов для прослушивания портов ниже 1024 требует доступа на уровне root.
Что касается 127.0.0.1, вам, вероятно, нужно использовать '-g' в настройках ssh:
-g Allows remote hosts to connect to local forwarded ports.
Что по этому поводу:
sudo ifconfig eth0:0 10.0.0.1 up
sudo ssh -g -L 139:10.0.0.1:139 user@sambahost