Page 2 of 17 FirstFirst 123412 ... LastLast
Results 16 to 30 of 244

Thread: Использование ssh-тунелей для безопасного доступа к ресурсам LAN

  1. #16
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    теперь кажись наполовину понял

    PHP Code:
    IP1                                 IP2                       IP3                   IP4
    сервер 
    (серый ИП)  -----------   чужой нат -----------------  асус ----------------- ПК 
    Так?

    Навскидку, вижу два варианта, но нужно проверять жизнеспособность:
    ssh -R 3389:127.0.0.1:3389 user@IP3

    При этом с IP4 обращаться:
    IP3:3389

    или

    ssh -R 3389:IP4:3389 user@IP3

    При этом c IP4 обращаться:
    127.0.0.1:3389

    При таком варианте:
    ssh -R 3389:192.168.1.3:3389 192.168.1.1 -N
    порт открывается не на роутере, а на ПК, так что его в netstat справедливо нет.

    //Осталось найти клиент win32, максимально красиво выполняющий свои функции в win32, либо работающий pptp/l2tp-сервер для asus'a.
    а чем putty не подходит. Либо cygwin+openssh, заодно и cron поднять можно

  2. #17
    Схемка уже отлажена и работает дома.
    IP4 - вообще хост абстрактный и может находиться где угодно, лишь бы порт на IP3 был доступен.

    ssh -R 3389:IP4:3389 user@IP3

    При этом c IP4 обращаться:
    127.0.0.1:3389
    Работать не будет, т.к. IP1 в этой схеме не задействован никак.

    При таком варианте:
    ssh -R 3389:192.168.1.3:3389 192.168.1.1 -N
    порт открывается не на роутере, а на ПК, так что его в netstat справедливо нет.
    На ПК (IP1) он уже открыт. На роутере открывается в момент установления сессии. Иначе как возможна связь с портом, который не прослушивается. Но в нетстате его видно только в состоянии ESTABLISHED, после открытия соединения с IP4.

    а чем putty не подходит. Либо cygwin+openssh, заодно и cron поднять можно
    PuTTY не подходит, т.к. это GUI-клиент. Смотрю в сторону SUA/SFU aka Interix, чем пользуюсь на домашних машинах. С Cygwin'ом особо не работал..

  3. #18
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Quote Originally Posted by djet View Post
    IP4 - вообще хост абстрактный и может находиться где угодно, лишь бы порт на IP3 был доступен.
    согласен, тогда первый вариант. Хотя в WAN этот порт на роутере я бы не открывал, а установил бы второй туннель от IP4 до IP3. Правда, не пробовал, но по моему работать должно. Хотя сначала неплохо бы добиться работоспособности без него для случая IP4 находящегося в LAN (в этом случае оба варианта должны быть ОК)

    Quote Originally Posted by djet View Post
    Работать не будет, т.к. IP1 в этой схеме не задействован никак.
    как это не задействован (если IP1 = сервер) --- с него же и поднимать туннель надо. А как еще до серого ИП достучишся.

    Quote Originally Posted by djet View Post
    PuTTY не подходит, т.к. это GUI-клиент.
    у нее тоже есть опции коммандной строки, которых достаточно, чтобы использовать в офлайн

    Quote Originally Posted by djet View Post
    С Cygwin'ом особо не работал..
    это что то вроде эмуляции POSIX под виндой. Все знакомое --- bash, cron, openssh. Сидит, правда, поверх виндовой файловой системы, с вытекающими...

  4. #19
    Есть желание подключиться VLC через тунель к удаленному роутеру, где запущено udpxy "udp->http"
    http://wl500g.info/showpost.php?p=92638&postcount=283

    Если шлюз настроен как:
    L8580 127.0.0.1:8580
    при попытке открыть ссылку http://localhost:8580/status
    в логе у Putty пишется
    2008-04-11 00:32:17 Opening forwarded connection to 127.0.0.1:8580
    2008-04-11 00:32:17 Forwarded connection refused by server: Connect failed []
    Если шлюз настроен как:
    L8580 192.168.1.1:8580
    VLC работает!

    Только почему-то dropbear 2 раза запущен:
    PHP Code:
    [admin@WL-XXXXXXXXXXXX root]$ ps
      PID  Uid     VmSize Stat Command
        1 admin       636 S   
    /sbin/init
        2 admin           SW  
    [keventd]
        
    3 admin           SWN [ksoftirqd_CPU0]
        
    4 admin           SW  [kswapd]
        
    5 admin           SW  [bdflush]
        
    6 admin           SW  [kupdated]
        
    7 admin           SW  [mtdblockd]
       
    59 admin       316 S   telnetd
       64 admin       460 S   httpd vlan1
       67 admin       408 S   syslogd 
    -m 0 -/tmp/syslog.log --l 7
       70 admin       364 S   klogd
       73 admin       520 S   nas 
    /tmp/nas.lan.conf /tmp/nas.lan.pid lan
       75 nobody      440 S   
    [dnsmasq]
       
    77 admin           SW  [khubd]
       
    85 admin       276 S   lpd
       87 admin       260 S   p9100d 
    -/dev/usb/lp0 0
       90 admin       340 S   waveservermain
      113 admin       364 S   
    /usr/sbin/udpxy -a br0 -m vlan1 -p 8085
      116 admin       444 S   udhcpc 
    -i vlan1 -/var/run/udhcpc0.pid -/tmp/udhcp
      118 admin       532 S   l2tpd
      121 admin       312 S   infosvr br0
      122 admin       448 S   watchdog
      124 admin       344 S   ntp
      125 admin       668 S   pppd sync nodetach noaccomp nobsdcomp nodeflate nopco
      133 admin       484 S   dropbear 
    -s
      159 admin       444 S   upnp 
    --L br0 -W ppp0
      165 admin       716 R   dropbear 
    -s
      166 admin       548 S   
    -sh
      169 admin       392 R   ps 
    - нормально это?!
    Last edited by MaxPC; 11-04-2008 at 11:17.

  5. #20

    Помогите "открепить" ssh-туннель

    Замечательная вещь, эти ssh-туннели. Мой домашний WL500gP сидит за NAT-ом провайдера, поэтому извне к нему достучаться невозможно. К счастью, есть другой Linux-роутер, видимый во внешней сети. Поэтому туннель организуется со стороны WL500gP.
    Вручную все работает замечательно:
    1. Захожу с домашнего компьютера по ssh на свой домашний WL500gP
    2. Запускаю ssh-туннель на хост, видимый во внешней сети. Порты пробрасываюся "на ура", беспарольная авторизация через ключи от ssh-keygen тоже работает.

    Если я теперь выключу домашний компьютер, то локальная сессия до WL500gP закроется, а после ее закрытия пропадет и ssh-туннель.

    Сколько я ни бился, не могу "открепить" ssh-сессию от WL500gP до внешнего роутера так, чтобы ее ssh-туннель продолжал работать. nohup не помогает, ~^z - тоже, & в конце строки запуска ssh - аналогично.

    autossh отказывается стартовать мой туннель, делает вид, что ему не дали никаких параметров ssh-сессии.

    В идеале, конечно, получить что-то вроде autossh, отслеживающего целостность туннеля и стартующего на автомате при включении роутера. На худой конец - просто автоматически стартующая ssh сессия, которая в ручном режиме сейчас работает без ввода пароля.

  6. #21
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Почитайте man для ssh В частности имеет смысл попробовать такие опции как -N & и -n

  7. #22
    Quote Originally Posted by al37919 View Post
    Почитайте man для ssh В частности имеет смысл попробовать такие опции как -N & и -n
    Спасибо за совет.
    Эти опции я уже пробовал. Как и -T и -f. Пока ничего не помогает. Я и файл .ssh/config создал, прописал там все по человечески. Запускаю ssh почти без параметров (только с указанием алиаса для хоста) - и все туннели создаются без ввода пароля. Но! - оказываюсь в терминальной неоткрепляемой сессии.

    Продолжаю биться с autossh. Он, собака, не хочет проводить авторизацию ssh по паре ключей от ssh-keygen, хотя вручную ssh авторизуется без ввода пароля. Пробовал переменные среды для autossh задавать (типа AUTOSSH_PATH и т.п.), но, похоже, грамотешки мне не хватает. Когда запускаю autossh, то от удаленного сервера вываливается предложение ввести пароль, ввожу пароль - и попадаю в терминальную сессию, от которой и хотел изначально избавиться.

    P.S. Подозреваю, что идет clash между ssh-клиентом на базе dropbear (из дистрибутива прошивки WL500gp-1.9.2.7-10 от Oleg'а) и новым ssh-клиентом из пакета autossh. Типа того, что клиент ssh, который используется в autossh не знает, где лежат его private keys, сгенерированные ssh-keygen'ом.
    Last edited by serebr; 18-04-2008 at 19:13.

  8. #23
    Расследование продолжается...

    1. Встроенный ssh-клиент из dropbear не понимает локальный приватный id-rsa ключ, который замечательно работает, если использовать ssh-клиент из пакета autossh.

    2. Переменная
    Code:
    PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    3. Новый ssh (из пакета autossh) лежит в /opt/bin, старый (из dropbear) - в /usr/bin.

    4. Если я правильно понял, то в Linux'е PATH анализируется слева направо, т.е. первым должен вызываться новый ssh. Так и происходит, если набрать ssh в произвольной директории, не перечисленной в PATH.

    5. Команда autossh по умолчанию вызывает старый ssh (который из dropbear). Почему она его достает - для меня загадка. Старый ssh, как было сказано выше, не понимает ключ id-rsa - говорит что
    Code:
    /usr/bin/ssh: exited: string too long
    . Поскольку автоматический вход со старым ssh не работает, то удаленный хост просит ввести пароль. Ввожу пароль - все срабатывает, но открепить эту терминальную сессию без ее последующего разрыва невозможно.

    6. Попытка с помощью переменной AUTOSSH_PATH указать явно, где лежит правильный ssh к успеху не приводит. В логах autossh пишет так
    Code:
    /opt/bin: - permission denied
    7. Пытался удалить старый ssh из /usr/bin - ничего не вышло. Система сообщает, что:
    Code:
     `/usr/bin/ssh': Read-only file system
    Может у кого есть подсказки для чайника?
    Last edited by serebr; 19-04-2008 at 15:36.

  9. #24
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    1. Встроенный ssh-клиент из dropbear не понимает локальный приватный id-rsa ключ, который замечательно работает, если использовать ssh-клиент из пакета autossh.

    Встроенный в dropbear ssh-клиент понимает приватный id-rsa ключ, однако, имеет ограничение на длину ключа в 1024 байт.

    4. Если я правильно понял, то в Linux'е PATH анализируется слева направо, т.е. первым должен вызываться новый ssh. Так и происходит, если набрать ssh в произвольной директории, не перечисленной в PATH.

    да. А что, в какой то ОС PATH анализируется справа налево?

    6. Попытка с помощью переменной AUTOSSH_PATH указать явно, где лежит правильный ssh к успеху не приводит.

    Мне почему то представляется, что он хочет не /opt/bin, а /opt/bin/ssh

    7. Пытался удалить старый ssh из /usr/bin - ничего не вышло.

    Это не выйдет. Он действительно read only

    P.S. Когда разберетесь, не забудьте подробно описать

  10. #25
    Quote Originally Posted by al37919 View Post
    6. Попытка с помощью переменной AUTOSSH_PATH указать явно, где лежит правильный ssh к успеху не приводит.

    Мне почему то представляется, что он хочет не /opt/bin, а /opt/bin/ssh

    P.S. Когда разберетесь, не забудьте подробно описать
    Code:
    export AUTOSSH_PATH = "/opt/bin/ssh"
    - так находит правильный ssh, спасибо.

    Поскольку у меня теперь все работает, то дальше небольшая инструкция:

    Автоматически создаваемый и поддерживаемый ssh-туннель, когда он инициируется со стороны роутера ASUS.

    1. Устанавливаем самую свежую версию ipkg
    2. Устанавливаем пакет autossh, доступный в ipkg
    3. Генерим пару ключей протокола RSA с помощью утилиты ssh-keygen, которая включена в пакет autossh
    4. Копируем сгенерированный публичный ключ (ssh_host_rsa_key.pub) на удаленный сервер в вашу домашнюю директорию в файл с именем .ssh/authorized_keys
    5. Копируем локальный приватный ключ (ssh_host_rsa_key) в свою домашнюю директорию на роутере ASUS: /tmp/local/root/.ssh/
    6. Добавляем в файл post-boot:
    Code:
    export AUTOSSH_PATH="/opt/bin/ssh"
    # Вместо порта 3333 можно указать любой порт, 
    # который не жалко занять на удаленном хосте,
    # при этом на роутере ASUS будет занят как этот же 
    # номер порта, так и порт с номером 
    # на единицу большим указанного
    export AUTOSSH_PORT="3333"
    export AUTOSSH_GATETIME="0"
    autossh user@ssh_host -i your_private_ssh_key_file_name -N ssh_port_forwarding_options &
    7. Не забываем сохранить все во flash:
    Code:
    flashfs save && flashfs commit && flashfs enable

    -------------------------------------------------------------------------
    P.S. Проверил работу ssh из стандартной прошивки WL500gp-1.9.2.7-10. В самом деле, если генерировать ключи длиной 1024 бита, то автоматическая авторизация без пароля проходит без проблем.
    Code:
    dropbearkey -t rsa -f dropbear_key -s 1024
    Да и запуск в открепленном режиме с ключом -N тоже работает. Поэтому если не нужно отслеживание реального наличия связи через туннель, то можно обойтись и без установки пакета autossh.
    Last edited by serebr; 20-04-2008 at 06:52.

  11. #26
    Вопрос немножно глупый наверное, но я настроил удаленый доступ через SSH, все работает, r-admin тоже. Но как проще обмениваться файлами? Можно ли простой сервисом "Общий доступ к файлам и папкам"? В смысле через Exlporer?

  12. #27
    загружает 1 страничку сайта а потом putty выдает
    fatal error
    Received SSH2_MSG_CHANNEL_FAILURE for nonexistent channel 260
    WL-500gP[1.9.2.7-10] + WD Passport 120Gb

  13. #28
    Join Date
    Jun 2008
    Location
    Russia, Perm
    Posts
    476

    SSH-туннель из-под NAT

    Cитуация такая : я хочу поднять ssh туннель от своего роутера с нереальным ip до компа с реальным... Внятной инструкции пока не нашел... Комп - только Windows, роутер - wl500gp с прошивкой Олега (-10). Как такое реализовать?
    Интересует, такое : я стучусь удаленному компу на определенный порт с помощью putty, попадаю в туннель, и дохожу до роутера (и авторизуюсь уже на нем)

  14. #29
    Join Date
    Feb 2007
    Location
    Moscow RF
    Posts
    355
    Google поломался? Первая ссылка по заппросу ssh server for windows http://www.n-admin.com/n27-5110.html
    вторая http://sshwindows.sourceforge.net/

  15. #30
    Join Date
    Jun 2008
    Location
    Russia, Perm
    Posts
    476
    Я нашел freeSSHd через wikipedia. Но не в этом суть.... Интересует именно такой туннель...

Page 2 of 17 FirstFirst 123412 ... LastLast

Similar Threads

  1. Тестирование скорости чтения/записи USB-HDD.
    By ABATAPA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 87
    Last Post: 20-06-2013, 13:11

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •