PDA

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



al37919
03-02-2008, 18:02
Цитата из википедии:
Большинство программ для установления соединения используют TCP, который можно передавать через безопасный туннель используя протокол SSH. Так можно устанавливать множество дополнительных TCP соединений внутри одного ssh соединения. Это удобно для сокрытия соединений и шифрования протоколов, которые являются небезопасными и для обхода фаерволов. UDP соединения иногда тоже возможно туннелировать с помощью дополнительных программ, например, netcat.

Поясню мысль в слегка упрощенном виде. Большинство используемых протоколов (telnet, http, ftp, pop3, imap4, smtp, smb, rdp и т.д.) передают данные и параметры аутентификации в текстовом виде без шифрования. Это значит, что нехороший человек (впрочем необходимо отметить, что довольно квалифицированный) может проанализировать пакеты передающиеся по интернету и извлечь ваши логины и пароли, читать Вашу почту и т.д. Именно поэтому крайне не рекомендуется открывать в WAN лишние порты (и лучше всего вообще никакие).

Все данные, передаваемые по протоколу ssh (включая явки и пароли), зашифрованы с использованием стойкой криптографии. В протоколе ssh заложена возможность создать защищенное соединение и передавать внутри него данные по незащищенным протоколам, причем извне весь траффик будет выглядеть как зашифрованный. Это и есть ssh туннели, использование которых позволяет получить доступ к ресурсам LAN путем установления защищенного соединения.Для этого требуется открыть только один порт в WAN , а именно порт на котором слушает ssh сервер (по умолчанию 22).

Организовать ssh туннель --- легко. В англоязычной википедии я встретил такой термин применительно к ssh туннелям: "poor man's VPN". Похоже это устоявшийся термин, и поиск по нему дает немало примеров настройки подобных туннелей.

Что требуется:

1) наличие внешнего IP адреса. Либо статического, тогда вообще все просто, либо динамического, тогда требуется зарегистрироваться на каком-нибудь сервисе, предоставляющем доменное имя (например, http://www.dyndns.org) и запустить на роутере клиент, обеспечивающий обновление вашего IP на этом сервере (в прошивках Олега где-то от версии 8 и выше достаточно установок в веб-морде)
2) ssh сервер должет быть запущен на роутере. Оптимальный выбор для нашего роутера --- dropbear , встроенный в прошивку. Установка dropbear описана во всех инструкциях по установке с нуля (wengi (http://wl500g.info/showthread.php?t=10307), marcnesium (http://wl500g.info/showthread.php?t=5909), OlegI (http://wl500g.info/showthread.php?t=3171)). Вкратце:
a) должно быть однократно выполнено следующее (с сохранением результата в flashfs):

mkdir -p /usr/local/etc/dropbear
dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key
б) файл /usr/local/sbin/post-boot должен содержать строку

dropbear
dropbear может быть запущен и не только на порту по умолчанию (т.е. 22), но и на любом другом. Для запуска на порту 24853 строка в post-boot должна выглядеть так:

dropbear -p 24853
3) ssh сервер должен быть доступен из WAN. Опять же обсуждено немеряное количество раз. Напоминаю минимальный вариант:
добавить в /usr/local/sbin/post-firewall следующее (при этом Internet firewall --> Basic Config --> Logged packets type в веб-морде должен быть выставлен в NONE):

#! /bin/sh
# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
Развернутый вариант post-firewall, включающий защиту от назойливых попыток подбора пароля к ssh аккаунту предложен здесь: http://wl500g.info/showpost.php?p=69964&postcount=63
4) ssh клиент на удаленной машине с которой мы имеем желание воспользоваться благами через ssh туннель.
Если на этом компе используется windows, то отличным выбором будет putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) (желательно последней версии, т.к. поддержка ssh туннелей там сейчас, похоже, дорабатывается).
Если на удаленном компе стоит *nix, то все еще проще, т.к. ssh туннель может быть установлен с помощью программы ssh из состава openssh.

Итак, что нужно сделать, чтобы создать ssh туннель после того, как все вышеуказанные пререквизиты выполнены.

Для примера подготовка туннеля в putty для доступа к веб-интерфейсу роутера из WAN:
1) в putty идем в Connection --> SSH --> Tunnels и в поле Source port указываем любой порт (например 8080), далее в Destination пишем следующее: 127.0.0.1:80 (80 --- это порт под которым веб-морда доступна из LAN). Галка по умолчанию должна стоять Local (это так для всех нижеприведенных примеров если не указано обратное). Нажимаем кнопку Add (обязательно!). Отлично --- туннель добавлен.
2) далее, идем в Session, в поле Host name (or IP address) указываем внешний IP роутера, либо имя присвоенное через dyndns (например, router.dyndns.org ); Connection type --- SSH ; Port --- 22 (либо тот, что был указан при запуске dropbear). Далее в поле Saved sessions задаем имя, под которым данные настройки будут сохранены и нажимаем кнопку Save.
3) Если сессия уже была создана ранее, то добавить к ней еще один туннель можно следующим образом: Выбираем сессию, нажимаем Load, выполняем пункт 1, возвращаемся в Session и нажимает Save.

Использование туннеля.

1а) если используем putty, то запускаем сохраненную сессию, вводим имя и пароль
1б) если на удаленной машине используется *nix , то все еще проще:

ssh -L 8080:127.0.0.1:80 username@router.dyndns.org:port
здесь username может быть опущено, если ssh запускается из под того же юзера, что и на удаленном сервере, port может быть опущен, если он 22.
ВАЖНО! окно putty или ssh должно оставаться открытым во время работы через туннель.
2) запускаем броузер и вводим следующий адрес:
http://localhost:8080
В результате попадаем в веб-интерфейс роутера

Примеры настройки туннелей:

Доступ к веб-интерфейсу устройств, находящихся в LAN, например, VoIP адаптер:
Source port 8081
Destination 192.168.1.200:80 (здесь, 192.168.1.200 --- IP адрес VoIP адаптера в LAN)
В результате веб-интерфейс VoIP адаптера будет доступен по адресу http://localhost:8081

Доступ к веб-интерфейсу устройств, находящихся в MAN, например, ADSL модем:
Source port 8082
Destination 192.168.2.1:80 (здесь, 192.168.2.1 --- IP адрес ADSL модема MAN)
В результате веб-интерфейс ADSL модема будет доступен по адресу http://localhost:8082

Доступ к веб-интерфейсам других приложений живущих на роутере (ADOS, transmission, seaky-sctcs, ntorrent, wtorrent и т.д.)
по сути настраивается так же как и доступ к веб-интерфейсу роутера, только порты указываются те, на которых висят соответствующие веб-интерфейсы

Вместо всех приведенных до настоящего момента примеров локальных http туннелей можно сделать один единственный динамический туннель, при этом ssh сервер будет выполнять функции socks proxy:
putty:
Source port 1080
ставим галку около Dynamic и добавляем туннель. Естественно, устанавливаем ssh соединение.

*nix:

ssh -D 1080 user@router.dyndns.org

После этого в firefox указываем SOCKS5 proxy: localhost:1080 и мы внутри локалки (т.е. нам должны быть доступны адреса типа http://192.168.1.10:80 )

Доступ к Remote Desktop Windows XP+ компьютеров в LAN
Source port 8089
Destination 192.168.1.10:3389 (здесь, 192.168.1.10 --- IP адрес WinXP PC в LAN)
В результате Remote Desktop данного WinXP PC будет доступен по адресу localhost:8089

Доступ к X-серверу *nix
Source port 6000
Destination 192.168.1.10:6000 (здесь, 192.168.1.10 --- IP адрес PC в LAN с запущенным на нем X сервером)

В результате выполнение на удаленном PC, скажем,

netscape -display localhost:0.0
должно отобразить вывод netscape на PC сидящем внутри LAN.
Кстати, именно этот вариант я все же не тестировал --- ибо смысла в нем особого нет --- разве что ребенку мультики запускать находясь изрядно далеко, хотя это явно можно и попроще реализовать. Однако, следующий пример --- гораздо более реалистичный.

Доступ X-клиентов, запущенных либо на роутере, либо в на компьютерах из LAN к X-серверу запущенному на удаленном PC (за которым сидит оператор)
Вот тут есть некоторая особенность. Дело в том, что туннели могут работать в две стороны.
В большинстве случаев мы хотим получить доступ к удаленным сервисам, но в случае использования системы X-client/server все наоборот. Сервер запускается на машине перед которой сидит оператор, а удаленные клиенты к нему могут присоединяться. Делается это так:

putty:
Source port 6000
Destination 127.0.0.1:6000
Переключаем кнопку, которая до сих пор по умолчанию стояла в Local на Remote и нажимаем Add (как и во всех предшествовавших примерах)
*nix:

ssh -R 8080:127.0.0.1:80 user@router.dyndns.org

Данный вариант успешно работал когда у меня стоял дебиан на роутере. Я выполнял

xosview -display localhost:0.0
и получал картинку на удаленном PC, на котором, естественно, был запущен Х-сервер.
Соответственно, если вместо 127.0.0.1 указать адрес *nix PC, находящегося в LAN, то задачи можно запускать на нем, а видеть результат и управлять на удаленном PC.

al37919
03-02-2008, 18:03
Далее следуют несколько возможностей, которые я пока не тестировал

Доступ к внутренним ресурсам, например, по протоколу ftp без их открытия в WAN
Скорее всего должно быть так:
Source port 8021
Destination 127.0.0.1:21
Однако, в этом варианте скорее всего доступ будет только в пассивном режиме. Для активного режима скорее всего надо второй туннель открывать. Я ftp извне никогда не пробовал, т.к. из WAN пользовался scp/sftp для копирования данных по протоколу опять таки SSH (см. http://wl500g.info/showthread.php?t=12357 )

Доступ к SMB шарам
пишут что можно сделать через ssh туннель. Не пробовал.

Доступ к rtorrent через xmlrpc
любопытный вопрос, который пока не тестировал

Печать на удаленном принтере
Как видим, туннели могут использоваться не только в броузере, но и в любой другой программе. Почему бы не сделать следующее:
Source port 9100
Destination 127.0.0.1:9100
Далее создать на удаленном PC TCP порт принтера с адресом 127.0.0.1:9100 и печатать в него с выводом на принтере подключенном к нашему роутеру.

И, наконец, еще два классических примера несомненного удобства использования ssh-туннелей, правда не совсем относящийся к нашему роутеру:
SMTP сервер через ssh туннель
1) есть ноут, который возится с места на место и подключается через разных провайдеров.
2) есть корпоративный/университетский почтовый сервер с ssh аккаунтом
С получением почты, обычно проблемы нет, а с отправкой все не так просто, т.к. придется забивать в каждом месте новый SMTP сервер. В данном случае, идеальным решением является использование ssh туннеля --- назначаем порту 8025 --- localhost:25; в почтовом клиенте настраиваем в качестве SMTP сервера localhost:8025; заходим по ssh на почтовый сервер и отправляем почту хоть с любого конца планеты без лишнего гемора.

Доступ к ресурсам с ограничением по IP
Собственно данный пример аналогичен вышеприведенному способу доступа в LAN с использованием SSH сервера в качестве SOCKS proxy.
1) Есть опять же корпоративный/университетский сервер с ssh аккаунтом.
2) С этого сервера имеется доступ к ресурсам интернета, контроль доступа к которым осуществляется по IP адресу (например, ситуация типична для наличия подписок на организации на определенную литературу).
3) Запускаем

ssh -D 1080 user@router.dyndns.org
либо в putty ставим галку около Dynamic и задаем порт, например, 1080.
Аналогично вышесказанному в firefox указываем SOCKS5 proxy: localhost:1080 и если мы идем на сайт с ограничением доступа по IP, то он определяет наш IP как IP SSH сервера к которому мы подключены!
Я нарыл эту фичу, удобный способ осуществить которую я искал вот уже несколько лет, в процессе написания этой статьи. Чему безмерно счастлив!

На всякий случай привожу скриншоты задания прокси в firefox
http://pfpdap.dyndns.org:8812/misc/wl500g.info/socks5_firefox.jpg

В вышеприведенном варианте трафик идет через тунель, но DNS запросы резолвятся через основной DNS. Этого вполне достаточно если ставится задача именно подмены IP адреса, однако, если целью является сокрытие того кто куда ходит (см. следующий пример), то можно и DNS запросы направить через SOCKS. Для этого в firefox в строке адреса набираем:

about:config
и в списке параметров включаем следующий:

network.proxy.socks_remote_dns = true

Еще один пример из википедии, может кого то наведет на полезную мысль
SSH туннели обеспечивают средство преодоления файрволов, которые запрещают определенные интернет сервисы, при условии, что исходящие соединения на 22-м порту разрешены. Например, многие организации запрещают пользователям доступ к веб-страницам напрямую без предварительного анализа прокси/фильтром. Однако, если юзеры способны подключиться к внешнему ssh серверу, то ssh туннель может быть создан для проброса 80-го порта внешнего веб-сервера на некоторый порт (например 80-й) на локальной машине и, таким образом, иметь доступ к внешнему веб-серверу по адресу http://localhost . В более общем случае, пользователи могут установить собственный прокси сервер (например, squid) дома и создать туннель от рабочего PC до прокси. Далее путем конфигурирования броузера на исползование localhost вместо корпоративного прокси сервера, пользователи могут получить доступ к любой веб странице в обход корпоративного прокси и файрвола.

От себя добавлю, что конторы бывают разные --- иногда админ или идиот, или параноик, а все страдают, но бывают, конечно, конторы из которых лучше не организовывать зашифрованные каналы неизвестно куда.

В заключение, хотелось бы еще раз подчеркнуть следующее. SSH туннели --- это простой, эффективный и в значительной степени безопасный способ организации доступа к внутренним ресурсам LAN из WAN, в отличие от почти всех альтернативных вариантов (пожалуй исключая https сервер, но я пока не встретил популярного изложения как его запустить на роутере, и VPN). По сути это действительно VPN, но не требующий усилий для настройки. Одно слово --- "poor man's VPN", хотя, по моему, "lazy man's VPN" --- ему как то больше к лицу.

ЗЫ Хороший англоязычный тьюториал: http://souptonuts.sourceforge.net/sshtips.htm
ЗЗЫ Спасибо АВАТАРА за дополнение о перенаправлении DNS запросов в SOCKS прокси

angel_il
03-02-2008, 18:52
а где веселые картинки? :rolleyes:

http://habrastorage.org/storage/e5b79fd4/15bcc8f9/69a55732/1398659f.jpg

http://habrahabr.ru/post/116214/ ;)

al37919
03-02-2008, 19:27
а что показывать то... ? :confused:скриншоты одной страницы putty? :) вроде несерьезно...

angel_il
03-02-2008, 21:34
а что показывать то... ? :confused:скриншоты одной страницы putty? :) вроде несерьезно...
да нормально, я для себя инструкции пишу с картинками, чтоб в следующий раз мозг не перенапрягать :)
особенно на работе.

Spacesoft
03-02-2008, 22:10
Скорость через эти туннели - никакая, проще tcppm или socks из 3proxy (http://wl500g.info/showthread.php?t=10201) заюзать...

al37919
03-02-2008, 23:01
Это смотря какое у Вас соединение. Среднестатистический ADSL использует на полную.
Уточняю. Скорость передачи от wl500gP составляет порядка 4Мбит/с ( проверялось с помощью SFTP ).

ink0gnit0
04-02-2008, 20:16
Отличный мануал!! Тема раскрыта полностью, можно прикреплять! Давно хотел поэкспериментировать с туннелями с завтрашнего дня начну! Огромное спасибо за такую подробную выжимку! :)

BlackKovu
05-02-2008, 08:48
Присоединяюсь - отличное описание. Самое главное - подана отличная идея, дальше уже можно самостоятельно начать прорабатывать.

Спасибо!

djet
04-04-2008, 17:04
Есть вопрос по Remote Port Forwarding.
Клиент ssh позволяет указать интерфейс на сервере, для которого открывается порт на прослушку. Однако у меня почему-то этого не происходит, привязка идёт только на 127.0.0.1.
Клиент: Windows Vista SP1 + SUA + InteropSecShell_4.6r1, OpenSSL 0.9.8e 23 Feb 2007.
Сервер: штатный dropbear sshd v0.50 из .10, запускающийся из xinetd.
Задача: пробросить порт RDP с ПК, находящегося за натом. По причине недостуности в данный момент этого ПК тестирую на своих.

Строка запуска клиента:

ssh -R :3389:192.168.1.3:3389 192.168.1.1 -N
ssh -R \*:3389:192.168.1.3:3389 192.168.1.1 -N
ssh -R 192.168.1.1:3389:192.168.1.3:3389 192.168.1.1 -N


Выдержка из мана:

-R [bind_address:]port:host:hostport
Specifies that the given port on the remote (server) host is to
be forwarded to the given host and port on the local side. This
works by allocating a socket to listen to port on the remote
side, and whenever a connection is made to this port, the connec-
tion is forwarded over the secure channel, and a connection is
made to host port hostport from the local machine.

Port forwardings can also be specified in the configuration file.
Privileged ports can be forwarded only when logging in as root on
the remote machine. IPv6 addresses can be specified by enclosing
the address in square braces or using an alternative syntax:
[bind_address/]host/port/hostport.

By default, the listening socket on the server will be bound to
the loopback interface only. This may be overriden by specifying
a bind_address. An empty bind_address, or the address `*', indi-
cates that the remote socket should listen on all interfaces.
Specifying a remote bind_address will only succeed if the serv-
er's GatewayPorts option is enabled (see sshd_config(5)).

Пробовал также проброс в SecureCRT - аналогично биндится к 127.0.0.1.

al37919
04-04-2008, 17:32
Только почему -R? Должно быть -L!

ssh -L 3389:192.168.1.3:3389 192.168.1.1 -N
Или я не понял задачу? C RDP могу себе представить только один вариант --- доступ извне к компу за NAT.

djet
04-04-2008, 18:13
Нужно пробросить порт RDP от клиента к серверу, поэтому -R.

Допустим, вариант с привязкой на нужный интерфейс не работает, и нужно через nat самом на роутере пробросить локально открытый сервером ssh порт. Делаю так:


iptables -A INPUT -p tcp --dport 3389 -d 127.0.0.1 -j ACCEPT
iptables -t nat -A VSERVER -p tcp -m tcp --dport 3389 -j DNAT --to-destination 127.0.0.1:3389

Но и эта схема не работает, порт остаётся недостижим извне.

djet
04-04-2008, 19:58
Кажется, вопрос решён с опцией "-a Allow connections to forwarded ports from any host".
Странно, однако, что открытый dropbear порт не отображается в netstat -na.

al37919
04-04-2008, 20:52
я по прежнему не понимаю о чем речь идет. Однако, могу отметить, что туннелирование через ssh никакого отношения к пробросу портов не имеет. И iptables тут явно ни при чем. И "открытый" порт доступен только в рамках конкретного открытого ssh соединения. Открыт должен быть только ssh порт

Стандартная задача использования RDP заключается в том, чтобы получить доступ с компа в инете на комп, сидящий за натом.

Для этого, сначала открываем туннель следующим образом:

ssh -L 3389:192.168.1.3:3389 user@ROUTER'S-WAN-IP
далее подключение по RDP к адресу: 127.0.0.1:3389

Что еще можно выдумать с RDP я не знаю.

djet
04-04-2008, 21:16
Поясню: есть предприятие, сервер которого подключен посредством nat от сети других арендаторов здания. Чтобы получить к нему доступ извне, требуется полное взаимопонимание с арендаторами, достигнуть которого пока затруднительно из-за репутации бывших сисадминов и загаженной локальной сети (с этим мы будем бороться). Однако, это не мешает нам достигать своих целей, одной из которых является управление сервером из дома и не только. Идея очень проста: сервером поднимается ssh, либо vpn-туннель до статического внешнего хоста (asus), после чего он становится доступен полностью (vpn) или частично (ssh port forwarding). Remote Port Forwarding нужен для подключения к клиентским портам со стороны сервера (задача, обратная обычному Local Port Forwarding).
//Осталось найти клиент win32, максимально красиво выполняющий свои функции в win32, либо работающий pptp/l2tp-сервер для asus'a.

al37919
04-04-2008, 21:52
теперь кажись наполовину понял


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 поднять можно

djet
04-04-2008, 22:38
Схемка уже отлажена и работает дома.
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'ом особо не работал..

al37919
05-04-2008, 06:48
IP4 - вообще хост абстрактный и может находиться где угодно, лишь бы порт на IP3 был доступен.
согласен, тогда первый вариант. Хотя в WAN этот порт на роутере я бы не открывал, а установил бы второй туннель от IP4 до IP3. Правда, не пробовал, но по моему работать должно. Хотя сначала неплохо бы добиться работоспособности без него для случая IP4 находящегося в LAN (в этом случае оба варианта должны быть ОК)


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


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


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

MaxPC
10-04-2008, 20:58
Есть желание подключиться 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 раза запущен:

[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 -O /tmp/syslog.log -S -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 -f /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 -p /var/run/udhcpc0.pid -s /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 -D -L br0 -W ppp0
165 admin 716 R dropbear -s
166 admin 548 S -sh
169 admin 392 R ps
- нормально это?!

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

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

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

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

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

al37919
18-04-2008, 18:27
Почитайте man для ssh В частности имеет смысл попробовать такие опции как -N & и -n

serebr
18-04-2008, 18:56
Почитайте 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'ом.

serebr
19-04-2008, 15:31
Расследование продолжается...

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

2. Переменная
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 - говорит что
/usr/bin/ssh: exited: string too long. Поскольку автоматический вход со старым ssh не работает, то удаленный хост просит ввести пароль. Ввожу пароль - все срабатывает, но открепить эту терминальную сессию без ее последующего разрыва невозможно.

6. Попытка с помощью переменной AUTOSSH_PATH указать явно, где лежит правильный ssh к успеху не приводит. В логах autossh пишет так
/opt/bin: - permission denied

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

`/usr/bin/ssh': Read-only file system

Может у кого есть подсказки для чайника? :confused:

al37919
19-04-2008, 16:20
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. Когда разберетесь, не забудьте подробно описать ;)

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

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

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


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:


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:
flashfs save && flashfs commit && flashfs enable


-------------------------------------------------------------------------
P.S. Проверил работу ssh из стандартной прошивки WL500gp-1.9.2.7-10. В самом деле, если генерировать ключи длиной 1024 бита, то автоматическая авторизация без пароля проходит без проблем.

dropbearkey -t rsa -f dropbear_key -s 1024
Да и запуск в открепленном режиме с ключом -N тоже работает. Поэтому если не нужно отслеживание реального наличия связи через туннель, то можно обойтись и без установки пакета autossh.

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

junkies
04-08-2008, 00:47
загружает 1 страничку сайта а потом putty выдает
fatal error
Received SSH2_MSG_CHANNEL_FAILURE for nonexistent channel 260

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

Marks
04-08-2008, 20:00
Google поломался? Первая ссылка по заппросу ssh server for windows http://www.n-admin.com/n27-5110.html
вторая http://sshwindows.sourceforge.net/

DemonGloom
05-08-2008, 02:40
Я нашел freeSSHd через wikipedia. Но не в этом суть.... Интересует именно такой туннель...

Marks
05-08-2008, 08:47
Я нашел freeSSHd через wikipedia. Но не в этом суть.... Интересует именно такой туннель...

Если я правильно понял, то алгоритм такой - поднимаем на виндовой машине SSH server, коннектимся клиентом SSH c роутера к этой машине, ну а дальше вроде как http://wl500g.info/showthread.php?t=12833 начиная с 10-го поста. Так?

DemonGloom
05-08-2008, 13:46
спасибо, буду пробовать...

bornnewyear
12-10-2008, 00:16
В первую очередь хотелось бы сказать огромное спасибо al37919 за понятный мануал! Все работает как надо!
Во вторую очередь хотелось бы задать вопрос: У меня на роутере висит внешний диск на 2 терабайта через Ethernet интерфейс(ссылка на описание диска http://ishop.sunrise.ru/goodsDescription.php?goods_code=8132947&branch=1&house=00009&p=14950&id=0075796&b=1). Так вот я бы хотел, чтобы можно было бы обращаться к этому диску как к сетевому диску через ssh тунель? Как мне это сделать?! Или возможно мне нужно на роутере поднять Server FTP? И что мне с этим FTP делать?!
Помогите пожалуйсто! Очень нужна помощь! Сам уже весь инет излазил!
Большое спасибо!

al37919
12-10-2008, 05:50
все зависит от возможностей коробки с винчестером.

ftp через туннель --- задача не совсем тривиальная. Возможно, я бы выбрал такой вариант: расшаривание диска на роутер через nfs и доступ к роутеру через sftp

p.s. постить одно и то же малосодержательное сообщение трижды в разных ветках является нарушением правил конференции "Place a topic only once in one forum (no double or cross posting)" и, мягко говоря, раздражает.

ghost38
20-10-2008, 21:27
Прежде всего, спасибо за подробную инструкцию.
Пытаюсь это все освоить... Установил и запустил dropbear, разобрался с putty.
Не пойму как мне настроить post-firewall, т.к. не понимаю ничего :(
У меня в нем сейчас такие правила(не помню уже для чего, но вроде для DC++ сделан проброс портов)
#!/bin/sh
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP
iptables -I SECURITY -p udp --dport 16000:16254 -j RETURN

Если я добавлю Ваши :
# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT

ничего я не испорчу?

vectorm
20-10-2008, 21:35
Прежде всего, спасибо за подробную инструкцию.
Пытаюсь это все освоить... Установил и запустил dropbear, разобрался с putty.
Не пойму как мне настроить post-firewall, т.к. не понимаю ничего :(
У меня в нем сейчас такие правила(не помню уже для чего, но вроде для DC++ сделан проброс портов)
#!/bin/sh
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -j DROP
iptables -I SECURITY -p udp --dport 16000:16254 -j RETURN

Если я добавлю Ваши :
# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT

ничего я не испорчу?
Надо примерно так чтобы было:

#!/bin/sh
# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
iptables -A FORWARD -j DROP
iptables -I SECURITY -p udp --dport 16000:16254 -j RETURN

Dinamik
05-11-2008, 03:11
Как можно ограничить пользователя в шеле :confused: - к примеру заперев его в домашней папке, или запретить просмотр файлов в папке etc ?

Less
05-11-2008, 05:28
Как можно ограничить пользователя в шеле :confused: - к примеру заперев его в домашней папке, или запретить просмотр файлов в папке etc ?

А зачем кому то кроме админа давать возможность туда ходить?

Вы можете проспо запретить ему заходить в систему

Usage: adduser [OPTIONS] user_name

Add an user

Options:
-h DIR Home directory
-g GECOS GECOS field
-s SHELL Login shell
-G GROUP Add user to existing group
-S Create a system user
-D Do not assign a password
-H Do not create home directory


adduser -s /sbin/nologin user_name

Dinamik
05-11-2008, 14:49
Анти-помощь - луче ничего не отвечать чем писать такое...
Может человек хочет пропинговать или посканить свой комп с моего шелла, да и не только для этого нужно....
Если нельзя такого сделать - так и скажите...

al37919
05-11-2008, 15:51
я бы не сказал, что это антипомощь. Это в некотором смысле основы культуры администрирования многопользовательских систем. Продожу курс.

1) безответственным пользователям доступ через шелл не предоставляют. Перефразируя известную штатовскую фразу --- это не право, но привилегия.

2) в полноценных юниксовых серверах пользователям разрешен доступ на чтение к большинству файлов в /etc, однако, запрещен доступ на запись. А то, где хранится важная информация --- пароли и т.д. --- закрыто и для чтения. В общем, выставляйте корректные права доступа и счастие да пребудет...

Less
05-11-2008, 17:46
я бы не сказал, что это антипомощь. Это в некотором смысле основы культуры администрирования многопользовательских систем. Продожу курс.

1) безответственным пользователям доступ через шелл не предоставляют. Перефразируя известную штатовскую фразу --- это не право, но привилегия.

2) в полноценных юниксовых серверах пользователям разрешен доступ на чтение к большинству файлов в /etc, однако, запрещен доступ на запись. А то, где хранится важная информация --- пароли и т.д. --- закрыто и для чтения. В общем, выставляйте корректные права доступа и счастие да пребудет...

OFF
то al37919
Видемо коллега... верно подмеченно
/OFF

А по теме: сделать Вы можете всё что захотите.

Dinamik
05-11-2008, 18:54
А по теме: сделать Вы можете всё что захотите.

Действительно ? могу сделать как за хочу ? блиин афигеть.
Только я спрашивал в теме КАК это сделать а не что можно с роутером сделать, улавливаете разницу ? :)

Один твердит: а зачем вам ?
Другой: сделать можете что захотите.
Третий: Не надо вам это.

Был всего лишь один вопрос, была надежда хотя бы пару примеров увидИть - как это реализовать, а в ответ флуд...

al37919
05-11-2008, 19:09
Видемо коллега... верно подмеченно
не-а :) Пользователь unix с ~15-летним стажем :)


Один твердит: а зачем вам ?
Другой: сделать можете что захотите.
Третий: Не надо вам это.

Был всего лишь один вопрос, была надежда хотя бы пару примеров увидИть - как это реализовать, а в ответ флуд...

Батенька, вам, однако, нервы лечить надо. Советы вам дают исключительно по делу...

как это реализовать --- ответ легче легкого --- комманды chmod, и, возможно, chown. Далее есть wikipedia, opennet и т.д. Надеюсь разберетесь. А после этого, крайне рекомендую перечитать эту ответы вдумчиво. Ибо... --- как реализовать --- тут все просто, а вот что именно реализовывать --- имеет смысл поразмыслить

EugeenB
05-11-2008, 21:41
Был всего лишь один вопрос, была надежда хотя бы пару примеров увидИть - как это реализовать, а в ответ флуд...У каталога /etc - права доступа root/root rwxr-xr-x. А так-как сделать юзера более бесправным, чем "azer" нет возможности, стандартными средствами (http://pwet.fr/man/linux/administration_systeme/dropbear), то Вам придется перейти к нестандартным. Например,
1. установить спецальный Шелл, который не позволяет менять каталог и запускать любые неперечисленные программы/скрипты;
2. chroot;
3. SELinux.
Есть множество вариантов...

raum01
27-11-2008, 09:23
народ подскажите плизз
можно ли использовать такой туннель для доступа к ресурсам internet
заранее спасибо!

Cd_spb
27-11-2008, 10:57
raum01, если Вы имеете в виду, использование в виде "прокси" - то ответ "Да".
Поясню. Вы можете прокинуть туннель с локального порта(например 3198) на 80-й порт роутера, настроить броузер на использование прокси 127.0.0.1:3198 и ходить в интернет через броузер.
Кажется так.

raum01
29-11-2008, 23:08
щаз попробую
спасибо!

ABATAPA
30-11-2008, 12:26
народ подскажите плизз
можно ли использовать такой туннель для доступа к ресурсам internet
заранее спасибо!

Да. Читайте man ssh: ssh может выступать в роли socks-прокси.
Все отлично работает.

residend
29-12-2008, 00:08
Вопрос вроде уже задавался тут, но ответа так я и не увидел! Так вопрос, как всё таки сделать доступ к файлам через samba с помощью ssh тунеля так, как будто работаете из локальной сети? Ну и ещё доступ желателен только к определённым папкам на винчестере (или каком-либо компьютере в сети).

Объясню попдробнее: на каком-то из сетевых дисков (присоединённый диск в роутеру через USB) есть база данных, к ней необходим доступ из вне, обязательно по самбе, но при этом чтобы остальные ресурсы не были видны, или хотябы чтобы просто был доступ к локальным машинам по самбе, если невозможно сделать доступ только к определённым.

Или мне всё же в сторону openvpn смотреть?

al37919
29-12-2008, 05:52
Или мне всё же в сторону openvpn смотреть?
скорее да. smb нужен протокол udp, а ssh туннели работают с tcp. Еще, говорят, есть вариант с netcat

vital-s
13-01-2009, 14:06
Итак, что нужно сделать, чтобы создать ssh туннель после того, как все вышеуказанные пререквизиты выполнены.

Для примера подготовка туннеля в putty для доступа к веб-интерфейсу роутера из WAN:

Все так и делал вылазит окно "Network error:Connection timed out"

Куда копать, или я не корректно задал вопрос?

al37919
13-01-2009, 14:34
сначала убедиться, что из ЛАН работает. Если да, то проверять настройки файрвола, политику провайдера --- возможно порт заблокирован, и т.д.

vital-s
13-01-2009, 14:43
сначала убедиться, что из ЛАН работает. Если да, то проверять настройки файрвола, политику провайдера --- возможно порт заблокирован, и т.д.

Из лана проверил, настроил rtorrent и adoc, из инета есть доступ к вэбморде через dyndns, а вот из инета зайти по SSH не могу. Фаервол на ББ отключил, правда вот про политику не подумал, а как проверить? :)

al37919
13-01-2009, 15:44
в файрволе на роутере ssh порт должен быть тоже прокинут. См. первый пост. Проверить: iptables -L
Как проверить политику? Можно dropbear запустить на другом порту (ключ -p)
Можно просканировать на открытые порты снаружи (например набрать в гугле portscan) и получить массу ссылок на подобные онлайн сервисы.

vital-s
14-01-2009, 07:00
в файрволе на роутере ssh порт должен быть тоже прокинут. См. первый пост.

Все оказалось намного проще, в первом посте нет #!/bin/sh, а многие просто копируют из сайта код и вставляют, вот я и пропустил. ;)

al37919
14-01-2009, 07:28
Эта тема в общем то и не является заменой темы настройки с нуля, а именно пояснением как поднять туннель при настроенной прошивке.

GUID
26-01-2009, 13:43
Далее есть wikipedia, opennet и т.д. Надеюсь разберетесь. [skip] а вот что именно реализовывать --- имеет смысл поразмыслить
а не подскажете толковую книжку/статью про администрирование пользователей?
Просто, из всего того что я читал напрашивается несколько печальных выводов, в часности - все было классно лет 15 назад, а сейчас так и осталось (это imho, не обращайте внимание).
У меня похожая задача - пустить пользователя, чтобы он мог выполнить wake-up и более ничего.

al37919
26-01-2009, 15:51
насчет книжки с ходу затрудняюсь. Хороший русскоязычный сайт opennet.ru

unix создан 40 лет назад и ничуть не устарел, а наоборот интенсивно развивается в различных реинкарнациях.

Я бы Вам посоветовал почитать документацию по openssh. В нем есть возможность при авторизации пользователя по ключу задать какую комманду он может выполнить. Пример применительно к subversion: http://svn.collab.net/repos/svn/trunk/notes/ssh-tricks

Только имейте в виду, что dropbear не поддерживает этих параметров, так что придется установить полноценный openssh

GUID
26-01-2009, 16:27
Спасибо, буду разбираться...

GUID
30-01-2009, 22:08
help!!!

как это реализовать --- ответ легче легкого --- комманды chmod, и, возможно, chown.
как не-root пользователю выполнить "ether-wake"?
Точнее нужно выполнить следующее:


[user@sGate user-home]$ ether-wake -i br0 00:17:31:21:8b:b5
ether-wake: can`t create raw socket: Operation not permitted

ладно, не пошло - видимо нужно дать права root => выход один - "setuid bit" + владелец root. Так?
Изменение прав доступа для /usr/bin/ether-wake ничего не дало, т.к. "read-only file system".
Пишем скрип (/home/user-home/wake):


#!/bin/sh
#send magic-packet
/bin/busybox ether-wake -i br0 00:17:31:21:8b:b5

Права доступа:


[user@sGate user-home]$ ls -la
drwxr-sr-x 4 user nobody 4096 Jan 31 00:56 .
drwxr-xr-x 6 mNet root 4096 Jan 31 00:56 ..
drwxr-sr-x 3 user nobody 4096 Jan 30 23:00 .mc
drwxr-sr-x 2 user nobody 4096 Jan 27 21:23 .ssh
-r-sr-xr-x 1 mNet root 79 Jan 30 22:55 wake

Запускаю от имени user и снова: "can`t create raw socket" :(
HELP!!! обещали ведь "легче легкого"!!!!

al37919
31-01-2009, 07:09
а кто обещал легкость для файловой-системы-только-для-чтения? Откровенно говоря даже не знаю что можно сделать с ether-wake. Чтобы он работал нужно, чтобы у busybox стоял SUID, а это значит, что этот признак будет и у всех остальных утилит, а это есть дыра в безопасности огромного размера.

Я бы вам посоветовал обратить внимание на внешние утилиты для той же цели. Им при необходимости можно выставить права какие надо.

ipkg list wake
perl-wakeonlan - 0.41-1 - A Perl script that sends 'magic packets' to wake-on-LAN enabled ethernet adapters and motherboards, in order to switch on remot
wakelan - 1.1-2 - send the magic wakeup package over the LAN

shaman1010
11-03-2009, 19:02
Покурил микроман по putty, потратил пару дней, но результата так и не увидел. Нужна помощь.
Задача стоит такая:
1) Имеем комп на XP, внутри корпоративной сети. (ip 172.48....)
2) Выход в мир через проксю.
3) С другой стороны стоит ASUS 500gP роутером, через модем в бридже на нем поднято PPPoE. Имеем внешний стат. адрес (ip 79.12...)
4) На ASUSе поднят ssh (dropbear), прописан входной порт в iptables.
5) Внутри локалка с диапазоном 172.15...
6) У ASUSа статический адрес в локалку 172.15.15.200

Что имеем:
1) С корпоративного компа поднимается ssh-тунель на внешний ip роутера (79.12. Взлетает с полпинка.
2) В правилах тунеля (пробовал и через putty и через plink) прописаны несколько правил типа -L 3395:172.15...:3389 и -L 3389:172.15.15.200:3395 и -R3395:172.48...:3389
3) При поднятии с корпоративки rdp вида localhost:3395 - на машину за NATом из локалки 172.15... влет нормальный, с клиент-серверными прогами в ту сторону - тоже без проблем, НО...

Что не получается:
1) При поднятом с корпоративки туннеле зайти на корпоративный комп из своей локалки.

Как я понимаю при двух предыдущих правилах теоретически должно было быть при поднятии с локалки (172.15....) rdp типа 175.15.15.200:3395 все завестись, но не заводится :-))
Пробовал и localhost:3395 и с правилами тунеля эксперименты проводить (-L 3389:172.15.15.200:3395 и -R 3395:172.48...:3389 и двойной туда - обратно и др. варианты), но при любом раскладе получается с компа, на котором поднят тунель влетает куда угодно, но в обратную сторону - нелетная погода :-))

Где туплю?

al37919
12-03-2009, 06:49
Покурил микроман по putty, потратил пару дней, но результата так и не увидел. Нужна помощь.
Задача стоит такая:
1) Имеем комп на XP, внутри корпоративной сети. (ip 172.48....)
2) Выход в мир через проксю.
3) С другой стороны стоит ASUS 500gP роутером, через модем в бридже на нем поднято PPPoE. Имеем внешний стат. адрес (ip 79.12...)
4) На ASUSе поднят ssh (dropbear), прописан входной порт в iptables.
5) Внутри локалка с диапазоном 172.15...
6) У ASUSа статический адрес в локалку 172.15.15.200

Что имеем:
1) С корпоративного компа поднимается ssh-тунель на внешний ip роутера (79.12. Взлетает с полпинка.
2) В правилах тунеля (пробовал и через putty и через plink) прописаны несколько правил типа -L 3395:172.15...:3389 и -L 3389:172.15.15.200:3395 и -R3395:172.48...:3389
3) При поднятии с корпоративки rdp вида localhost:3395 - на машину за NATом из локалки 172.15... влет нормальный, с клиент-серверными прогами в ту сторону - тоже без проблем, НО...

Что не получается:
1) При поднятом с корпоративки туннеле зайти на корпоративный комп из своей локалки.

Как я понимаю при двух предыдущих правилах теоретически должно было быть при поднятии с локалки (172.15....) rdp типа 175.15.15.200:3395 все завестись, но не заводится :-))
Пробовал и localhost:3395 и с правилами тунеля эксперименты проводить (-L 3389:172.15.15.200:3395 и -R 3395:172.48...:3389 и двойной туда - обратно и др. варианты), но при любом раскладе получается с компа, на котором поднят тунель влетает куда угодно, но в обратную сторону - нелетная погода :-))

Где туплю?

во первых использование в виде приватных адресов взятых от балды диапазонов не есть гут и вероятная причина для проблем.

Цитирую http://www.sovety.net/040000.php

При построении (проектировании) внутренней IP-сети при выборе диапазонов статических адресов (либо диапазонов для выделения адресов DHCP-серверами) следует придерживаться рекомендаций RFC3330, в соответствии с которыми для использования во внутренних сетях зарезервированы следующие диапазоны адресов, установленные RFC1918:
10.0.0.0/8 (10.0.0.0–10.255.255.255); 1 сеть класса A
172.16.0.0/12 (172.16.0.0–172.31.255.255); 16 сетей класса B
192.168.0.0/16 (192.168.0.0–192.168.255.255); 256 сетей класса C
Согласно документу, данные диапазоны адресов не должны появляться в Интернете. В соответствии с RFC3330 любой маршрутизатор в Интернете, обнаружив IP-пакет с адресом из указанного диапазона (неважно, источник или приёмник), обязан его уничтожить.

ну а по существу трудно сказать надо экспериментровать дальше.

очевидно должен использоваться туннель типа -R причем одного должно быть достаточно для связи "обратно" и один -L для "туда"

можно проверить, что туннель установлен выполнением

netstat -na | grep LISTEN

и еще проверить удается ли зайти туда из самой локалки --- т.е. работоспособность сервиса, файрвол и т.д.

shaman1010
12-03-2009, 07:50
Спасибо за прочтение :-))

"во первых использование в виде приватных адресов взятых от балды диапазонов не есть гут и вероятная причина для проблем."

Диапазон в моем примере - чисто условный, на самом деле обе сетки подпадают под это:

"172.16.0.0/12 (172.16.0.0–172.31.255.255); 16 сетей класса B"

"можно проверить, что туннель установлен выполнением

netstat -na | grep LISTEN"

Вот что у меня... (на сейчас подъем по таким правилам:
PLINK.EXE -v -P 1150 -ssh -2 -l юзер -pw пароль -N -T -a -x -noagent -batch -R 172.15.15.200:2220:172.48.1.150:2210 -L 172.48.1.150:2220:172.15.15.200:2210 79.11.12.13....(здесь адреса не те, которые используются в реале, все ip соответствуют классу В, но для примера я их чуток поменял :-)) на самом деле смотрим на 172.15... а использую 172.19...., так что эти пакеты не дропаются, да и в одну сторону тунель работает всегда!))
п
ри поднятии указано, что все гуд...(3389 прописаны в putty)

Access granted
Local port 3390 forwarding to 172.15.15.3:3389
Local port 172.48.1.150:2220 forwarding to 172.15.15.200:2210
Requesting remote port 3390 forward to 172.48.1.150:3389
Requesting remote port 172.15.15.200:2220 forward to 172.48.1.150:2210
Remote port forwarding from 2210 enabled
Remote port forwarding from 3390 enabled
Remote port forwarding from 172.15.15.200:2220 enabled

$ netstat -na | grep LISTEN
tcp 0 0 0.0.0.0:1024 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2210 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN
tcp 0 0 172.15.15.200:139 0.0.0.0:* LISTEN
tcp 0 0 172.15.15.200:2220 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5431 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3395 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3838 0.0.0.0:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 1318 /tmp/php-fastcgi.socket-0
unix 2 [ ACC ] STREAM LISTENING 1323 /tmp/php-fastcgi.socket-1
unix 2 [ ACC ] STREAM LISTENING 1326 /tmp/php-fastcgi.socket-2
unix 2 [ ACC ] STREAM LISTENING 1329 /tmp/php-fastcgi.socket-3



"и еще проверить удается ли зайти туда из самой локалки --- т.е. работоспособность сервиса, файрвол и т.д."

С корпоративной локалки по 2210 - влет без проблем, и с корпоративки по 2220 на свою локалку за натом - тоже влет без проблем, проблема только в обратном направлении...

При попытках соединения по 2220 из своей локалки в логах:

Received remote port 2220 open request from 172.15.15.3:4322
Attempting to forward remote port to 172.48.1.150:2210
Forwarded port opened successfully
Forwarded port closed -------- с другой стороны пишет error connection closed, причем именно после начала отправления пакетов......


И еще - на входной корпоративной проксе порт ssh (в примере 1150) должен быть разрешен?

AlekseyA
13-03-2009, 07:12
Нужна помощь!
Дома на роутере все сделал по первому посту. Но с рабочего компа не могу открыть тунель, вылетает окно "Network error:Connection timed out"

Подскажите как проверить работоспособность ssh-тунеля находясь дома?

Есть еще подозрение что на работе сисадмин перекрыл многие порты. Подскажите как найти рабочий порт и как потом по ниму открыть тунель?

PS: имею внешний стат-IP.

shaman1010
13-03-2009, 07:28
Для поднятия тунеля из рабочего места на домашний роутер должно соблюстись несколько условий:
1) работоспособность самого тунеля (можно проверить поднятием из домашней локальной сети.
2) в файрволе роутера должен быть разрешен входящий порт, по которому будет осуществляться подъем ssh/
3) прокся на работе не должна отфутболивать 443 порт (вне зависимости от порта поднятия ssh на домашнем роутере). Т.е. запросы ssh изначально шуруют через 443 порт, вне зависимости от http-ного порта прокси или порта, по которому поднимается ssh на роутере.

По крайней мере с поднятием тунеля с рабочего места на домашний роутер больше особых заморочек нет (ну если ты не забыл в putty прописать через какую проксю ему на работе бегать :-))

ABATAPA
13-03-2009, 08:17
Для поднятия тунеля из рабочего места на домашний роутер должно соблюстись несколько условий:


Ну, вообще-то достаточно хотя бы 1 порта для подключения к SSH - и ssh из OpenSSH, и Putty могут выступать в качестве SOCKS-прокси. И тогда никаких других туннелей для доступа, например, к панели управления (или web-консоли transmission, и т.д.) не нужно.

PS: Это описано в инструкции.

AlekseyA
13-03-2009, 09:26
Для поднятия тунеля из рабочего места на домашний роутер должно соблюстись несколько условий:
1) работоспособность самого тунеля (можно проверить поднятием из домашней локальной сети.

Поясните, что значит "поднятием из домашней локальной сети".
В домашней сети (192.168.1.1/255) с ББ по LAN и ноут по WI-FI putty-ssh открывается и работает, но это есть в каждой инструкции с нуля, через это происходит настройка роутера.
Это имеется ввиду?


2) в файрволе роутера должен быть разрешен входящий порт, по которому будет осуществляться подъем ssh/

В post-firewall прописано, как в первом посте:

#! /bin/sh
# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT


3) прокся на работе не должна отфутболивать 443 порт
Как это проверить?


(ну если ты не забыл в putty прописать через какую проксю ему на работе бегать :-))

Поясните, что имелось ввиду, вроде на работе нет прокси. Как это проверить? И если она все же есть, где прописать в putty?

Да, похоже есть ещё одна проблема: сеть провайдера типа 10.1.51.1

kozian
13-03-2009, 10:47
Есть такая программка - Bitwise Tunneler.
Бесплатная, если "personal usage" ;-)
Позволяет делать ПортМеппинги прямые и обратные, а так же встроеная прокси socks4\5\http и дополнительные приблуды.
В дополнении программками типа SocksCap (позволяет все соединения программы посылать через socks проксю), очень просто любое приложение тунелировать. Игры, Броузеры, Почтовые клиенты.
Предлагаю включить в первоначальное описание ;-)

kozian
13-03-2009, 11:01
2 AlekseyA
Если расчитывать, что есть внешний IP, и он указан правильно, то:

1. Запускать SSH на роутере нужно на 80 или 443 порту, т.к. скорее всего остальные закрыты. (в нормальных местах 443 закрывают тоже по-умолчанию)
Как альтернатива, можно прописать роутер у себя в виде виртульного сервера с local port - 22. (внешний порт 443, локальный порт 22, локальный IP - 192.168.1.1). Так настроено у меня - работает.

2. iptables -A INPUT -p tcp --syn --dport [22] -j ACCEPT
Его, соответственно, заменить на 80 или 443.

3. Если прокси на работе есть, скорее всего ее надо указать в свойствах подключения ssh клиента.

p.s. проверять можно, заходя через броузер (ставя соответсвующий порт) и смотря статус соединения или ошибки. типа http://some.server.ru:22/

al37919
13-03-2009, 11:24
Да, похоже есть ещё одна проблема: сеть провайдера типа 10.1.51.1
это серый IP, снаружи он не будет виден.

AlekseyA
13-03-2009, 12:11
Ребята! kozian и al37919 спасибо за помощь!
Единственная просьба: ответы немного развернутей можно? *nix начал изучать с приобретением WL-500gP.

1. Запускать SSH на роутере нужно на 80 или 443 порту

Проверил на работе похоже работает только 80 порт. Достаточно ли будет записать dropbear -p 80 в post-boot или необходимо изменить что-то ещё? На данный момент в post-boot записано dropbear > /dev/null 2>&1.


Как альтернатива, можно прописать роутер у себя в виде виртульного сервера с local port - 22. (внешний порт 443, локальный порт 22, локальный IP - 192.168.1.1).
Как это сделать, если будет необходимость?


3. Если прокси на работе есть, скорее всего ее надо указать в свойствах подключения ssh клиента.
В какой вкладке это находится и как опредилить есть или нет прокси?
В IE в свойствах на рабочем компе такое:
http://img26.imageshack.us/img26/981/83949978.jpg

al37919

это серый IP, снаружи он не будет виден.
В посте 20 (http://wl500g.info/showpost.php?p=93679&postcount=20) данной темы было написано что за NAT провайдера достучаться не поличится, вот я и не знаю что делать и где копать.

al37919
13-03-2009, 16:16
ПК1 --- прокси? --- <инет> --- провайдер --- <10.X.X.X> --- wl500g --- ПК2

При такой конфигурации сети с ПК1 получить доступ напрямую к wl500g и ПК2 за ним нельзя.

При условии, если на ПК1 белый адрес и прокси пустит на какой нибудь его порт с улицы, то можно пытаться поднять туннель с wl500g на ПК1, предварительно поставив ssh сервер на ПК1. В этом случае если очень повезет и все заработает, то можно будет с ПК1 зайти на wl500g и ПК2

Это то, о чем упомянутый пост serebr и с чем он потом боролся и в конце концов успешно

kozian
14-03-2009, 08:04
Ребята! kozian и al37919 спасибо за помощь!
Единственная просьба: ответы немного развернутей можно? *nix начал изучать с приобретением WL-500gP.


Проверил на работе похоже работает только 80 порт. Достаточно ли будет записать dropbear -p 80 в post-boot или необходимо изменить что-то ещё? На данный момент в post-boot записано dropbear > /dev/null 2>&1.


Ну тогда можно dropbear -p 80 > /dev/null 2>&1
перенаправление в dev/null нужно, чтобы он сообщения не выдавал в консоль.



Как это сделать, если будет необходимость?


Это делается через web-интерфейс. Там NAT Setting -> Virtual servers
Добавляешь
Port Range 80
Local IP 192.168.1.1
Local Port 22

Имя тоже какое-нить типа "перенаправление ssh с http"



В какой вкладке это находится и как опредилить есть или нет прокси?
В IE в свойствах на рабочем компе такое:
http://img26.imageshack.us/img26/981/83949978.jpg


Тут проблемка, видимо ) Автонастройка прокси. Я, к сожалению, не знаю, как оно работает.
Можно попробовать сделать так:
1. Постараться сделать минимум соединений по сети. (закрыть броузеры и т.п.)
2. Смотришь с помощью netstat -na в консоли винды, какие есть подключения
3. Запускаешь iexplorer, открываешь какую-нибудь страницу, смотришь опять netstat -na, какое новое соединение появилось.
(или можно netstat -nab, и посмотреть по PID експлорера его)
оно будет твоего компьютера до какого-то сервера (прокси) с портом 8080 или 3128 - это стандартные порты прокси.

Вот эти IP и порт и будут прокси...



al37919

В посте 20 (http://wl500g.info/showpost.php?p=93679&postcount=20) данной темы было написано что за NAT провайдера достучаться не поличится, вот я и не знаю что делать и где копать.

Кстати, самая большая проблема... Проверить достоверно можно так:
1. Заходишь через web-интерфес, Status & Log -> Status, смотришь там поле в WAN Interface - IP adress.
2. Заходишь на myip.yandex.ru, смотришь, какой у тебя там выдался IP - это твой внешний IP или IP шлюза провайдера...

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

AlekseyA
15-03-2009, 12:52
ПК1 --- прокси? --- <инет> --- провайдер --- <10.X.X.X> --- wl500g --- ПК2

...с чем он потом боролся и в конце концов успешно

Ситуация похожая один в один. Только про прокси пока ничего сказать не могу, это оставим до понедельника.

Внешний-домашний IP адрес в инете статический, я за него прову плочу. На работе внешний вроде тоже всегда один и тотже показывает.


Сделал dropbear -p 80 > /dev/null 2>&1 и в Virtual servers все настроил.

Putty отказывается заходить по ssh, по телнету заходит.
По команде ps --- dropbear не появляется. что то не так?
Возвращая dropbear > /dev/null 2>&1, ssh работает.

Нужно ли исправлять строчку
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
на 80

kozian
17-03-2009, 13:13
Ситуация похожая один в один. Только про прокси пока ничего сказать не могу, это оставим до понедельника.

Внешний-домашний IP адрес в инете статический, я за него прову плочу. На работе внешний вроде тоже всегда один и тотже показывает.


Сделал dropbear -p 80 > /dev/null 2>&1 и в Virtual servers все настроил.

Putty отказывается заходить по ssh, по телнету заходит.
По команде ps --- dropbear не появляется. что то не так?
Возвращая dropbear > /dev/null 2>&1, ssh работает.

Нужно ли исправлять строчку
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
на 80

Единственное, я лично с 80 портом не пробовал. На нем висит консоль на внутреннем интерфейсе. Скорее всего, не будет работать ssh, если его пытаться поднять на 80.

Короче. Ты немножко намешал, мне кажется, из разных идей... попробуй запустить ssh штатным режимом (dropbear > /dev/null 2>&1)
Посмотреть, что у тебя в виртуал серверах идет переадресация с 80 на 22 на роутер. (видимо ты это уже сделал)
проксю пропиши и попробуй

строчку
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
так и оставь ) хотя скорее всего она не нужна будет вообще.
Тут схема такая: при настройке виртуал сервера, автоматически пропишется редирект с внешнего 80 порта на внутренний 22. А внутренний порт открыт по-умолчанию.

Проблема в том, что при схеме с виртуал сервером будет тяжелее защищать вход по SSH через 80й порт.

al37919
17-03-2009, 14:12
dropbear -p 80 просто так работать не будет, т.к. 80й порт занять httpd Если вы не будете глушить его вывод всякими > /dev/null 2>&1 --- то он сам в этом честно признается. Так что проще всего перед этим подвинуть веб морду на другой порт, тогда и в PREROUTING ничего прописывать не придется.


Да, похоже есть ещё одна проблема: сеть провайдера типа 10.1.51.1
а это вообще о чем было?

AlekseyA
18-03-2009, 06:53
а это вообще о чем было?

Да вот про это:

ПК1 --- прокси? --- <инет> --- провайдер --- <10.X.X.X> --- wl500gP --- ПК2


У меня тоже самое.

В приватной беседе с kozian, выяснили:
Если я с работы набираю: https://внешн_ip:80/
выдает:


Во время доставки URL: 212.xxx.xx.xx:80

Произошла следующая ошибка:
Доступ запрещен.
Настройка контроля доступа не даёт возможности выполнить Ваш запрос в настоящее время. Пожалуйста, свяжитесь с Вашим поставщиком услуг Интернет, если Вы считаете это неправильным.


Если http://внешн_ip/ Опера выдала: SSH-2.0-dropbear_0.50

Вертуальный сервер работает с 80 на 22, но Putty выдает ошибку: Proxy error: 403 Forbidden.

Как можно найти открытый порт?

kozian
19-03-2009, 10:23
Да вот про это:


У меня тоже самое.

В приватной беседе с kozian, выяснили:
Если я с работы набираю: https://внешн_ip:80/
выдает:




Если http://внешн_ip/ Опера выдала: SSH-2.0-dropbear_0.50

Вертуальный сервер работает с 80 на 22, но Putty выдает ошибку: Proxy error: 403 Forbidden.

Как можно найти открытый порт?

Я просто уточнить. Squid, который тут имеет место, не просто прокси, но и кеширователь. По роду деятельности, он парсит контент. И хорошо различает HTTP трафик и не HTTP. Так что никакой SSL он не будет пропускать... Был бы открыт HTTPS - было бы много проще, там шифрованый трафик, и его уже не разобрать так просто.

brv555
23-03-2009, 04:25
Ребята помогите.
Не получается установить ssh тунель на домашний роутер с работы. Соединение ssh на 22-й порт роутера проходит.
На работе и дома адреса статические.трафик не фильтруется вобще.

Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается. Всё сделал как в первом посте написано.
но доступа в вэб морде нет.

Из личных наблюдений:

первый случай:
Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается при следующем выводе iptables -L INPUT -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

Второй случай:
Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается при следующем выводе iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
245 139K DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Третий случай:
Тунель усланавливается и я могу попасть на http://127.0.0.1:8080 при следующем выводе iptables -L INPUT -vn

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

но в данном случае файрвол ничего не блокирует.

Как мне добиться того, чтобыфайрвол раблтал и устанавливался ssh тунель?
Весь поиск по слову ssh прочитал. Не могу понять почему у других при первом и втором случае работают а у меня нет.

роутер wl-500gpv2 прошивка 10.7 от олега. на 10 тоже пробовал.

kozian
23-03-2009, 09:00
Ребята помогите.
Не получается установить ssh тунель на домашний роутер с работы. Соединение ssh на 22-й порт роутера проходит.
На работе и дома адреса статические.трафик не фильтруется вобще.

Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается. Всё сделал как в первом посте написано.
но доступа в вэб морде нет.

Из личных наблюдений:

первый случай:
Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается при следующем выводе iptables -L INPUT -vn
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

Второй случай:
Соединение ssh на 22-й порт роутера проходит. но сам тунель не устанавливается при следующем выводе iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
245 139K DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Третий случай:
Тунель усланавливается и я могу попасть на http://127.0.0.1:8080 при следующем выводе iptables -L INPUT -vn

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3061 291K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

но в данном случае файрвол ничего не блокирует.

Как мне добиться того, чтобыфайрвол раблтал и устанавливался ssh тунель?
Весь поиск по слову ssh прочитал. Не могу понять почему у других при первом и втором случае работают а у меня нет.

роутер wl-500gpv2 прошивка 10.7 от олега. на 10 тоже пробовал.

Как говорится, телепаты в отпуске... Что за настройки? Что за ошибки?

brv555
23-03-2009, 09:32
Как говорится, телепаты в отпуске... Что за настройки? Что за ошибки?

Объясняю. При данных ниже настройках файрвола не могу создать ссш тунель.
Хотя путти к роутеру цепляется и доступ по ссш есть. а тунель не работает. не могу попасть на http://127.0.0.1:8080 не загружается страница зависает на 0% ошибку не выдает.
Путти настроил правильно.

iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:https

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Если в Chain INPUT (policy поставить ACCEPT) то тунель работает. но файрвол становится дыркой.

Вопрос. как настроить iptables для работы тунеля.
приведите ниже свом настройки файрвола

kozian
23-03-2009, 09:51
Объясняю. При данных ниже настройках файрвола не могу создать ссш тунель.
Хотя путти к роутеру цепляется и доступ по ссш есть. а тунель не работает. не могу попасть на http://127.0.0.1:8080 не загружается страница зависает на 0% ошибку не выдает.
Путти настроил правильно.

iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:https

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Если в Chain INPUT (policy поставить ACCEPT) то тунель работает. но файрвол становится дыркой.

Вопрос. как настроить iptables для работы тунеля.
приведите ниже свом настройки файрвола

Да это-то я понял. Меня интересовали именно настройки путти... А еще хорошо бы "netstat -na | findstr 8080" на твоем компе в этот момент.
Лично я ничего не докручивал ни в iptables, ни даже в ssh сервере.

Единственное ограничение, которое я знаю, сервер должен поддерживать tcp_port_forwarding. Врядли он отключен.

Скорее всего или фаервол локальный, или некорректная настройка путти.

brv555
23-03-2009, 10:04
я сейчас в одну сеть воткнул роутер WAN портом и комп.
Роутеру назначил 192,168,0,52
компу 192,168,0,34

подсоединился по ссш на порт 22 с компа к роутеру, при заполненной вкладке "tunnels" в путти. запустил оперу ввел http://localhost:8080/ - ничего.


C:\Documents and Settings\brv>netstat -na | findstr 8080
TCP 127.0.0.1:4056 127.0.0.1:8080 ESTABLISHED
TCP 127.0.0.1:8080 0.0.0.0:0 LISTENING
TCP 127.0.0.1:8080 127.0.0.1:4056 ESTABLISHED



вкладка "tunnels" в путти:
сняты обе верхние галки (Local ports ACCEPT....., Remote ports do.....)
создан и сохранен тунель L8080 127.0.0.1:80
тоесть как написано на первой странице.

al37919
23-03-2009, 10:05
я думаю поведение законное. В цепочке INPUT явно чего то не хватает.

Режим --- _НЕ_ home gateway? Этими режимами не пользуюсь, так что могу только гадать. Попробуйте записать так. Насчет 4-й строки не уверен (есть ли у вас br0). Покажите вывод ifconfig


iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A INPUT -i br0 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

brv555
23-03-2009, 10:18
я думаю поведение законное. В цепочке INPUT явно чего то не хватает.

Режим --- _НЕ_ home gateway? Этими режимами не пользуюсь, так что могу только гадать. Попробуйте записать так. Насчет 4-й строки не уверен (есть ли у вас br0). Покажите вывод ifconfig


iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A INPUT -i br0 -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

Рабочий день закончился. Я завтра тему подниму - надеюсь вопрос решится. До встречи.

kozian
23-03-2009, 11:09
А при такой настройке ты вообще на роутер зайти можешь?

Если ты указал все из нее, то у тебя открыты на роутер только 22 и 443 порты...

brv555
24-03-2009, 03:40
Ребята, спасибо. разобрался.

superturisto
09-04-2009, 22:11
Спасибо за отличный мануал по SSH тунелям. Но вот столкнулся с такой проблемой при установке SSH на мой 500gPv2 с уже работающим клиентом MPCS у последнего начинаются затыки...

superturisto
15-04-2009, 07:35
Добрый день! С проблемой разобрался? помогла полная переустановка софта роутера с 0.
Вопрос такой все рабоатет пока порт SSH на роутере по умолчанию. Как тольк я его меняю то доступ по SSH остается а вот тунел не поднимается выдет такую ошибку ssh -L 8080:127.0.0.1:80 ***@*******.dynalias.net:23
ssh: *******.dynalias.net:6757: Name or service not known
Подскажите в чем проблема?

igor77777
02-09-2009, 10:39
Пытаюсь подключиться с работы, через прокси, который пропускает наружу 80 и 443 порты.
Дома белый динамический IP.
Настроил DynDNS. Подключаюсь по имени.
Все настроил как в первом посте, а именно:
Source port: 8085
Destination: 127.0.0.1:80
(дома, на 80 порт перенесен lighttpd. Webморда роутера - ушла на 8080)

Host: мойроутер.dyndns.org:443

в iptables прописан проброс внешнего 443 на 192.168.1.1:22

При подключении все нормально.
Я могу лазить по роутеру mc.
При открытии в опере http://localhost:8085 открывается пустая страничка lighttpd. Можно жать обновить - тоже все нормально.
Но как только я пытаюсь открыть http://localhost:8085/rtorrent (Еще раз про rTorrent и web-морду к нему. http://wl500g.info/showthread.php?t=14256) или http://localhost:8085/bandwith (Мониторинг загрузки полосы пропускания и процессора http://wl500g.info/showthread.php?t=20702)
то тутже pytty падает с ошибкой:
Disconnected: Received SSH2_MSG_CHANNEL_FAILURE for half-open channel 258
Что бы это могло быть?

Kalaputsa
23-10-2009, 14:22
До компа своего достучался быстро. На свой комп попадаю через консоль. А вот попасть на рабочий стол Linux не могу :(
Пробывал как сказано по ссылке http://system-administrators.info/?p=1857 но мне выдаёт ошибку при логине на роутер "/usr/X11R6/bin/xauth: not found" при этом пускает на роутер.
Подскажите пожалуйста как попасть на рабочий стол Linux?

vectorm
23-10-2009, 15:13
До компа своего достучался быстро. На свой комп попадаю через консоль. А вот попасть на рабочий стол Linux не могу :(
Пробывал как сказано по ссылке http://system-administrators.info/?p=1857 но мне выдаёт ошибку при логине на роутер "/usr/X11R6/bin/xauth: not found" при этом пускает на роутер.
Подскажите пожалуйста как попасть на рабочий стол Linux?
Ну так разделите порты SSH Линукса и роутера. А то ломитесь на роутер, вот и ошибка.

Kalaputsa
26-10-2009, 05:53
Ну так разделите порты SSH Линукса и роутера. А то ломитесь на роутер, вот и ошибка.

Как разделить?

vectorm
26-10-2009, 09:37
Как разделить?
Перенести порт SSH доступа одного из устройств с дефолтного 22 на любой неиспользуемый. Как - есть в Гугле.

k3r
25-12-2009, 17:04
вопрос такой...
на работе сеть на AD, для выхода в инет используется ISA сервер, на котором, возможно, ведётся лог всех посещённых интернет-адресов и т.п.
Если буду ходить на внешние адреса с помощью ssh туннеля описанного тут, проследить за моей активностью в интернете будет невозможно?

al37919
26-12-2009, 06:57
в логах будет шифрованное соединение с одним хостом. Если сетевая администрация, которая, похоже, интересуется безопасностью, это стерпит, то других проблем быть не должно.

krasaval
27-12-2009, 10:38
вопрос такой...
на работе сеть на AD, для выхода в инет используется ISA сервер, на котором, возможно, ведётся лог всех посещённых интернет-адресов и т.п.
Если буду ходить на внешние адреса с помощью ssh туннеля описанного тут, проследить за моей активностью в интернете будет невозможно?

На ISA может быть запрещена установка SSH-соединений, даже по 80 порту

k3r
05-01-2010, 17:31
всё сделал, всё работает :-)

теперь некоторые моменты, для полного понимания
ситуация:
рабочий комп - роутер - сеть провайдера

1) на роутере делаю ssh сервер, на раб. компе с помощью putty делаю туннель к серверу, т.е. шифруется только участок от раб. компа до роутера, так?

2) На веб-морду роутера из WAN может зайти любой(зная логин и пароль), это из-за запущеного dropbear? Логин и пасс конечно ограничивают, но всё равно как-то ненадёжно, или я параноик?:-) Можно ли как-нибудь ограничить по IP-адресам, например?

al37919
05-01-2010, 17:40
1. да
2. к dropbear эта фича отношения не имеет. Разбирайтесь где вы включили доступ к ней из WAN. Для доступа через туннель достаточно открыть вебморду в LAN

igor77777
14-01-2010, 11:32
На работе выход в инет организован через http-прокси на порту 3128.
С помощью putty я добился результата. Т.е. я имею доступ и к консоли роутера и работает тунель до прокси на моём роутере.
Консоль, мне обычно не нужна, а нужен только тунель, поэтому хочу поднимать тунель с помощью plink.
Но вопрос вот в чём.
Как plink указать, что нужно соединяться через http-прокси на порту 3128 ?

al37919
14-01-2010, 15:03
а где это указывается putty?

Хотя ИМХО консоль не вредит --- статус соединения всегда виден и проверить наличие такового легко.

igor77777
14-01-2010, 20:41
а где это указывается putty?

При запуске чистого putty здесь:
Configuration -> Connection -> Proxy

В моем случае:
Proxy type: HTTP
Proxy hostname: IP_рабочего_прокси
Port: 3128
Username: мой_логин_в_инет
Password: мой_пароль_на_инет

Собственно все прекрасно работает.


На самом деле, я хочу пустить через свой роутер ещё пару товарищей с работы, но давать им доступ в консоль не хочу. Только тунель и все.
Вот и заморочился с plink. А там как-то все не понятно.

al37919
14-01-2010, 21:19
если посмотреть на задачу с другого конца, то можно вместо dropbear поставить полноценный sshd. В нем есть возможность ограничить отдельным юзерам то, что они могут делать на компе --- например запустить одну единственную программу, а может даже и еще проще --- задать юзеру экзотический шелл

igor77777
15-01-2010, 04:55
если посмотреть на задачу с другого конца, то можно вместо dropbear поставить полноценный sshd. В нем есть возможность ограничить отдельным юзерам то, что они могут делать на компе --- например запустить одну единственную программу, а может даже и еще проще --- задать юзеру экзотический шелл
С этого конца (на стороне роутера) задача в общем-то решена.
Решение нашлось здесь, на форуме.
Проблема собственно в putty, точнее даже в plink.
То ли описаны не все параметры, то ли я просто не понимаю, как пользоваться теми, что есть. :-)

PS: Есть, ещё одна идея, поставить программу, которая все обращения plink в инет, будет заворачивать на корпоративный прокси. Но это решение мне не нравится, слишком громоздко.

колбаскин
15-02-2010, 00:23
Как-то я упустил эту тему из вида
По инструкции все настроил - работает
Но есть вопрос по использованию роутера как проксю для подключения например с работы, чтобы выбивал мой внешний ip роутера

Как можно настроить если на 80м порту висит вебсервер?

ЗЫ С доступом в самбу я понял дела не будет, т.к. ssh по tcp , а нужен udp

ale_xb
15-02-2010, 13:21
Я просто уточнить. Squid, который тут имеет место, не просто прокси, но и кеширователь. По роду деятельности, он парсит контент. И хорошо различает HTTP трафик и не HTTP. Так что никакой SSL он не будет пропускать... Был бы открыт HTTPS - было бы много проще, там шифрованый трафик, и его уже не разобрать так просто.
Похоже, у меня именно такой случай. Выход в инет на работе через прокси Squid. На нем открыты порты 22, 80, 8080. На роутере дома (динамический белый IP) все настроил, как указано в первом посте этой темы. Дома могу зайти на роутер по ХХХХ.dyndns.org хоть в веб морды настроек собственно роутера, rTorrent, ADOS, хоть в командную строку с помощью PuTTy. C работы - ничего не получается. Никак не могу установить соединение с роутером по ssh.
Что-то можете посоветовать в этой ситуации?

igor77777
16-02-2010, 07:22
Похоже, у меня именно такой случай. Выход в инет на работе через прокси Squid. На нем открыты порты 22, 80, 8080. На роутере дома (динамический белый IP) все настроил, как указано в первом посте этой темы. Дома могу зайти на роутер по ХХХХ.dyndns.org хоть в веб морды настроек собственно роутера, rTorrent, ADOS, хоть в командную строку с помощью PuTTy. C работы - ничего не получается. Никак не могу установить соединение с роутером по ssh.
Что-то можете посоветовать в этой ситуации?

Проверьте, обновляется ли ваш IP на ХХХХ.dyndns.org. Это нужно делать не изнутри своей локальной сети, а снаружи. Например воспользуйтесь 2ip.ru - он пакажет ip под которым ваш роутер виден в интернете. Он должен совпадать, с тем что Вы видите на страничке DynDNS.
Проверьте, видители Вы свой ХХХХ.dyndns.org с работы. Возвращается-ли и какой Ip для него.
Каким образом предоставляется интернет Вам на работе. Прозрачный это прокси или нет.
Я так понимаю, что на работе, Вы пытаетесь использовать putty, если прокси не прозрачный, то putty нужно указать ip и порт рабочего прокси сервера.
Кстати, А Вы уверены, что на рабочем прокси, открыт 22 порт, и что он открыт на ВСЕ направления?
Далее, а в аську Вы на какой порт подключаетесь. Обычно на корпоративных прокси для этого открывается 443.
Ой, забыл самое главное. А на Вашем роутере открыт какой-нибудь порт наружу? Например, тот же 22?

Кратко:
1. Проверить доступность IP через ХХХХ.dyndns.org.
2. Проверить доступность порта на роутере и на работе;
3. Проверить настройки прокси в putty на работе

колбаскин
16-02-2010, 09:58
Настраиваю по инструкции

в /usr/local/sbin/post-firewall добавил


# set default policy
iptables -P INPUT DROP
# remove last default rule
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT

Но ssh доступен только из внутренней сети роутера
Через интернет на внешний белый ip зайти не могу

al37919
16-02-2010, 10:19
покажите вывод iptables-save

ale_xb
16-02-2010, 11:52
Отвечаю по порядку (http://wl500g.info/showpost.php?p=184341&postcount=90):
Проверьте, обновляется ли ваш IP на ХХХХ.dyndns.org. Это нужно делать не изнутри своей локальной сети, а снаружи. Например воспользуйтесь 2ip.ru - он пакажет ip под которым ваш роутер виден в интернете. Он должен совпадать, с тем что Вы видите на страничке DynDNS.
Да, именно так и проверял, адреса совпадают и обновляются.

Проверьте, видители Вы свой ХХХХ.dyndns.org с работы. Возвращается-ли и какой Ip для него.
Имется ввиду ping? На работе ping на внешние адреса не проходит. Либо это как-то запрещено в принципе, либо ping для этого должен уметь авторизовываться на рабочем прокси. К тому же у меня запрещен ответ на ping в настройках роутера. Пожалуй, на период настроек нужно будет разрешить ping. Сделаю вечером. Что-то у меня самого появились сомнения в доступности моего роутера в интернет.

Каким образом предоставляется интернет Вам на работе. Прозрачный это прокси или нет.
Я так понимаю, что на работе, Вы пытаетесь использовать putty, если прокси не прозрачный, то putty нужно указать ip и порт рабочего прокси сервера.
Непрозрачный - это, значит, требуется авторизация, я верно Вас понял? Я пытался указывать в настройках putty свои логин и пароль для авторизации на прокси. Менял Proxy Type в настройках putty (предполагаю, что верный - HTTP, но пробовал и другие), порт (80/8080). Итог - либо просто висит пустое окно putty (без предложения ввода логина/пароля), либо получаю сообщение - "Proxy error: 405 Method Not Allowed". Может, в настройках putty в поле "Telnet command, or local proxy command" должно быть что-то другое (сейчас: connect %host %port\n)

Кстати, А Вы уверены, что на рабочем прокси, открыт 22 порт, и что он открыт на ВСЕ направления?
Не уверен, что на ВСЕ. Я просто сканировал стандартные порты на рабочем прокси сервере и обнаружил открытыми из LAN 22/80/8080

Далее, а в аську Вы на какой порт подключаетесь. Обычно на корпоративных прокси для этого открывается 443.
Аська (сам не пользуюсь, смотрел настройки у других) коннектится на login чего-то там через 443 порт. К прокси подключается по 80 порту, тип proxy - HTTP(S)
Если у себя в putty для proxy я прописываю аналогичные настройки (полагаю, это правильные настройки), то получаю сообщение "Proxy error: 403 Forbidden"

Ой, забыл самое главное. А на Вашем роутере открыт какой-нибудь порт наружу? Например, тот же 22?
Да, конечно, я его сканировал с сайта DynDNS - открыт.

Кратко:
1. Проверить доступность IP через ХХХХ.dyndns.org. Да
2. Проверить доступность порта на роутере и на работе; Да/какого именно и с какой стороны - LAN, WAN?
3. Проверить настройки прокси в putty на работе. Как будто верные (не уверен только в local proxy command).

колбаскин
16-02-2010, 17:39
покажите вывод iptables-save


[maxya@maxya_wi_fi root]$ iptables-save
# Generated by iptables-save v1.3.8 on Tue Feb 16 18:21:21 2010
*nat
:PREROUTING ACCEPT [2220:201624]
:POSTROUTING ACCEPT [174:25593]
:OUTPUT ACCEPT [514:75525]
:VSERVER - [0:0]
-A PREROUTING -d мой внешник -j VSERVER
-A PREROUTING -d 192.168.31.46 -j VSERVER
-A PREROUTING -d 10.44.22.205 -j VSERVER
-A PREROUTING -d 192.168.31.46 -p udp -m udp --dport 6666 -j DNAT --to-destination 192.168.0.1:411
-A PREROUTING -d 192.168.31.46 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 192.168.0.1:411
-A PREROUTING -d мой внешник -p udp -m udp --dport 6666 -j DNAT --to-destination 192.168.0.1:411
-A PREROUTING -d мой внешник -p tcp -m tcp --dport 6666 -j DNAT --to-destination 192.168.0.1:411
-A POSTROUTING -s ! 10.44.22.205 -o vlan1 -j MASQUERADE
-A POSTROUTING -s ! 10.44.22.205 -o eth1 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -o br0 -j SNAT --to-source 192.168.0.1
-A VSERVER -p tcp -m tcp --dport 4899 -j DNAT --to-destination 192.168.0.2:4899
-A VSERVER -p udp -m udp --dport 4899 -j DNAT --to-destination 192.168.0.2:4899
-A VSERVER -p tcp -m tcp --dport 24 -j DNAT --to-destination 192.168.0.10:21
-A VSERVER -p udp -m udp --dport 24 -j DNAT --to-destination 192.168.0.10:21
-A VSERVER -p tcp -m tcp --dport 26 -j DNAT --to-destination 192.168.0.10:23
-A VSERVER -p udp -m udp --dport 26 -j DNAT --to-destination 192.168.0.10:23
-A VSERVER -p tcp -m tcp --dport 10001 -j DNAT --to-destination 192.168.0.2:10001
-A VSERVER -p udp -m udp --dport 10001 -j DNAT --to-destination 192.168.0.2:10001
-A VSERVER -p tcp -m tcp --dport 10002 -j DNAT --to-destination 192.168.0.3:10002
-A VSERVER -p udp -m udp --dport 10002 -j DNAT --to-destination 192.168.0.3:10002
COMMIT
# Completed on Tue Feb 16 18:21:21 2010
# Generated by iptables-save v1.3.8 on Tue Feb 16 18:21:21 2010
*mangle
:PREROUTING ACCEPT [672528:561308316]
:INPUT ACCEPT [26111:1471065]
:FORWARD ACCEPT [645508:559712810]
:OUTPUT ACCEPT [27706:5002847]
:POSTROUTING ACCEPT [673601:564832826]
COMMIT
# Completed on Tue Feb 16 18:21:21 2010
# Generated by iptables-save v1.3.8 on Tue Feb 16 18:21:21 2010
*filter
:INPUT ACCEPT [1593:253200]
:FORWARD ACCEPT [709:43779]
:OUTPUT ACCEPT [27676:5000615]
:BRUTE - [0:0]
:MACS - [0:0]
:SECURITY - [0:0]
:logaccept - [0:0]
:logdrop - [0:0]
-A INPUT -s 63.241.31.144 -d мой внешник -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p igmp -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -i ! br0 -o eth1 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
-A FORWARD -o br0 -j DROP
-A OUTPUT -s мой внешник -d 63.241.31.144 -j DROP
-A BRUTE -m recent --update --seconds 600 --hitcount 3 --name BRUTE --rsource -j DROP
-A BRUTE -m recent --set --name BRUTE --rsource -j ACCEPT
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j RETURN
-A SECURITY -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j RETURN
-A SECURITY -p udp -m limit --limit 5/sec -j RETURN
-A SECURITY -p icmp -m limit --limit 5/sec -j RETURN
-A SECURITY -j DROP
-A logaccept -m state --state NEW -j LOG --log-prefix "ACCEPT " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logaccept -j ACCEPT
-A logdrop -m state --state NEW -j LOG --log-prefix "DROP " --log-tcp-sequence --log-tcp-options --log-ip-options
-A logdrop -j DROP
COMMIT
# Completed on Tue Feb 16 18:21:21 2010
[maxya@maxya_wi_fi root]$


с внутренней сети все работает
из интернета нет коннекта

igor77777
17-02-2010, 10:29
Отвечаю по порядку (http://wl500g.info/showpost.php?p=184341&postcount=90):

Ой, забыл самое главное. А на Вашем роутере открыт какой-нибудь порт наружу? Например, тот же 22?
Да, конечно, я его сканировал с сайта DynDNS - открыт.



Даже не знаю, что ещё присоветовать.
Попробуйте зайти к себе от кого-нибудь из друзей, у которых интернет точно не чем не обрезан. Если зайдется, то проблему нужно искать в вашем корпоративном прокси или в настройках вашего подключения к нему.

А у Вас в браузере (IE, опера, лис) или в аське прописан адрес и порт корпоративного прокси сервера?
Если прописан, то именно эти параметры нужно указывать в putty в Configuration -> Connection -> Proxy.
Если не прописан, то я думаю, что у вас используется прозрачный прокси.

кстати, если у Вас на работе 22 порт открыт не на все направления, то 8080 наверняка открыт на все. Можно сделать чтобы Вас ssh наружу работал но 8080 порту. Только естественно, настроить защиту от брутфорса, а то ломиться будут все кому не лень. Они и так будут ломиться, стандартные порты 22, 80, 8080 очень популярны.
У меня вообще разрешено подключаться только с одно IP (внешний адрес корпоративного прокси)

ale_xb
17-02-2010, 11:29
Даже не знаю, что ещё присоветовать.
Попробуйте зайти к себе от кого-нибудь из друзей, у которых интернет точно ничем не обрезан. Если зайдется, то проблему нужно искать в вашем корпоративном прокси или в настройках вашего подключения к нему.
Пробовал зайти черех PocketPutty на КПК + GPRS на сотовом, получил сообщение "Что-то там ошибка сокетов". Посчитал, что в PocketPutty что-то неверно работает. На днях попытаюсь от кого-либо из друзей с ББ, как Вы советуете.



А у Вас в браузере (IE, опера, лис) или в аське прописан адрес и порт корпоративного прокси сервера?
Если прописан, то именно эти параметры нужно указывать в putty в Configuration -> Connection -> Proxy.
Да, прописан, и именно эти настройки я вбиваю в putty.



кстати, если у Вас на работе 22 порт открыт не на все направления, то 8080 наверняка открыт на все. Можно сделать чтобы Вас ssh наружу работал но 8080 порту. Только естественно, настроить защиту от брутфорса, а то ломиться будут все кому не лень. Они и так будут ломиться, стандартные порты 22, 80, 8080 очень популярны.
У меня вообще разрешено подключаться только с одно IP (внешний адрес корпоративного прокси)
Спасибо, это тоже попробую. Я склоняюсь к мысли, что по каким-то причинам putty не может меня авторизовать на прокси, отсюда сообщение - Forbidden. Запустил на NetTools.ru утилиту IP Check. Вот, что она выдала:

IP внешний: 195.ххх.ххх.ххх
IP внутренний: 146.ххх.ххх.ххх, 10.ххх.ххх.ххх
прокси: 1.0 proxylanRU:80 (squid/2.5.STABLE9), 1.0 dmzproxy.ххххххх.ru:80 (squid/2.5.STABLE9)

Мой внутренний IP (146...) определился верно. Что такое 10...., proxylanRU и dmzproxy..... я не знаю. Во всяком случае имя рабочего прокси другое, и не одно/один из этих имен/адресов не пингуется во внутреннией сетке.

Может, эта инфо наведет на еще какие умные мысли?

al37919
17-02-2010, 11:48
что то я ни хрена тут не понимаю...

это:


*filter
:INPUT ACCEPT [1593:253200]
при отсутствии этого:

iptables -D INPUT -j DROP
означает, что файрволл на вход на роутер выключен и пропускаться должно все, кроме этого адреса:

-A INPUT -s 63.241.31.144 -d мой внешник -j DROP
т.е. если ничего больше нигде не наворочено, то это не сработало:

iptables -P INPUT DROP
а это сработало:

iptables -D INPUT -j DROP
при этом эта строка не должна оказывать никакого влияния:

-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT

[QUOTE]с внутренней сети все работает
из интернета нет коннекта
из внутренней сити работает согласно этому правилу:

-A INPUT -i br0 -m state --state NEW -j ACCEPT
т.е. из br0 акцептируется все.


а покажите

netstat -na | grep LISTEN
и советую разобраться с:

iptables -P INPUT DROP
может там ошибка какая, спецсимвол невидимый, конец строки неправильный и т.д.

колбаскин
17-02-2010, 12:31
[maxya@maxya_wi_fi root]$ netstat -na | grep LISTEN
tcp 0 0 0.0.0.0:6017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6018 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1026 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 192.168.0.1:9000 0.0.0.0:* LISTEN
tcp 0 0 10.44.22.205:9000 0.0.0.0:* LISTEN
tcp 0 0 192.168.31.46:9000 0.0.0.0:* LISTEN
tcp 0 0 91.195.184.10:9000 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp 0 0 192.168.0.1:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:79 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:411 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 :::8081 :::* LISTEN
tcp 0 0 :::21 :::* LISTEN
tcp 0 0 :::53 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::23 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 1390 /opt/var/dbhub/tmp/dbhub
unix 2 [ ACC ] STREAM LISTENING 1384 /tmp/php-fastcgi.socket-0


Если даю так dropbear -p 24853
То ssh работает на внешний ip 24853 ,но это когда отключаю в вебинтерфейсе и добавляю запуск dropbear в post-boot
работает на любом порту кроме 22, я знаю скажите что сделай любой другой порт и не парься
Но мне интересно выяснить и использовать предусмотренный по умолчанию

al37919
17-02-2010, 13:25
на 22-м порту кто-то уже слушает, причем только по ipv6 :eek:

tcp 0 0 :::22 :::* LISTEN

Можно попытаться понять кто именно так:

netstat -nap | grep LISTEN | grep 22

колбаскин
17-02-2010, 15:33
[maxya@maxya_wi_fi root]$ netstat -na | grep LISTEN | grep 22
tcp 0 0 10.44.22.205:9000 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
[maxya@maxya_wi_fi root]$

al37919
17-02-2010, 16:56
параметр -p ( netstat -nap ) должен показать, какое приложение использует порт

колбаскин
17-02-2010, 17:55
параметр -p ( netstat -nap ) должен показать, какое приложение использует порт

Я пробовал так, но ошибка
поэтому сделал по другому


[maxya@maxya_wi_fi root]$ netstat -nap | grep LISTEN | grep 22
netstat: invalid option -- p
BusyBox v1.15.3 (2010-01-24 20:40:42 MSK) multi-call binary

Usage: netstat [-laentuwxr]

Display networking information

Options:
-l Display listening server sockets
-a Display all sockets (default: connected)
-e Display other/more information
-n Don't resolve names
-t Tcp sockets
-u Udp sockets
-w Raw sockets
-x Unix sockets
-r Display routing table

[maxya@maxya_wi_fi root]$

И я же говорю у меня на роутере две сети, eht1 и vlan1
на внутреннюю сеть и vlan1 ssh работает, а на eth1 нет

al37919
18-02-2010, 20:15
как я уже отмечал выше, dropbear слушает на всех интерфейсах, но только по ipv6, а не по ipv4. Вероятно в одной сети эта фича работает, а в другой нет. А как он запускается? И нет ли каких сообщений в консоли/логе при его ручном запуске после полного убития всех его копий (killall dropbear) с последующей проверкой результата (/bin/ps | grep dropbear). при наличии в данном случае недобитых процессов dropbear полное убитие осуществляется так killall -9 dropbear При этом залогиниться нужно через telnet

колбаскин
19-02-2010, 08:25
dropbear работает на любом порту, кроме 22
Причем не важно как я его запускаю, через веб интерфейс или добавляя в post-boot
Как я уже отметил выше на 22м работает только в вторую сеть на vlan1 и на внутреннюю

al37919
19-02-2010, 09:26
достаточно бесполезно продолжать разговор. Для начала разберитесь что у вас уже слушает на 22-м порту.

tcp 0 0 :::22 :::* LISTEN


dropbear работает на любом порту, кроме 22
Поскольку порт уже занят, то пытаться повесить на него что-то еще бесполезно. Так что результат полностью ожидаемый

колбаскин
19-02-2010, 17:16
Я останавливаю dropbear и снова запускаю, в логе нет ошибки о том что порт занят
И в очередной раз бесполезно повторюсь, что на 22м порту работает ssh но не виден на eth1, во вторую сеть vlan1 и внутреннюю сеть ssh работает

То что вы просили сделать,я сделал и вывел результат
Если нужно сделать что-то еще, скажите что

ale_xb
26-02-2010, 07:58
пытался указывать в настройках putty свои логин и пароль для авторизации на прокси. Менял Proxy Type в настройках putty (предполагаю, что верный - HTTP, но пробовал и другие), порт (80/8080). Итог - либо просто висит пустое окно putty (без предложения ввода логина/пароля), либо получаю сообщение - "Proxy error: 405 Method Not Allowed". Может, в настройках putty в поле "Telnet command, or local proxy command" должно быть что-то другое (сейчас: connect %host %port\n)

Кстати, А Вы уверены, что на рабочем прокси, открыт 22 порт, и что он открыт на ВСЕ направления?
Не уверен, что на ВСЕ. Я просто сканировал стандартные порты на рабочем прокси сервере и обнаружил открытыми из LAN 22/80/8080

Ой, забыл самое главное. А на Вашем роутере открыт какой-нибудь порт наружу? Например, тот же 22?
Да, конечно, я его сканировал с сайта DynDNS - открыт.

Уважаемые форумчане, кто-то поможет с моей проблемкой?

al37919
26-02-2010, 08:14
Кстати, А Вы уверены, что на рабочем прокси, открыт 22 порт, и что он открыт на ВСЕ направления?
Не уверен, что на ВСЕ. Я просто сканировал стандартные порты на рабочем прокси сервере и обнаружил открытыми из LAN 22/80/8080
к сожалению, не имею большого опыта общения с проксями, но на мой взгляд этот результат может означать, что у прокси сервера доступен ssh для его администрирования и не обязательно означает, что он прокидывает 22й порт через себя.

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

колбаскин
26-02-2010, 09:19
Люди и всетаки если я захожу по ssh на роутер
могу ли я использовать роутер как проксю, подключаясь к нему из инета?
на 80м порту роутера стоит вебсервер

al37919
26-02-2010, 11:03
см. первые два поста про SOCKS5 прокси

igor77777
26-02-2010, 15:04
Уважаемые форумчане, кто-то поможет с моей проблемкой?


На днях попытаюсь от кого-либо из друзей с ББ, как Вы советуете.

Вы собирались по-пробовать подключиться к себе с компьютера который подключен к инету напрямую.
Как получилось или нет?

PS: Нужно определиться кто виноват, ваш роутер или прокси на работе.

колбаскин
26-02-2010, 16:02
см. первые два поста про SOCKS5 прокси

Ну я так понял нужно ставить проксю, например squid

igor77777
26-02-2010, 22:22
Ну я так понял нужно ставить проксю, например squid
Да. Нужно.

al37919
26-02-2010, 23:11
если второй пост этой темы осилить не способны, то ставьте squid

igor77777
27-02-2010, 07:20
если второй пост этой темы осилить не способны, то ставьте squid

А объясните теперь мне.
Судя по всему Вы пишите про этот абзац:

Еще один пример из википедии, может кого то наведет на полезную мысль
SSH туннели обеспечивают средство преодоления файрволов, которые запрещают определенные интернет сервисы, при условии, что исходящие соединения на 22-м порту разрешены. Например, многие организации запрещают пользователям доступ к веб-страницам напрямую без предварительного анализа прокси/фильтром. Однако, если юзеры способны подключиться к внешнему ssh серверу, то ssh туннель может быть создан для проброса 80-го порта внешнего веб-сервера на некоторый порт (например 80-й) на локальной машине и, таким образом, иметь доступ к внешнему веб-серверу по адресу http://localhost . В более общем случае, пользователи могут установить собственный прокси сервер (например, squid) дома и создать туннель от рабочего PC до прокси. Далее путем конфигурирования броузера на исползование localhost вместо корпоративного прокси сервера, пользователи могут получить доступ к любой веб странице в обход корпоративного прокси и файрвола.

Я понял, так что только один "внешний" веб-сервер можно видеть по адресу http://localhost Я правильно понял?

Но это же не удобно. А если нужно ходить по нескольким web-серверам?

PS: От себя добавлю. Лично у меня стоит но роутере прокси сервер. Более того, на рабочем компе стоит кеширующий прокси HandyCache, в котором я настроил правила для направления "разрешенных" сайтов через корпоративный прокси, а "не приветствующихся" - через тунель и прокси на роутере.

al37919
27-02-2010, 08:53
Я понял, так что только один "внешний" веб-сервер можно видеть по адресу http://localhost Я правильно понял?
неправильно. у http://localhost доступно 64К портов. Локальный порт не обязан быть равен удаленному. А при использовании динамического тунеля через один порт можно ходить куда угодно, но его использование ограничено прогами, которые поддерживают SOCKS прокси, например firefox.

Если коротко, то ИМХО установление отдельных тунелей удобно для доступа к конкретным сервисам, например SMTP или SSH за роутером или вебморда, а динамический тунель удобен для универсального броузинга как через прокси.

igor77777
01-03-2010, 09:21
al37919

Т.е. можно пробросить через тунель 80 порт роутера на 80 порт рабочего компа. В настройках браузера убрать прокси.
И после этого набрать в адресной строке "yandex.ru".

В итоге трафик до web-сервера и обратно пойдет через тунель и мой роутер?

al37919
01-03-2010, 09:36
al37919

Т.е. можно пробросить через тунель 80 порт роутера на 80 порт рабочего компа. В настройках браузера убрать прокси.
И после этого набрать в адресной строке "yandex.ru".

В итоге трафик до web-сервера и обратно пойдет через тунель и мой роутер?

если пробросить 80й порт роутера на 80й порт рабочего компа, то по адресу http://localhost:80 будет доступна морда роутера или тот сайт, который сидит на роутере на 80м порту в LAN.

если пробросить www.yandex.ru:80 на 81й порт рабочего компа, то по адресу http://localhost:81 будет доступен яндекс через роутер. Впрочем, возможно яндекс --- плохой пример, вследствие того, что одно символьное имя может резолвится в много ip адресов и какие могут быть особенности для доступа к нему через тунель я не в курсе, но принцип остается именно таким. Для яндекса напрашивается динамический туннель и прописывание socks5 прокси в firefox

al37919
01-03-2010, 10:11
добавил во второй пост скриншоты по настройке firefox для его использования через SOCKS5 прокси.

ABATAPA
01-03-2010, 11:22
добавил во второй пост скриншоты по настройке firefox для его использования через SOCKS5 прокси.

По-хорошему, нужно еще и DNS-запросы перенаправить через Socks:
about:config
network.proxy.socks_remote_dns = true

И тогда все работает вообще без DNS в удаленной сети.

PS: А openssh умеет еще и туннель через tun-устройство поднимать, там можно полноценную маршрутизацию сделать..

al37919
01-03-2010, 13:07
спасибо за дополнение --- подкорректировал первые посты

igor77777
01-03-2010, 13:12
добавил во второй пост скриншоты по настройке firefox для его использования через SOCKS5 прокси.

Кажется понял.
В данном случае наш ssh-сервер (dropbear - в роутере) и есть тот самый socks5-прокси. И сделав это:

в putty ставим галку около Dynamic и задаем порт, например, 1080
socks5-прокси становится доступен на "рабочем" компе.

И теперь программы, которые умеют ходить в интернет через socks-прокси можно выпускать через него.
Правильно?

al37919
01-03-2010, 13:14
теперь верно, но учитывая дополнение АВАТАРА в предыдущем посте.

колбаскин
01-03-2010, 20:01
Поставил privoxy (порт 8118) и настроил тунель на динамическом порту 1080
нет соединения с проксей как по адресу localhost 1080 , так и по адресу localhost 8118

Я чуток запутался, нам нужно ставить проксю на роутер?
Подойдет ли privoxy ?
Что я прописываю не так?
Если из внутренней сети задай в мозиле прокси 192.168.0.1:8118 то есть работа

al37919
01-03-2010, 21:28
если использовать privoxy извне, то нужно прокидывать порт 8118 через файрволл и прописывать ее не как localhost:8118, а как внешний IP роутера. Да и обсуждать ее лучше в теме, которая посвящена privoxy.

колбаскин
01-03-2010, 22:12
Все сделал как описано! из внутренней сети вроде подключился
попробую завтра с работы! Спасибо
Я так понял прокси ставить не нужно

igor77777
02-03-2010, 08:18
Я так понял прокси ставить не нужно

Может быть два варианта.
1. Использовать socks5-прокси встроенный в dropbear. Для этого достаточно создать динамический тунель. Так же нужна программа имеющая работать с интернетом через socks-прокси, например FireFox. Чтобы и DNS-запросы ходили через socks-прокси нужно сделать финт описаный АВАТАРА :
about:config
network.proxy.socks_remote_dns = true

Насколько я понял, Опера не умеет работать через socks-прокси. Для оперы и других программ не умееющих использовать socks-прокси можно использовать, например Autosocks, SocksCap, и подобные программы, умеющие перенаправлять обращения программ на socks-прокси. Последнее не проверял.

2. Поставить на роутере прокси сервер (privoxy, squid, ...). Пробросить порт на котором работает прокси в домашней сети, через тунель. Например: прокси на роутере работает на порту 8118, пробрасываем его на порт 8118 на рабочем компе:
Source port: 8118
Destination: 127.0.0.1:8118
Local (*)

т.е. получаем запись: L8118 127.0.0.1:8118

Едиственное, нужно обратить внимание на конфиг privoxy:
у меня там имеется запись вида:

listen-address 127.0.0.1:8118

Если у Вас прокси слушает на 168.0.0.1, то я думаю, можно попробовать поменять в создаваемом тунеле 127.0.0.1 на 168.0.0.1. Я думаю поможет.
Вариант для коммандной строки:

start putty -P <ПортНаКоторомДоступенSSHнаРоутере, например 10022, по умолчанию 22> -v -ssh -l <ИмяПользователя (например Admin, но лучше завести специального)> -pw <ПарольПользователя> -T -N -noagent -L 8118:127.0.0.1:8118 <ИмяИлиIPвашегоРоутера, например VasyaPupkin.dyndns.org>

После этого в браузере можно указать такой прокси: 127.0.0.1:8118

ни чего прокидывать через файрвол не надо. Достаточно открыть порт на котором работает dropbear или пробросить порт, который у доступен через корпоративный прокси, на порт на котором работает dropbear. И не забыть защититься, хотя бы от брутфорсеров. Обсуждалось тут (http://wl500g.info/showthread.php?t=11436)

PS. Ну и моё мнение. Если прокси на роутере не используется, то пожалуй лучше выбрать первый вариант. Ну а если прокси уже установлен и используется для домашней сети, то можно использовать и второй вариант. Т.е. устанавливать прокси-сервер на роутер, только для того, чтобы ходить в инет с работы - смысла нет.

колбаскин
02-03-2010, 09:18
Спасибо, все доступно и понятно
Выбрал первый вариант. На роутере у меня две сети
и теперь с работы через браузер могу ходить в обе
причем в мозилу не пришлось вбивать
about:config
network.proxy.socks_remote_dns = true

Жаль что нельзя через этот тунель попасть в расшаренные диски компьютеров внутренней сети роутера

al37919
02-03-2010, 09:36
эту операцию надо выполнять только если вы не хотите, чтобы ваши dns запросы шли через рабочий dns сервер.

igor77777
02-03-2010, 12:45
Спасибо, все доступно и понятно
Выбрал первый вариант.



Жаль что нельзя через этот тунель попасть в расшаренные диски компьютеров внутренней сети роутера
А что конкретно вы хотите?
С помощью тунеля можно попасть на любой компьютер в вашей домашней сети. Только вместо 127.0.0.1 нужно указать IP нужного компьютера. А дольше зависит от вашей фантазии.

Например, через тот же Radmin можно передавать файлы в оба конца. Или можно ftp-сервер на том компьютере поднять.
Главное, чтобы он был включен.

В общем-то это всё есть в первом и втором сообщении темы.

ale_xb
02-03-2010, 12:55
Вы собирались по-пробовать подключиться к себе с компьютера который подключен к инету напрямую.
Как получилось или нет?

PS: Нужно определиться кто виноват, ваш роутер или прокси на работе.
Увы, этой возможности все никак не представится, посему пока пробую другие варианты. Хотя, конечно, Вы правы, нужно прежде всего определиться в проблемной точке.
Что касается
...к сожалению, не имею большого опыта общения с проксями, но на мой взгляд этот результат может означать, что у прокси сервера доступен ssh для его администрирования и не обязательно означает, что он прокидывает 22й порт через себя.

Эту гипотезу достаточно легко проверить --- попробуйте залогиниться на прокси по ssh --- если получите подсказку для имени, то с высокой степенью вероятности так оно и есть, если только там не организован доступ по ключам.
Я пробовал подключиться с помощью putty к рабочему прокси из внутренней рабочей сетки. Действительно получил приглашение на ввод логина/пароля. Т.к. запросы по 80 порту наружу точно проходят, можно ли в таком случае использовать его? Достаточно ли для этого запускать мне на роутере dropbear с прослушиванием 80 порта вместо 22 по умолчанию? Разумеется, предварительно освободив этот порт от других приложений (у меня сейчас на нем - lighttpd c ADOS, rTorrent, VNSTAT). Встроенные в прошивку web-сервер сразу перевел на 8080 порт.

igor77777
02-03-2010, 13:04
колбаскин
Сейчас прошелся поиском.
Пишут, что через соксификатор (FreeCap, и т.п.) можно пустить и RAdmin, и Download Master, и uTorrent, и всё что душе угодно.
Сам не проверял.
Так что, за что купил, за то продаю.

Попробуйте, напишите о результатах.

al37919
02-03-2010, 13:14
Т.к. запросы по 80 порту наружу точно проходят, можно ли в таком случае использовать его? Достаточно ли для этого запускать мне на роутере dropbear с прослушиванием 80 порта вместо 22 по умолчанию? Разумеется, предварительно освободив этот порт от других приложений (у меня сейчас на нем - lighttpd c ADOS, rTorrent, VNSTAT). Встроенные в прошивку web-сервер сразу перевел на 8080 порт.
что-то в этом роде можно пытаться реализовать. Если конечно там стоит тупой проброс порта, а не анализатор трафика.

igor77777
02-03-2010, 13:25
Т.к. запросы по 80 порту наружу точно проходят, можно ли в таком случае использовать его? Достаточно ли для этого запускать мне на роутере dropbear с прослушиванием 80 порта вместо 22 по умолчанию? Разумеется, предварительно освободив этот порт от других приложений (у меня сейчас на нем - lighttpd c ADOS, rTorrent, VNSTAT). Встроенные в прошивку web-сервер сразу перевел на 8080 порт.

я думаю можно и 80, но лучше какой-нибудь другой.
А у вас точно https сайты не открываются?
Если открываются, то по идее должен быть открыт 443 порт.

Ну а если остается только 80, то я бы не перевешивал dropbear на 80 порт, а прокинул внешний 80 на внутренний 22.
Посмотрите тут (http://wl500g.info/showthread.php?t=11436)
В частности мои сообщения в той теме. Только я прокидываю 443 на 22.
И ещё. Поскольку я подключаюсь только с работы. А на работе внешний IP статический, то прокидываю подключения только с рабочего IP.
Таким образом, у меня наружу открыт только один порт и то для подключений с одного IP. Если будет вопросы по прокидыванию портов и защите - задавайте их в той теме.

колбаскин
02-03-2010, 19:53
igor77777 Проблем нет! если хочу Socks проксю, то создаю туннель с динамическим портом
Если нужен радмин или еще что-то во внутренней сети роутера, то создаю статические туннели на определенный ip

За шару папок имел ввиду зайти по \\192.168.0.9 в шару компьютера внутренней сети роутера, но уже написали что там нужно что-то по udp

andr128
13-03-2010, 17:41
Извините может не совсем в тему.
Не могу зайти на роутер через SSH без пароля.
Задача - хочу зайти на роутер без пароля с DM800 и выполнить скрипт на роутере. На DM800 есть клиент SSH с помощью которого я пытаюсь зайти на DIR320. В дальнейшем я хочу создать скрипт на дриме, при вызове которого дрим заходил бы на роутер через SSH и вызывал бы исполнение скрипта на роутере.
типа такого:


ssh admin@192.168.1.1 myscript


Мои попытки:
При первом запуске был запрос

Host '192.168.1.1' is not in the trusted hosts file.
(fingerprint md5 75:2a:3a:ee:76:c8:8e:8a:9c:65:e1:cd:45:62:54:73)
Do you want to continue connecting? (y/n)
в дальнейшем все равно требовал пароль


*****************************
* http://www.newnigma2.to *
*****************************
* the next step is done *
*****************************
OpenDreambox 1.5.0 dm800

dm800 login: root
root@dm800:~# ssh
Dropbear client v0.48
Usage: ssh [options] [user@]host
Options are:
-p <remoteport>
-l <username>
-t Allocate a pty
-T Don't allocate a pty
-i <identityfile> (multiple allowed)
-L <listenport:remotehost:remoteport> Local port forwarding
-g Allow remote hosts to connect to forwarded ports
-R <listenport:remotehost:remoteport> Remote port forwarding
root@dm800:~# ssh admin@192.168.1.1

Password:
[admin@myrouter root]$



По утверждению все должно работать при 1024 битовом ключе

-------------------------------------------------------------------------
P.S. Проверил работу ssh из стандартной прошивки WL500gp-1.9.2.7-10. В самом деле, если генерировать ключи длиной 1024 бита, то автоматическая авторизация без пароля проходит без проблем.

dropbearkey -t rsa -f dropbear_key -s 1024
Да и запуск в открепленном режиме с ключом -N тоже работает. Поэтому если не нужно отслеживание реального наличия связи через туннель, то можно обойтись и без установки пакета autossh.
Я заменил ключи, предварительно улалив старые:


dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key -s 1024
dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key -s 1024

но к сожалению не чего не выходит, все равно требует пароля.

Пробовал копировать эти ключи в Дрим и подставлять через опцию i

ssh -i /etc/dropdear/dropbear_rsa_host_key admin@192.168.1.1

Но все равно не получается зайти без пароля.

Подскажите в каком направлении двигаться.

andr128
15-03-2010, 09:55
добился все таки входа без пароля на роутер
1. На Дриме сделал dropbearkey -t rsa -f private.key > authorized_keys
затем из authorized_keys удалил первую и третью строку чтобы осталась только строка которая начинается на ssh-rsa
2. Создал на роутере директорию /tmp/local/root/.ssh
3. Скопировал получившийся authorized_keys в директорию /tmp/local/root/.ssh/authorized_keys
4. Сохранил все во флэш и перезагрузился.

Все теперь с DM800 можно зайти на роутер без пароля:


root@dm800:~# ssh -i private.key admin@192.168.1.1
[admin@myrouter root]$


Все бы хорошо но при попытке запустить на роутере скрипт:

root@dm800:~# ssh -i private.key admin@192.168.1.1 ez-setup
sh: ez-setup: not found
root@dm800:~#


Соответственно если просто зайти без передачи параметра имени скрипта, то все запускается без проблем. Также проходят внутр. команды типа: ls, ps..

Если явно указать путь к скрипту то вроде все проходит, но скрипт тоже состоит из команд и выполнение заканчивается крахом:


root@dm800:~# ssh -i private.key admin@192.168.1.1 /tmp/local/sbin/ez-setup
/tmp/local/sbin/ez-setup: line 3: switch-st: not found
root@dm800:~#

Вопрос. Как добиться чтобы скрипт запускался?
Помогите пожалуйста куда копать.
:confused:

ABATAPA
15-03-2010, 11:22
root@dm800:~# ssh -i private.key admin@192.168.1.1 /tmp/local/sbin/ez-setup
/tmp/local/sbin/ez-setup: line 3: switch-st: not found
root@dm800:~#

Вопрос. Как добиться чтобы скрипт запускался?
Помогите пожалуйста куда копать.
:confused:

Запускать с полным путем, как Вы и показали выше.
Чтобы программы находились, нужно или установить переменную PATH в /etc/profile (или других profile, например, ~/.profile), или внутри скрипта в первых же строках установить переменную PATH:

export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

andr128
15-03-2010, 12:47
Запускать с полным путем, как Вы и показали выше.
Чтобы программы находились, нужно или установить переменную PATH в /etc/profile (или других profile, например, ~/.profile), или внутри скрипта в первых же строках установить переменную PATH:

export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

АВАТАРА Спасибо огромное! :)
переменная PATH в /etc/profile есть, но не срабатывает.
Зато сработал 2 вариант когда я установил PATH в самом скрипте.
Не удобно конечно в каждом скрипте ставить переменную во внутрь, но для моего случая пойдет.

А нашел выход, УРА!!!


ssh -i private.key admin@192.168.1.1 /etc/profile; mc

здесь сначала подключаются переменные окружения и через ; выполняется скрипт который уже находится без указания пути.

ABATAPA
15-03-2010, 13:04
переменная PATH в /etc/profile есть, но не срабатывает.
Зато сработал 2 вариант когда я установил PATH в самом скрипте.
Не удобно конечно в каждом скрипте ставить переменную во внутрь, но для моего случая пойдет.

Ох... Сколько можно... Есть же документация - зачем собирать информацию по крохам методом тыка?!
man bash:


when bash is invoked as an interactive login shell, or as a non-interactive shell
with the --login option, it first reads and executes commands from the file
/etc/profile, if that file exists. After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and exe‐
cutes commands from the first one that exists and is readable. The --noprofile
option may be used when the shell is started to inhibit this behavior.


И далее:



if bash is invoked with the name sh, it tries to mimic the startup behavior of his‐
torical versions of sh as closely as possible, while conforming to the POSIX stan‐
dard as well. When invoked as an interactive login shell, or a non-interactive
shell with the --login option, it first attempts to read and execute commands from
/etc/profile and ~/.profile, in that order. The --noprofile option may be used to
inhibit this behavior. When invoked as an interactive shell with the name sh, bash
looks for the variable ENV, expands its value if it is defined, and uses the
expanded value as the name of a file to read and execute.



Сравните:

ssh -i private.key admin@192.168.1.1 /bin/sh -c set
и
ssh -i private.key admin@192.168.1.1 /bin/sh --login -c set

andr128
15-03-2010, 15:44
Уважаемый АВАТАРА я конечно понимаю Вас. У Вас большой опыт и практика в Линуксе и мои потуги могут вызвать недоумение, может даже раздражение. Но поймите и меня, я только начал осваивать эту ОС благодаря роутеру, который купил сначала лишь для того чтобы подключить к нему USB модем и использовать для "дачного интернета". Я восхищен этой маленькой железкой, сколько возможности и жизни в ней благодаря труду энтузиастов этого форума. Мне конечно не хватает знаний я стараюсь больше читать и искать сам, чем спрашивать. Но иногда захожу в тупик и вынужден обратится за помощью.

С уважение, Андрей.

al37919
15-03-2010, 16:00
маловероятно, чтобы это

ssh -i private.key admin@192.168.1.1 /etc/profile; mc
могло давать какой-либо эффект, т.к. /etc/profile не является исполняемым файлом.

хоть какая то польза могла бы быть если этот файл не выполнять, а сорсить:

ssh -i private.key admin@192.168.1.1 . /etc/profile; mc

А вообще АВАТАРА в последнем посте написал две хорошие комманды, вывод которых было бы любопытно сравнить.

ABATAPA
15-03-2010, 16:53
Уважаемый АВАТАРА я конечно понимаю Вас. У Вас большой опыт и практика в Линуксе и мои потуги могут вызвать недоумение, может даже раздражение. Но поймите и меня...

Не воспринимайте это как раздражение. :)
Это даже не досада, а оборот, вызванный показать мое несогласие. :)

Читайте больше документации. Пользуйтесь поиском.
Скажем, выяснить - когда sh использует profile, не сложно - поиск в Google выдаст в первых же строках. Для всех команд есть полная документация. В "больших", неурезанных дистрибутивах посмотреть помощь можно многими путями, но как минимум один из них - 'man команда'.
Но если нет "большого" Linux - не беда, поиск никто не отменял.

andr128
15-03-2010, 18:44
маловероятно, чтобы это

ssh -i private.key admin@192.168.1.1 /etc/profile; mc
могло давать какой-либо эффект, т.к. /etc/profile не является исполняемым файлом.

хоть какая то польза могла бы быть если этот файл не выполнять, а сорсить:

ssh -i private.key admin@192.168.1.1 . /etc/profile; mc

А вообще АВАТАРА в последнем посте написал две хорошие комманды, вывод которых было бы любопытно сравнить.

Да, да я поспешил с выводами mc запустился на дриме, а не на роутере.

По поводу команд от АВАТАРы вот:


root@dm800:~# ssh -i private.key admin@192.168.1.1 /bin/sh -c set
HOME='/usr/local/root'
IFS='
'
LOGNAME='admin'
PATH='/usr/bin:/bin'
PPID='1419'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/tmp/local/root'
SHELL='/bin/sh'
USER='admin'


и вот:


root@dm800:~# ssh -i private.key admin@192.168.1.1 /bin/sh --login -c set
HOME='/usr/local/root'
IFS='
'
LOGNAME='admin'
PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='1422'
PS1='[\u@\h \W]$ '
PS2='> '
PS4='+ '
PWD='/tmp/local/root'
SHELL='/bin/sh'
TERMINFO='/opt/share/terminfo'
USER='admin'

я правда не понял как применить это к моей задаче.
p.s.
А вообще-то я озаботился задачей запуска с пульта дрима скрипта, который в свою очередь запускал бы скрипт на роутере, переключающий интернет на резервный канал - USB модем и наоборот.

ABATAPA
15-03-2010, 18:58
я правда не понял как применить это к моей задаче

Что Вам не понятно?!
Разницу в самих двух командах видите? А результат?
Если совсем уж все грустно, то - hint:
добавьте опцию --login к sh, и на "удаленной" стороне /etc/profile будет выполняться, следовательно, PATH будет установлен.
Если и этого мало, то:
ssh -i private.key admin@192.168.1.1 /bin/sh --login -c /tmp/local/sbin/ez-setup

andr128
15-03-2010, 19:57
Уважаемый АВАТАРА Вы просто молодец! Все заработало!
Огромнейшая благодарность!
Я чувствую что где-то рядом, но не мог понять как вызывать
срабатывает теперь даже без указания пути:
ssh -i private.key admin@192.168.1.1 /bin/sh --login -c ez-setup

ktech
17-03-2010, 13:07
Добрый день, друзья.
Впервые наверное воспользуюсь помощью, а не поиском, т.к. 5 дней поиска не помогли. Задачка интересная, частично решённая. Осталось найти занозу.
Схема:

[HomePC1]--------[NAT]------[wl500g, sshD, ROUTER_PUBLIC_IP]-{internet}--[NAT]--[WorkPC1]

[HomePC2, PC2_PUBLIC IP]____/

Задача:
обеспечить доступ к RDP [WorkPC1] из дома [HomePC1] или из командировок [HomePC2].

Сейчас сделано и работает: доступ из [WorkPC1] до [wl500g] по ssh, по web, socks 5 proxy.

Теперь что касается попыток организовать запрашиваемый туннель.
Чтобы легче было проверять, попробуем параллельно пробрость telnet порт.Пробую создать туннель и пробросить локальные порты 23 и 3389 [WorkPC1] до [wl500g]:
Source port R6003, dest:127.0.0.1:23
Source port R6004, dest:127.0.0.1:3389

Результат:
доступ по telnet из [wl500g] (telnet localhost 6003) до [WorkPC1] РАБОТАЕТ;
доступ по telnet из [HomePC1] или из [HomePC2] (telnet ROUTER_PUBLIC_IP 6003 ) до [WorkPC1] НЕ РАБОТАЕТ;
правила по открытию порта в iptables добавлены:
iptables -A INPUT -p tcp --syn --dport 6003 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 6004 -j ACCEPT.

Пляски с бубном продолжаются пятый день.

Прошу помощи.

ABATAPA
17-03-2010, 14:44
[HomePC1]--------[NAT]------[wl500g, sshD, ROUTER_PUBLIC_IP]-{internet}--[NAT]--[WorkPC1]

[HomePC2, PC2_PUBLIC IP]____/

Задача:
обеспечить доступ к RDP [WorkPC1] из дома [HomePC1] или из командировок [HomePC2].


WorkPC1 устанавливает ssh-туннель на wl500g на внешний адрес ip_wl500g_ext:
ssh -f -N имя@ip_wl500g_ext -R ip_wl500g_int:port:ip_RDP:port

На удаленной стороне (wl500g) на внутреннем (важно!) адресе ip_wl500g_int слушается порт port, и трафик пробрасывается на внутренний адрес машины с RDP (WorkPC1) ip_RDP на порт port на другой стороне.

С машины HomePC1 Вы подключаетесь к ip_wl500g_int:port.
С HomePC2 Вам нужно "пробросить" "прямой" туннель до wl500g:

ssh -f -N имя@ip_wl500g_ext -L 127.0.0.1:port:ip_wl500g_int:port

и, опять же, подключаться через него - на 127.0.0.1:port

Ключ "-f" - для отладки, он не дает ssh становиться демоном, и заставляет работать на "переднем крае" (foreground), что позволяет легко его прервать нажатием Ctrl-C.

Надеюсь, все понятно? ;) Все элементарно. :-D

TReX
18-03-2010, 00:15
Забавная тема, тунель применяется в классике для связи двух приватных сетей через паблик, зачем городить этот огород для доступа к домашнему компьютеру (обычно одному-двум) непонятно, для этого удобнее криптосоединение точка-точка, тогда можно и с телефона например ходить на домашний компьютер и без разницы win или *nix ) И не надо с собой иметь софт/железо для создания второго конца тунеля...

ABATAPA
18-03-2010, 07:57
Забавная тема, тунель применяется в классике для связи двух приватных сетей через паблик, зачем городить этот огород для доступа к домашнему компьютеру (обычно одному-двум) непонятно, для этого удобнее криптосоединение точка-точка, тогда можно и с телефона например ходить на домашний компьютер и без разницы win или *nix ) И не надо с собой иметь софт/железо для создания второго конца тунеля...


Прекратите оффтопить. Название темы видели? Нет? Внимательнее смотрите!
"Использование ssh-тунелей для безопасного доступа к ресурсам LAN".
Так что бред свой несите в другой теме. И там, заодно, объясните, чем мифическое "криптосоединение" отличается от описанного, и как собираетесь построить "удобнее криптосоединение точка-точка" между компьютерами, каждый из которых находится за NAT, без использования третьей стороны.

ktech
18-03-2010, 12:47
WorkPC1 устанавливает ssh-туннель на wl500g на внешний адрес ip_wl500g_ext:
ssh -f -N имя@ip_wl500g_ext -R ip_wl500g_int:port:ip_RDP:port

С машины HomePC1 Вы подключаетесь к ip_wl500g_int:port.
С HomePC2 Вам нужно "пробросить" "прямой" туннель до wl500g:

ssh -f -N имя@ip_wl500g_ext -L 127.0.0.1:port:ip_wl500g_int:port

и, опять же, подключаться через него - на 127.0.0.1:port



Спасибо, действительно поднялось, только надо было в обоих случаях указывать в качестве ip_wl500g_int 127.0.0.1. Попытка указать 192.168.0.1 не дала результатов.

Вот тогда ещё два вопроса-следствия.
1. Телнет прекрасно пробросился. А вот при попытке подключить RDP или RADMIN, компьютер [workPC1] (winxp) уходит в ребут. Может ли присутствие туннеля так влиять на протоколы RDP, RADMIN? Кто-то на практике использовал SSH-туннель для организации RDP?
2. Создал SSH-туннель с динамическим портом для функции прокси. Хватает минут на 30 работы в браузере. Потом страницы еле грузятся. Словно туннель использует некий кэш, ресурсы которого забиваются до очередной перезагрузки туннеля. Есть решение?
3. Подскажите самый удобный способ поддержания туннеля ( он отваливается каждые 40 минут)

ABATAPA
18-03-2010, 13:10
Спасибо, действительно поднялось, только надо было в обоих случаях указывать в качестве ip_wl500g_int 127.0.0.1. Попытка указать 192.168.0.1 не дала результатов.

Скажите, оверквотинг в сообщении необходим? Удалите лишнее, пожалуйста.

Это детали, зависит от того, как и что у Вас сделано, в частности - от правил firewall.



А вот при попытке подключить RDP или RADMIN, компьютер [workPC1] (winxp) уходит в ребут. Может ли присутствие туннеля так влиять на протоколы RDP, RADMIN?

Ошибки программы - это ошибки программы. Может быть, неверно обрабатываются подключения с loopbak-адреса.



Кто-то на практике использовал SSH-туннель для организации RDP?

Разумеется.




2. Создал SSH-туннель с динамическим портом для функции прокси. Хватает минут на 30 работы в браузере. Потом страницы еле грузятся. Словно туннель использует некий кэш, ресурсы которого забиваются до очередной перезагрузки туннеля. Есть решение?

Есть. И, вероятно, не в туннеле. Никакой "кэш", разумеется, им не используется. Возможно, не хватает числа отслеживаемых соединений (conntrack). Так же нужно, чтобы браузер закрывал соединения (не плодил все новых). В FF все работает, тонкие настройки - в about:config.



3. Подскажите самый удобный способ поддержания туннеля ( он отваливается каждые 40 минут)
Настроить timeout на сервере и клиенте. Там же разрешить и настроить KeepAlive.
Иногда неактивные TCP-сессии рвутся провайдером (чтобы не росли таблицы NAT, например, есть и другие причины), причем, иногда критерием служит крайне низкий (но не полное отсутствие!) трафик в течение длительного времени. Тут уже только один выход - гонять трафик.

xz_kostyan
25-03-2010, 22:16
Кто-нибудь монтировал директории по nfs с помощью ssh туннелей?
Столкнулся со следующей проблемой: dropbear при попытке смонтировать папку удаленно отжирает CPU и память в свопе.

Сделал:
На роутере:
1) перевесил mountd на порт 32767.
2) в /etc/exports: /opt/share/music 192.168.1.1/24(ro,async) 127.0.0.1(ro,async,insecure)
3) exportfs -ra

На клиенте:
1) в /etc/fstab: 127.0.0.1:/opt/share/music /mnt/1 nfs ro,hard,intr,port=250,mountport=251 0 0
2) Поднимаю туннели

sudo ssh -p 12221 admin@192.168.1.1 -L 250:127.0.0.1:2049 -f sleep 60m
sudo ssh -p 12221 admin@192.168.1.1 -L 251:127.0.0.1:32767 -f sleep 60m

+2 процесса появляются на роутере.

Даю команду: sudo mount /mnt/1 -vvv


mount: fstab path: "/etc/fstab"
mount: mtab path: "/etc/mtab"
mount: lock path: "/etc/mtab~"
mount: temp path: "/etc/mtab.tmp"
mount: UID: 0
mount: eUID: 0
mount: spec: "127.0.0.1:/opt/share/music"
mount: node: "/mnt/1"
mount: types: "nfs"
mount: opts: "rw,hard,intr,port=250,mountport=251"
mount: external mount: argv[0] = "/sbin/mount.nfs"
mount: external mount: argv[1] = "127.0.0.1:/opt/share/music"
mount: external mount: argv[2] = "/mnt/1"
mount: external mount: argv[3] = "-v"
mount: external mount: argv[4] = "-o"
mount: external mount: argv[5] = "rw,hard,intr,port=250,mountport=251"
mount.nfs: timeout set for Thu Mar 25 23:47:17 2010
mount.nfs: text-based options: 'hard,intr,port=250,mountport=251,addr=127.0.0.1'

В терминал откуда поднимал туннели сыпятся ошибки:


channel 3: open failed: connect failed:
channel 3: open failed: connect failed:
....

При этом проявляются симптомы описанные в самом начале поста.
Гугление по ошибке ни к чему продуктивному не привело. Кто-нибудь сталкивался с подобным?

Vitaly_k
24-07-2010, 20:45
Помогите разобраться с проброской удаленного порта. Клиентом выступает другой роутер Асус, даю комманду:

ssh -R 8088:127.0.0.1:80 admin@name.dyndns.org

Насколько я понимаю, после этого по адресу http://name.dyndns.org:8088 я должен увидеть веб-морду роутера-клиента. Не соединяется.
Но если сделать telnet localhost 8088 в терминале роутера-сервера, то коннект идет, а telnet name.dyndns.org 8088 уже не проходит.
Насколько я понимаю, удаленный порт открывается и слушает соединения, но только на интерфейсе localhost, на WAN это порт закрыт.
У меня две версии - либо мешает файрвол, либо dropbear принимающий SSH-туннель отрывает порт только на одном интерфейсе.

Пробовал проковырять дыру в файрволе:
iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
Не помогло.

Пробовал играться параметрами dpopbear - (-a -Allow connections to forwarded ports from any host) результата тоже не дало. Есть ли решение?

IrWert
27-07-2010, 12:14
А если написать
ssh -R 8088:192.168.1.1:80 admin@name.dyndns.org
что получается?

Vitaly_k
27-07-2010, 12:55
А если написать
ssh -R 8088:192.168.1.1:80 admin@name.dyndns.org
что получается?

Нет, не получится.
На самом деле, источники проблем найдены:
1. dropbear-сервер нужно запускать с парамтром "-а", а по умолчанию, если разрешен запуск из веб-интерфейса, то этого параметра там нет. А без него порт отрывается только на интерфейсе 127.0.0.1 и практической пользы от этого нет.
2. ssh-клиент идущий в прошивке не понимает в команде -R параметр с адресом интерфейса, на котором открыть порт. Решение - использовать ssh из пакета openssh (ставиться при установке autossh) и указывать порт в таком формате: -R *:8088:127.0.0.1:80

Vitaly_k
28-07-2010, 22:03
Загадка с запуском autossh.
В post-boot добавлен код согласно инструкции:

export AUTOSSH_PATH="/opt/bin/ssh"
export AUTOSSH_PORT="3333"
export AUTOSSH_GATETIME="0"
autossh user@ssh_host -i your_private_ssh_key_file_name -N sh_port_forwarding_option

После загрузки в процессах autossh нет, форвард портов не работает.
Если залогиниться и запустить тот же код руками, то все замечательно работает. Пробовал задавать параметр AUTOSSH_LOGFILE - при запуске из post-boot лог пустой. Сам post-boot стартует, другие команды отрабатывают.
/opt на роутере смотрирован на внутреннюю флеш - mount -o bind /tmp/local/opt /opt

igor77777
29-07-2010, 07:12
...
/opt на роутере смотрирован на внутреннюю флеш - mount -o bind /tmp/local/opt /opt

В каком скрипте происходит монтирование?

igor77777
29-07-2010, 07:17
Загадка с запуском autossh.
В post-boot добавлен код согласно инструкции:

export AUTOSSH_PATH="/opt/bin/ssh"
export AUTOSSH_PORT="3333"
export AUTOSSH_GATETIME="0"
autossh user@ssh_host -i your_private_ssh_key_file_name -N sh_port_forwarding_option



А вообще, лучше перепишите все пути не от смонтированного /opt, а от /tmp/local
в том числе укажите полный путь к autossh, причём тоже от /tmp/local

Vitaly_k
31-07-2010, 20:52
А вообще, лучше перепишите все пути не от смонтированного /opt, а от /tmp/local
в том числе укажите полный путь к autossh, причём тоже от /tmp/local

Все получилось, спасибо!
Но источник проблем остался непонятен. Монтирование /opt было сделано из post-boot, потом sleep 10 и запуск autossh. Как делать правильнее?

Dayran
15-11-2010, 16:41
Использую на работе интернет вышеуказанным способом), недавно появилась необходимость в белом ипе. На роутере естественно он белый, но вот как настроить проброску порта с роутера на комп с которого я подключаюсь по ssh? Какой ип указывать в виртуал сервер?

user13
25-11-2010, 11:08
дома стоит WL500gp с прошивкой от Олега.
хочу с работы через туннель ssh сидеть в интернете.
Т.е. работа->ssh->домашний WL500gp->интернет

на WL500gp поставил ssh и нормально захожу на него с работы через putty, т.е. доступ есть.
если через терминал использовать команду wget - вроде тоже все работает.

Но как только я через рабочий бровзер пытаюсь открыть какой-то сайт, putty подвисает (т.е. в терминальное окошко не могу ничего ввести, хотя до этого все работало прекрасно), страницы не открываются.

в логих putty такая инфа (хотя при работающем туннели тоже самое):
2010-11-25 13:18:57 Opening forwarded connection to 64.121.215.914:80
2010-11-25 13:18:57 Forwarded port closed

попробовал потестить, взял на пробу хостинг с ssh и попробовал ходить через сервер для хостинга - все работает прекрасно. Получается проблема в WL500gp?

в чем может быть проблема? куда копать?

ps: дома в локалке инет есть (по обычной схеме, через ssh не успел проверить - убежал на работу)
pss: в линуксе полный даун :(

igor77777
25-11-2010, 11:25
дома стоит WL500gp с прошивкой от Олега.
хочу с работы через туннель ssh сидеть в интернете.
Т.е. работа->ssh->домашний WL500gp->интернет

на WL500gp поставил ssh и нормально захожу на него с работы через putty, т.е. доступ есть.
если через терминал использовать команду wget - вроде тоже все работает.

Но как только я через рабочий бровзер пытаюсь открыть какой-то сайт, putty подвисает (т.е. в терминальное окошко не могу ничего ввести, хотя до этого все работало прекрасно), страницы не открываются.

в логих putty такая инфа (хотя при работающем туннели тоже самое):
2010-11-25 13:18:57 Opening forwarded connection to 64.121.215.914:80
2010-11-25 13:18:57 Forwarded port closed

попробовал потестить, взял на пробу хостинг с ssh и попробовал ходить через сервер для хостинга - все работает прекрасно. Получается проблема в WL500gp?

в чем может быть проблема? куда копать?

ps: дома в локалке инет есть (по обычной схеме, через ssh не успел проверить - убежал на работу)
pss: в линуксе полный даун :(



64.121.215.914:80
А что это за адрес?

Как настраиваете браузер?
И какой браузер?

user13
25-11-2010, 12:04
А что это за адрес?

Как настраиваете браузер?
И какой браузер?

какой адрес - не важно. от балды набил когда писал :) с домашним wl500gp не работают все сайты.
браузер тоже не важно. настраивал как написано тут:
http://blog.buttewifi.com/?p=64

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

с сторонним сервером все работатет, с домашним wl500gp не работает.

Basile
25-11-2010, 12:54
на WL500gp поставил ssh

а встроенного dropbear'а не хватает? Через него и PuTTY прекрасно работает socks5

igor77777
25-11-2010, 13:39
какой адрес - не важно. от балды набил когда писал :) с домашним wl500gp не работают все сайты.
браузер тоже не важно. настраивал как написано тут:
http://blog.buttewifi.com/?p=64

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

с сторонним сервером все работатет, с домашним wl500gp не работает.

Ну не знаю.
Я сейчас пишу через стандарный dropbear.
У меня работает.
Как настраивать, есть в этой теме и даже есть картинки.

Про браузер спросил, потому как вроде только firefox умеет через socks5, остальным нужен прокси-сервер.

А вообще странный подход. Вы спросили что:

в чем может быть проблема? куда копать?
Я попросил дополнительную информацию.
Вы почему-то считаете, эту информацию не существенной :-(

user13
25-11-2010, 14:11
Ну не знаю.
Я сейчас пишу через стандарный dropbear.
У меня работает.
Как настраивать, есть в этой теме и даже есть картинки.

Про браузер спросил, потому как вроде только firefox умеет через socks5, остальным нужен прокси-сервер.

Вы почему-то считаете, эту информацию не существенной :-(

прошу прощения, если был чрезмерно груб :(

говоря про ssh я и имел ввиду стандартный dropbear :)
настраивал по инструкции именно из этой темы.
браузеры вроде как все могут работать (уж не знаю socks5 или socks4), сейчас я пишу через хром и тунель ssh на хостинг сервере.

может нужно какие-то дополнительные порты открыть, правила прописать или еще что-то?

user13
25-11-2010, 14:37
спасибо, что натолкнули на мысли.
расклад такой.

1. если подключаться только через мозиллу (socks5) - все работает замечательно.

2. у хрома стоит расширение Switchy! Options, которая позволяет устанавливать работу через socks5. при попытке зайти через хром - putty виснет - если хожу через wl500gp. если через сторонний сервер ssh - все работает прекрасно.

3. если сказать qip ходить через socks5 - та же история. через хостинг сервер работает, через домашний роутер - виснет putty.

ИТОГО: получается, что по схеме "рабочий комп -> ssh -> домашний роутер wl500pg->inet" работает только мозилла. остальные проги вешают putty (во всяком случае перестает работать ввод с клавиатуры, хотя логи putty идут как до подвисания).
если использовать сторонний сервис ssh - все остальные прогри работают прекрасно.

не подскажете из-за чего может быть такая ситуация c моим wl500pg :confused:

ps: попробовал использовать plink.exe. с тем же успехом - с моим роутером работает только firefox. со сторонним сервером работают все программы.

igor77777
25-11-2010, 19:48
прошу прощения, если был чрезмерно груб :(

Ну я не пустом месте задавал уточняющие вопросы.
Ну это так, лирическое отступление.

По Вашей проблеме.
Ну даже не знаю.
drobbear из прошивки вроде всё же, урезан. Может поэтому не работает.

Могу предложить такие варианты.
1. Попробовать поставить openssh. Может поможет, но тут я Вам не советчик.

2. Поставить на роутер прокси-сервер. В этом случае можно прокинуть тунель с рабочего компьютера на порт прокси-сервера в роутере. В браузере, в качестве прокси указать localhost и порт на рабочем компьютере.

Лично я пользуюсь вторым вариантом и меня он устраивает на 100%.
В качестве прокси использую 3proxy, но есть и другие прокси-серверы работающие на нашем роутере.

Sitron
22-01-2011, 13:30
Подскажиет, можно ли как-нибудь в dropbear создать несколько логинов, один ограниченный без права что-либо редактировать в роутере?

Pablo Escobar
22-01-2011, 13:44
Подскажиет, можно ли как-нибудь в dropbear создать несколько логинов, один ограниченный без права что-либо редактировать в роутере?

dropbear просто смотрит, правильные логин/пароль пришли или нет.

ilsergej
30-03-2011, 08:10
Искал по форуму ответ, не нашел..если что не так не ругайте..так это первое мое сообщение.
После переустановки прошивки WL500gpv2-1.9.2.7-d-r2624.trx не могу зайти на роутер по SSH. При попытке подключения получаю ошибку server's host key did not match the signature supplied. Проблема не в виндовой машине..так реестр чистил, подключаться с другого компа пробовал результат тот же. Я так понимаю что что то произошло с ключами на хосте..либо их там нету либо они запорчены. Кто может помочь по этому вопросу. Либо если ответа нету, подскажите как привести роутер в первоначальное состояние после покупки..обнуляющую прошивку пробовал..но данные остаются.

al37919
30-03-2011, 09:59
ключи хранятся на роутере в файле ~/.ssh/known_hosts

Следует залогиниться на роутер через телнет и удалить в этом файле соответствующую строку, либо использовать putty в качестве ssh клиента --- она ругнется, но зайдет.

Однако, если ключи действительно повреждены, то их имеет смысл перегенерить:


rm -r /usr/local/etc/dropbear
mkdir -p /usr/local/etc/dropbear
dropbearkey -t dss -f /usr/local/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /usr/local/etc/dropbear/dropbear_rsa_host_key

В конце, естественно, сохранить результат

flashfs save && flashfs enable && flashfs commit && reboot

ilsergej
30-03-2011, 10:13
Большое спасибо, попробую так сделать. Ключи скорей всего запорчены, так как я пользуюсь именно putty. До перепрошивки проблем с этим не было.
Если не поможет как сделать сброс в к заводским настройкам без закорачивания ног микросхемы ?
Помогут ли команды

erase /dev/mtd/3
erase /dev/mtd/4
reboot
или нужен другой способ ?

al37919
30-03-2011, 11:17
для возвращения в исходное состояние следует сбросить в дефолт nvram и очистить flashfs. Первое делается либо кнопкой на заду роутера, либо из вебморды, для второго:

flashfs clear

ilsergej
31-03-2011, 08:12
Спасибо..надеюсь у меня все получится :)

Вобщем перегенерировал ключи, сохранил..после этого перезагрузился и все заработало. Еще раз большое спасибо :)

mark-kraevskijj
04-04-2011, 09:05
всем здравия!
(немного предисловия)
однажды решили ( в связи с 5 компами в доме) приобрести раздатчик на n-e количество устройств. в итоге в германии присмотрел Длинк 615, но к этому времени в России объявился отец и сказал что уже приобрел устройство на класс ниже - так был приобретен DIR-320. дальнейшая история неизвестна, но в итоге он был перепрошит на работе (не мной) на альтернативную прошивку. и я получил ДЛИНК с прошивкой под WL500gpv2.
отстроив по всем запретам мира (каковых я не знал) он заработал. по слухам понял, что на него можно возгрузить все что угодно и начал пробовать: FTP, torrent ect. ничего не поучилось, ну с этим ладно.

с недавних пор я стал задумываться об управлении роутером, исключая Web интерфейс. сначала попробовал telnet, но он был небезопасен, да и знал я только одну комманду (reboot)

а сейчас решился
перешить роутер под: 1) DDWRT 2)более новый (незнаю насколько новый 1.9.2.7-d-r740)
и администрировать под SSH и сразу встаюст вопросы:
1) как можно получить логи через этот протокол? как можно блокировать доступ к определенному адресу на опр срок? как разблокировать?
2) что неможет в отличии от wl500gp? некоторые комманды не выполняются =( все делаю как в http://ru.wikibooks.org/wiki/Настройка_роутера_WL500g_Premium

meskalyto
10-04-2011, 14:22
Роутер WL500gP

За ним находится сервер с убунтой на борту. Очень хочется на него попадать из мира по SSH.

Провайдер дает динамический IP.

На dyndns заведена учетка, получен адрес, прописан в роутере.

А вот как дальше проброс сделать не могу сообразить.

Помогите пожалуйста :confused:

al37919
10-04-2011, 14:25
то что вам надо в вебморде называется virtual server

meskalyto
10-04-2011, 14:46
то что вам надо в вебморде называется virtual server

для этого нужно устанавливать прошивку отличную от заводской ?

Pablo Escobar
10-04-2011, 14:55
для этого нужно устанавливать прошивку отличную от заводской ?

тут заводскую видят один раз - перед перепрошивкой. поэтому такие вопросы - на оф. сайт.
на прошивке энтузиастов это возможно.

KOCTET
10-04-2011, 15:28
прошивку брать отсюда ?

http://wl500g.info/showthread.php?t=2704
Нет, отсюда:
http://wl500g.info/showthread.php?t=17136

meskalyto
10-04-2011, 15:56
Нет, отсюда:
http://wl500g.info/showthread.php?t=17136

спасибо за наводку, а то поставил сначала не ту. тут действительно есть SSH ^^

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

meskalyto
10-04-2011, 16:30
прошивка установлена, SSH активирован. Как теперь заставить приходящий из мира ssh трафик перенаправлять на сервер за роутером ?

DemonGloom
10-04-2011, 16:38
прошивка установлена, SSH активирован. Как теперь заставить приходящий из мира ssh трафик перенаправлять на сервер за роутером ?

Есть два метода.. Простой и сложный..
1) Можно коннектиться к роутеру, и в нем через консоль давать ssh по внутреннему адресу сервера..
2) Поискать все-таки про virtual server, как вам было уже сказано..

KOCTET
10-04-2011, 16:47
прошивка установлена, SSH активирован. Как теперь заставить приходящий из мира ssh трафик перенаправлять на сервер за роутером ?
Если воспользоваться поиском, то быстро находишь тему с красноречивым названием:
http://wl500g.info/showthread.php?t=12833

andr128
10-04-2011, 16:49
Плюс еще адрес должен быть "белый" пусть даже динамический :rolleyes:

meskalyto
10-04-2011, 20:02
Спасибо всем за наводки.

Основная проблема была в том, что я привык в меню старой заводской прошивки и в упор не видел Virtual Server, который находится в NAT Setting. Я уже приготовился лезть в консоль и бить маршруты там, но все оказалось намного проще.

В пункте меню вебморды были вбиты пробросы нужных мне портов:

Port Range | Local IP | Local Port
8082 | 192.168.1.4 | 22
... | ... | ...


В итоге я с внешней сети могу через vncviewer попадать на мой домашний сервер, который находится за роутером.

Dayran
26-04-2011, 13:36
А как можно настроить проброску портов с роутера на комп, который подключен к роутеру через ssh-тунель.

Lore
26-04-2011, 14:18
Помогите разобраться, плиз...

Несколько лет благополучно пользовался динамическим туннелем на WL500gP(v1), а затем и на RT-N16 (всё настроено по инструкции из первых постов данного топика).
Пару недель назад сменил работу и с нового ноутбука попытался зайти в свою домашнюю сеть (на ноуте настроил Putty и в настройках Firefox указал прокси/socks5). Однако, при вводе любого url (например, www.ya.ru) мгновенно выскакивает надпись "Готово" при абсолютно пустой странице. Т.е. ни ругани, ни видимых проблем. Просто не грузятся страницы и всё.
Перепробовал всё что знал. В том числе и локально с "большого брата". Эффект тот же.

Роутер: RT-N16
Прошивка: RT-N16-1.9.2.7-rtn-r2902 (пробовал и на 2895 и 2899 - всё тоже самое)
Mozilla 3.6.16
Антивирусы/брэндмауэры отключал для чистоты эксперимента - без успеха.

Подскажите, плиз, в чем может быть проблема? Куда копать?

ndvikulov
17-05-2011, 20:07
Прошивка от энтузиастов последняя стабильная + скрипт для чайников. Настроено dyndns на роутере. Создаю туннель с помощью putty и при использовании страницы не открываются. Открываются как бы абсолютно пустые страницы. Причем видно, что туннель работает, т. к. при выключении туннеля (настройки прокси оставляются), браузер говорит Сервер не найден. Всё по стандарту настроено. В putty динамический порт. Изначально руководствовался статьей: http://habrahabr.ru/blogs/internet/116214/
В чем может быть проблема?

З. Ы. в dd-wrt работало.

ryzhov_al
17-05-2011, 20:48
Руководствоваться и зажмурившись повторять описанные в той статье действия - разные вещи.

SSH-соединение вы подняли, SSH-портфорвардинг настроили, в браузере прописали прокси-сервером localhost с указанным портом. Всё ровно так и работает:
Открываются как бы абсолютно пустые страницы. Причем видно, что туннель работает, т. к. при выключении туннеля (настройки прокси оставляются), браузер говорит Сервер не найден.
То есть браузер посылает запрос через putty, который, в свою очередь, доставляет его via SSH на роутер. На этом месте путь IP-пакета заканчивается, так как на роутере по указанному в destination port порту этот пакет никто не ждёт. Устанавливайте на роутере прокси-сервер, "слушающий" тот порт, который указан как destination port в настройках ssh-туннеля в putty.


З. Ы. в dd-wrt работало.
Нечистой силы не бывает:)

ndvikulov
17-05-2011, 21:32
Устанавливайте на роутере прокси-сервер, "слушающий" тот порт, который указан как destination port в настройках ssh-туннеля в putty.

Извините, но как это сделать? В этом топике (http://wl500g.info/showthread.php?t=12833) про прокси на роутере тоже ничего нет:(

Без destination port не обойтись вообще? в топике на хабре его пустым оставляли.

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

Ident
17-05-2011, 21:44
Давно стоит WL500g.Premium (первый) с родной прошивкой и никаких вопросов к работе роутера нет.

На некоторых внешних ресурсах введена фильтрация по ip адресу, но одновременно с этим, доступ к ним надо получать из любой точки Интернета. Вначале рассматривал вариант установки ssh сервера на компьютере в сети за роутером и использовании туннелирования. Но потом вспомнил, что в Asus уже стоит linux, поэтому простая переброска трафика может быть выполнена вообще прямо на нём. Нашёл эту тему, но возникло несколько вопросов:

1) Какая прошивка лучше, если требуется лишь NAT для локальной сети + ssh туннелирование?

2) Тема создавалась в 2008 году и предлагалось использовать dropbear. Что-нибудь изменилось за три года? Может быть есть более эффективное решение?

3) Потянет ли стандартный роутер одновременно десяток-два ssh туннелей (ssh клиент из внешнего мира, туннель на адресом во внешнем мире)? Не будет ли проблем с потерей пакетов, раздачей Интернета во внутреннюю сеть и т.п.? Какое может быть падение пропускной способности?

ryzhov_al
18-05-2011, 06:23
Извините, но как это сделать?
Необходимо установить tinyproxy/3proxy/polipo/squid или любой другой прокси-сервер на роутер. Как именно - смотрите в профильных темах.


Как я понимаю, надо порт открыть на роутере, Нет! Одного открытого ssh-порта достаточно.

но почему нельзя через порт ssh всё передавать?
Потому, что передача данных через туннель ssh - это пересылка ip-пакетов по стандарту RFC4254, Section 7 (http://www.apps.ietf.org/rfc/rfc4254.html#sec-7), где речь идёт о сетевом уровне (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D 1%8B_%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B3%D0 %BE_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F) OSI, а передача данных via proxy - это RFC2616, Section 8.1.3 (http://www.ietf.org/rfc/rfc2616), где речь идёт о более высоком прикладном уровне (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D 1%8B_%D0%BF%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0 %BD%D0%BE%D0%B3%D0%BE_%D1%83%D1%80%D0%BE%D0%B2%D0% BD%D1%8F) OSI.

Грубо говоря, если машина едет, то она не обязательно должна оказывать услуги такси.

A1ex
18-05-2011, 09:08
З. Ы. в dd-wrt работало.

и в rtn работает. А прокся в файрфоксе как на картинке в той статье настроена? Дело скорей всего в этом. Должна быть заполнена только строчка Узел SOCKS , все остальные строки должны быть пусты.
з.ы. и конечно никакого прокси сервера на роутер устанавливать при этом не нужно

Lore
19-05-2011, 07:21
и в rtn работает. А прокся в файрфоксе как на картинке в той статье настроена? Дело скорей всего в этом. Должна быть заполнена только строчка Узел SOCKS , все остальные строки должны быть пусты.
з.ы. и конечно никакого прокси сервера на роутер устанавливать при этом не нужно

Вот спасибо! А я-то забабахался искать в чем проблема, а всего-то надо было пустыми остальные поля в ффоксе оставить.

Подтверждаю, всё отлично работает :)

Sashunya
19-05-2011, 12:17
Еще не забудьте в лисе поставить network.proxy.socks_remote_dns в true. Чтобы имена брала тоже с туннеля.

andreyk
11-06-2011, 17:07
Здравствуйте, друзья!

Есть wl500gp с прошивкой 1.9.2.7-rtn-r2972. Хочу маунтить удаленные хосты через sshfs. Модуль fuse, как я понял, в ядре есть. Где взять собственно sshfs?

$ ipkg list_installed | grep ssh
openssh - 5.8p2-1
openssh-sftp-server - 5.8p2-1

Briz
09-07-2011, 18:33
У меня получилось настроить всё по мануалу из первого поста. Соединяюсь с DIR-320 у себя в локальной сети. Вопросы:
1. Как можно проверить есть ли шифрование передаваемых данных?
2. Как настроить PuTTY на автоматическое соединение? Ярлык вида
"C:\Program Files\PuTTY\putty.exe" -P 22 -v -ssh -l логин -pw пароль -T -N -noagent -D 1080:127.0.0.1:80 192.168.1.1 приводил к соединению, но таже ICQ не подрубалась (а при работе с интерфейсом PuTTY - да).
3. Минус такого прокси - не работает URL Filter из Internet Firewall (в web-морде). Возможно ли исправить сие положение дел?
4. Всё, что обычно прописано в "C:\wINDOWS\system32\drivers\etc\hosts" теперь обращается к роутеру! Я думаю это не совсем правильно.

rockbomber
19-01-2012, 09:17
Всем привет!
Захотелось мне на работе устроить доступ к внутреннему jabber серверу из вне. Чтобы можно было в нем сидеть и отвечать на сообщения с телефона из любого места, а не только с рабочего ПК. Я не админ, доступа к jabber серверу не имею. По-этому решил сделать так.
Дома есть WNR3500L с прошивкой 1.9.2.7-rtn-r3696M от Vampik с белым IP и SSH доступом из WAN.
Все ПК и сервера на работе за NAT, по-этому я соединяюсь по SSH с установкой тоннеля через putty.
http://dl.dropbox.com/u/35601640/putty.jpg
192.168.0.5:5222 - адрес рабочего jabber сервера.
4321 - порт, на котором становится доступен jabber сервер на роутере.
Галочка "Remote ports do the same" - на сколько я понял, аналог ключа -g, делает на роутере этот порт доступным со всех хостов, а не только с localhost.
Ок. Но тут то и загвоздка. Jabber сервер откликается только по localhost, а с LAN и WAN молчит.

На предыдущей странице Vitaly_k описал похожую ситуацию (http://wl500g.info/showpost.php?p=205060&postcount=174), и написал, что решением является запуск dropbear с ключем -a.

Теперь, собственно, вопросы:
Все ли я делаю правильно, для осуществления замысла? :D
Если да, то как можно изменить запуск dropbear, чтобы он запускался с нужным параметром?
На форуме описываются способы установки dropbear с нуля, когда его запуск указывается в /usr/local/sbin/post_boot. Но что делать, если dropbear уже был прошивке? Директории /usr/local/sbin даже нету.
Нашел скрипт /usr/sbin/dropbearstart, в конце которого идут строчки dropbear "$@" и exit $?.
dropbear "$@" - как я понял и запускает ssh сервер.
Правильно ли я понимаю, что, мне надо дописать к этой строке ключ -a (dropbear -a "$@"), и выполнить flashfs save && flashfs commit && flashfs enable && reboot ?
Так же глянул файл /sbin/init. Там есть строчки dropbear и dropbearstart, но, насколько понял, его руками лучше не редактировать, т.к. он бинарный, а не скрипт.

rockbomber
19-01-2012, 10:07
Копнул глубже в поиск и нашел, что нужно отключить ssh server в web интерфейсе, и настроить его запуск вручную с нужными ключами, как тут, в четвертом пункте: http://wl500g.info/showpost.php?p=19984&postcount=2
Т.е. надо лишь создать /usr/local/sbin/post-boot, вписать в него "#!/bin/sh" и "dropbear -a > /dev/null 2>&1", дать атрибут на исполнение и flashfs save &&
flashfs commit && flashfs enable && reboot. И всё. Кажись, ни где не накосячил? :rolleyes:

Или накосячил? Будет ли доступен по WAN ssh сервер, после отключения его в web морде и проделывания выше упомянутых действий? Ведь через web интерфейс мы где-то указываем, что сделать доступным ssh по WAN. Не отключиться ли это правило, при отключении ssh в web интерфейсе, и надо будет прописывать правило вручную в post-boot?

Ещё косяк нашел, если мы выключим ssh server в web морде, но наверняка он будет после этого запускаться на стандартном порту. Так что в файл post-boot пишем "dropbear -p 5190 -a > /dev/null 2>&1".
А все потому, что на работе блокируют все порты, кроме веб-асечно-джабберных. Это и позволяет нам наслаждаться полноценным безлимитным интернетом, вместо того, чтобы работу делать :D А если все прокатит и с пробросом jabber сервера, то и за рабочим местом будет сидеть не обязательно ;)

rockbomber
19-01-2012, 17:03
Так, добрался до дома, где уже смело стал ковырять роутер, не боясь остаться без инета на работе :)
Многое я предположил верно. Надо отключть ssh в web интерфейсе, создать исполняемый /usr/local/sbin/post-boot, вписать в него "#!/bin/sh" и "dropbear -a > /dev/null 2>&1".
Кроме того, как я боялся, туда же надо вписать "iptables -I INPUT -p tcp --dport 5190 -j ACCEPT" для доступа к ssh по WAN, а так же "iptables -I INPUT -p tcp --dport 4321 -j ACCEPT", чтобы jabber сервер тоже по WAN был доступен.
С мобилки заходит, все Ок. Т.е. основное, что надо сделать, это запускать dropbear с ключем -a, и открыть порт.

Проблемой осталась отвалившаяся защита ssh от брутфорс атак. С мобилки сначала по ssh зашел, потом добавил в pre-boot "insmod ipt_recent" и в post-firewall "iptables -t nat -I PREROUTING -i ! br0 -p tcp -m state --state NEW --dport 22 -m recent --set --name SSH_ATTACKER --rsource
iptables -I INPUT -i ! br0 -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 600 --hitcount 3 --name SSH_ATTACKER --rsource -j DROP". После этого с мобилки по ssh заходить перестал. Правила эти убрал, но все-равно с мобилки по ssh не заходит. Возможно виноват мобильный инет. Но это уже тема другого топика.

Осталось завтра на работе настроить и запустить MyEnTunnel для создания постоянного туннеля, и гулять :D

rockbomber
19-01-2012, 17:41
Прошивка 1.9.2.7-rtn-r3696M.
Если в System Setup -> Services -> Enable SSH access: установлен в No,
в Internet Firewall -> Enable Brute Force Protection for SSH Server: установлен в Yes,
а dropbear при этом запускается из post-boot, то нужно ли дополнительно включать защиту, как описано тут http://wl500g.info/showpost.php?p=55173&postcount=50 ?

rockbomber
20-01-2012, 06:03
В общем, да. Косяк ещё нашел. Правила для открытия портов вписывать надо не в post-boot, а в post-firewall. Благо, нашел способ, как это поправить с работы.
С мобилки теперь в корпоративный jabber заходит.
Теперь осталось внутреннюю телефонию перенаправлять на sip или skype (придется познать asterisk) и можно вообще дома сидеть :D
Хотя коллеги подсказывают, что не плохо бы еще хакнуть систему управления турникетами на проходной, чтобы регистрироваться, как будто через них проходил)

Ну и остались непонятки с защитой ssh от брутфорса, т.к. я в iptables вообще не разбираюсь.

don-pedro
20-01-2012, 12:38
Ну и остались непонятки с защитой ssh от брутфорса, т.к. я в iptables вообще не разбираюсь.
Либо оставить галку в вебинтерфейсе и успокоиться, либо почитать про iptables (например, http://www.opennet.ru/docs/RUS/iptables/ ) и сделать http://wl500g.info/showpost.php?p=55173&postcount=50

rockbomber
20-01-2012, 17:01
Либо оставить галку в вебинтерфейсе и успокоиться, либо почитать про iptables (например, http://www.opennet.ru/docs/RUS/iptables/ ) и сделать http://wl500g.info/showpost.php?p=55173&postcount=50

Спасибо! Про iptables обязательно почитаю. Пока оставлю только галку в web интерфейсе.

Так же пробросил и порт для RDP. Но он работает как-то некорректно, просит залогиниться, а после входа появляется черный экран, который висит некоторое время, и соединение закрывается с ошибкой.
http://dl.dropbox.com/u/35601640/error.jpg
Через поиск нашел аналогичную проблему у людей, которые использовали сервер FreeSSH, после смены которого на OpenSSH, у них все работало.

rockbomber
23-01-2012, 10:50
Ну и, хоть это будет и не по теме, опишу, как сделать так, чтобы заработал RDP, и поднимался SSH туннель как служба на Windows 2008 R2.
Для запуска SSh туннеля удобно использовать MyEnTunnel, версия 3.4.2.1 которого может устанавливаться в качестве службы Windows. Но что бы он заработал, нужно сделать 2 шага:
1. После инсталляции службы , заходим в управление службами, находим там MyEntunnel, и в его свойствах на вкладке "LogOn" ("Вход в систему") снимаем галочку "Allow service to interact with desktop" ("Разрешить взаимодействие с рабочим столом").
2. С помощью PyTTY хотя бы раз зайти на ваш SSH сервер и принять Host Key. После этого в реестре скопировать этот ключ из HKEY_CURRENT_USERS\Software\SimonTatham\PuTTY\SshH ostKeys в HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\Ssh HostKeys.
Все, настраиваем параметры туннеля через Edit Service Profile INI, и он будет подниматься автоматически при включении ПК.
(Решение было найдено тут: nemesis2.qx.net/forums/index.php?topic=57.0 )

А для работы RDP нужно сделать лиш одну вещь: в "Администрирование" -> "Службы удаленных рабочих столов" -> "Конфигурация узла удаленных рабочих столов" снимаем галочку с "Ограничить всех пользователей одиночными сеансами".
(Решение с картинками нашел вот тут: www.joe0.com/2011/11/04/fix-for-remote-desktop-connection-through-ssh-tunnel-stuck-in-welcome-screen/ )

Коннект с вашим рабочим местом у вас дома обеспечен, даже если злой провайдер на работе посадил вас за NAT :D

sokov
10-04-2012, 20:13
Здравствуйте!

С помощью роутера организовал локальную сеть. Провайдер завёл в квартиру Ethernet, предоставил фиксированный IP-шник. Настроил Port Forwarding для доступа извне к одному из компов через RDP. Сейчас нахожусь ВНЕ дома. Какие-то настройки роутера сбились (возможно, что-то с DHCP), не могу достучаться до удалённого компа, проверить и поправить. Вопрос: роутер предоставляет свой веб-интерфейс "вовне"? Есть ли ещё какие-нибудь возможности его поконфигурить - Telnet и пр.?

m0rtis
11-04-2012, 06:44
Предоставляет, если эту возможность включить в настройках. Какая прошивка стоит? И, собственно, какое устройство? У тебя скорее всего проблема в том, что порты-то ты пробросил, но вот соответствие MAC-адреса компа, которым необходимо управлять, и IP-адреса, на который роутер пробрасывает порт, не установил.
Кстати, вследствие маразма у меня вообще все такие сервисы не видны напрямую извне. Я повесил дропбир на нестандартный порт, открыл его в настройках файервола, а все остальное закрыл напрочь. Ну и с помощью SSH-туннелей пробрасываю необходимые порты уже непосрелственно в SSH-клиенте. Так, у меня со смартфона на андроиде доступен и расшаренный самбой жесткий диск, и комп для работы через RDP. Преимущества в том, что мне не надо пробрасывать в настройках роутера тучи портов, а достаточно настроить клиент в зависимости от необходимости. Ну и плюс шифрованный по AES туннель тоже не помешает!:))

sokov
11-04-2012, 10:19
Понял, рассказываю сначала.

Был роутер ASUS WL-500gp v2, работал у меня года 3. Прошивка была актуальная на тот момент, все настройки пучком. Но тут он неожиданно сдох. Я так понимаю, что дело может быть не в самом роутере, а в блоке питания. Но не важно. Суть в том, что на выходных я купил такой же. Однако перепрошить и восстановить настройки я не успел, поскольку надо было уезжать. Короче, "поднял" на стандартной прошивке и с минимумом конфигурации.


Предоставляет, если эту возможность включить в настройках.

Как???


У тебя скорее всего проблема в том, что порты-то ты пробросил, но вот соответствие MAC-адреса компа, которым необходимо управлять, и IP-адреса, на который роутер пробрасывает порт, не установил.

Верно. Когда настраивал, не смог установить фиксированный IP для MAC-адреса компа. Вернее, настройку эту он сохраняет, но при раздаче не учитывает. Мне кажется, это глюк стандартной прошивки. Проброску порта сдела на тот IP, который роутер раздал компу на тот момент. Но видимо, произошла пере-раздача, и мои запросы извне уходят вникуда.

Вот собственно и вопрос: можно ли пробраться к настройкам извне?


Я повесил дропбир на нестандартный порт, открыл его в настройках файервола, а все остальное закрыл напрочь. Ну и с помощью SSH-туннелей пробрасываю необходимые порты уже непосрелственно в SSH-клиенте. Так, у меня со смартфона на андроиде доступен и расшаренный самбой жесткий диск, и комп для работы через RDP. Преимущества в том, что мне не надо пробрасывать в настройках роутера тучи портов, а достаточно настроить клиент в зависимости от необходимости. Ну и плюс шифрованный по AES туннель тоже не помешает!:))

Здесь я почти ничего не понял. Очень много незнакомых слов...

m0rtis
11-04-2012, 14:10
Как???

Если прошивка стандартная, то я, честно говоря, не помню. Можно посмотреть на официальном форуме Асуса. Но настройка наверняка должна быть. У меня даже в древнем Зухеле Р-330 такая была. А для него, ясное дело, никто кастомных прошивок не делал:)


Верно. Когда настраивал, не смог установить фиксированный IP для MAC-адреса компа. Вернее, настройку эту он сохраняет, но при раздаче не учитывает. Мне кажется, это глюк стандартной прошивки. Проброску порта сдела на тот IP, который роутер раздал компу на тот момент. Но видимо, произошла пере-раздача, и мои запросы извне уходят вникуда.


Я думаю, просто надо было отконнектить комп и приконнектить снова. DHCP бы выдал правильный IP. Ну или ребут роутера.


Вот собственно и вопрос: можно ли пробраться к настройкам извне?

Если по внешнему IP веб-морда не отвечает, то без вмешательства изнутри, думаю, никак. Можно так же попробовать войти с помощью telnet или ssh. Вдруг что-то из этого включено по умолчанию. Если получится, то может помочь получить доступ к веб-морде команда

iptables -I INPUT -p tcp --dport 80 -j ACCEPT


Здесь я почти ничего не понял. Очень много незнакомых слов... .
Если кратко, то это выглядит так:
- настройками фаервола на доступ извне закрыты все порты, кроме одного (ну ладно, кроме двух, еще порт для торрент-клиента:)
- в настройках сервера SSH (называется dropbear) я указал порт из диапазона >1024, собственно это и есть один из открытых изве портов
- с помощью клиента типа Putty (для Windows) или ConnectBot (для Android) я подключаюсь к SSH-серверу и вхожу в систему.
- в настройках клиента указываю порты служб, которые необходимо пробросить (например, для удаленного доступа к расшаренному ресурсу нужен порт 139), либо динамический порт для использования с SOCKS-прокси.
- далее я подсоединяюсь любым нужным мне клиентом (будь то RDP, файлменеджер, браузер и т.д.) к IP 127.0.0.1 и указываю соответствующий порт. Вуаля! Имеем доступ к нужным сервисам по защищенному каналу.

Последний два пункта подробно описаны в первом сообщении данной темы, да и в теме вообще всё освещено очень подробно и понятно.

greed
13-04-2012, 19:01
приветствую!

имеется wl500gp + WL500gp-1.9.2.7-rtn-r4051
сгенерировал public+private keys
но не могу зайти через kitty - ошибка Disconnected: No support authentication methods available (server sent: publickey)
подскажите, пож-та, в чем может быть дело...
http://s019.radikal.ru/i603/1204/b5/932b048c4ce3t.jpg (http://radikal.ru/F/s019.radikal.ru/i603/1204/b5/932b048c4ce3.png.html)
http://i073.radikal.ru/1204/6d/d864b2b45282t.jpg (http://radikal.ru/F/i073.radikal.ru/1204/6d/d864b2b45282.png.html)
http://s019.radikal.ru/i636/1204/35/295d1cdf6b72t.jpg (http://radikal.ru/F/s019.radikal.ru/i636/1204/35/295d1cdf6b72.png.html)

zerg
05-06-2012, 08:30
Привет
У меня wl500gp. Я только что установили прошивка 1.9.2.7-RTN-r4051.
Через веб включен SSH и остановил FTP, Telnet, UPnP. Для тестирования firewall я пытался войти через WAN с SSH, и это было успешно. Я просмотрел порта с простой сканер, и это показывает, как порт 22 открыт. Это странно, поскольку я не позволил SSH извне. Я только что создал файлы в /usr /local/sbin, но все файлы пустые.(post-firewall, etc...)

Можете ли вы помочь мне понять, почему firewall позволяет SSH и показывает порт открыт. В моем понимании это должны быть закрыты от глобальной сети.
Вот те параметры firewall как показано на "Status & Log - Diagnostic Information" - я ничего не менял, и это должно быть по умолчанию


IP Tables
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
9 360 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
547 49666 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
320 28917 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 ctstate NEW
0 0 ACCEPT 2 -- * * 0.0.0.0/0 224.0.0.0/4
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.0/4 udp dpt:!1900
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:67 dpt:68
3 156 BRUTE tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 flags:0x17/0x02
454 47038 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 249 packets, 17722 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0
7 280 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.0/4
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DROP all -- !br0 vlan1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate DNAT
0 0 DROP all -- * br0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 937 packets, 696K bytes)
pkts bytes target prot opt in out source destination

Chain BRUTE (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 600 hit_count: 5 name: BRUTE side: source
3 156 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: BRUTE side: source

Chain MACS (0 references)
pkts bytes target prot opt in out source destination

Chain SECURITY (0 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 1/sec burst 5
0 0 RETURN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
0 0 RETURN udp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 RETURN icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 5/sec burst 5
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

Chain UPNP (0 references)
pkts bytes target prot opt in out source destination

Chain logaccept (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW LOG flags 39 level 4 prefix `ACCEPT '
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW LOG flags 39 level 4 prefix `DROP '
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0

--------------------------------------------------------------------------------
IP Tables NAT
Chain PREROUTING (policy ACCEPT 719 packets, 73857 bytes)
pkts bytes target prot opt in out source destination
206 25457 VSERVER all -- * * 0.0.0.0/0 192.168.11.2

Chain POSTROUTING (policy ACCEPT 22 packets, 1479 bytes)
pkts bytes target prot opt in out source destination
129 8682 MASQUERADE all -- * vlan1 !192.168.11.2 0.0.0.0/0
0 0 MASQUERADE all -- * br0 192.168.10.0/24 192.168.10.0/24

Chain OUTPUT (policy ACCEPT 22 packets, 1479 bytes)
pkts bytes target prot opt in out source destination

Chain UPNP (0 references)
pkts bytes target prot opt in out source destination

Chain VSERVER (1 references)
pkts bytes target prot opt in out source destination

MercuryV
05-06-2012, 08:54
Через веб включен SSH ... порт 22 открыт. Это странно, поскольку я не позволил SSH извне.
Позволить или не позволить "SSH извне" в веб-интерфейсе вы не могли. Опция "Enable Web Access from WAN" для SSH не предусмотрена (в отличие от UPNP или доступа к веб-интерфейсу).
AFAIK, при включении SSH в веб-интерфейсе он всегда становился доступным по указанному порту на всех интерфейсах. И это логично, имхо. Для параноиков есть возможности в веб-интерфейсе запретить парольную авторизацию и включить защиту от брутфорса.
Исправляю свою ошибку, AlexeyS справедливо указал (http://wl500g.info/showthread.php?30231-firewall-%EF%F0%EE%F8%E8%E2%EA%E0-1-9-2-7-RTN-r4051-SSH-%EF%EE%F0%F2-%EE%F2%EA%F0%FB%F2-%EF%EE-%F3%EC%EE%EB%F7%E0%ED%E8%FE&p=251478#post251478), что есть опция доступа только из LAN.

zerg
05-06-2012, 09:21
AFAIK, при включении SSH в веб-интерфейсе он всегда становился доступным по указанному порту на всех интерфейсах. И это логично, имхо.
Большое спасибо за быстрый ответ.Я был введен в заблуждение в связи с http://wl500g.info/showthread.php?10307-How-To-Install-and-Configure-Olegs-firmware - "16. Open SSH port to Internet (if directly connected)".
Но за это время Dropbear был установлен вручную.

AlexeyS
05-06-2012, 10:26
Позволить или не позволить "SSH извне" в веб-интерфейсе вы не могли. Опция "Enable Web Access from WAN" для SSH не предусмотрена (в отличие от UPNP или доступа к веб-интерфейсу).


Ваша не правда, для "Enable SSH access:" есть два значения "Yes" и "Yes, LAN Only" - второе запрещает доступ из WAN.

staticroute
06-06-2012, 03:02
Да, было б неплохо поменять Yes, на Yes (WAN), а то многие на автомате ставят Yes неосознанно.

pyatil
15-07-2013, 10:58
Добрый день, не получается настроить доступ с роутера по ключу на линукс машину.
Что делаю: использую ключ в директории /usr/local/etc/dropbear/
вывод публичного залил на хост в ~/.ssh/autorized_keys
пробую ssh с роутера - спрашивает пароль.

одно но, это ssh туннель, тоесть вначале с удаленной машины был сделан туннель:
ssh -f -N user@router -R port_local:localhost:рort_router
потом подключаюсь командой c роутера ssh user@localhost -p port_local
и спрашивает пароль, хотелось бы настроить чтобы пароль не спрашивало.

на линукс машине доступ по ключам работает, проверил с виртуалки.
Прошивка от олега, роутер WL500 gp2

UPD: получилось подключиться с помощью опции -i и указанием конкретного ключа.

konnmor
25-10-2013, 17:11
Здравствуйте!

Существует ли способ настроить и SSH и сервер OpenVPN на роутере, оба на 443 порт, и при подключении извне как-то иметь выбор, куда подключаться?
Задача ставится из такого условия, что не известно, из каких условий будет внешнее подключение к роутеру (если конкретнее, то из Поднебесной), т.е. обеспечить максимальную гибкость маневра. Еще лучше, если помимо вышесказанного обеспечить выбор подключения еще и к php прокси серверу, также запущенном на роутере, по https, также через 443 порт.
IP динамический через DynDNS (dlinkddns).

MercuryV
25-10-2013, 20:29
SSH и сервер OpenVPN на роутере, оба на 443 порт, и при подключении извне как-то иметь выбор, куда подключаться?
В репозитории Entware есть пакет sslh (http://www.rutschle.net/tech/sslh.shtml)
Как раз для подобных целей. "Выбирать" куда подключаться не нужно, необходимый протокол определяется автоматически по первому пакету данных.

Vampik
26-10-2013, 08:19
если конкретнее, то из Поднебесной

С большой вероятностью перевешивание на 443 порт на поможет (или поможет, но не надолго) - придется постоянно менять порты и IP-адреса по мере их блокирования китайским фаерволлом.

konnmor
03-11-2013, 15:37
В репозитории Entware есть пакет sslh (http://www.rutschle.net/tech/sslh.shtml)
Подскажите пожалуйста, как поставить sslh на прошивке 1.9.2.7-rtn-r5066. У меня в списке opkg этого пакета нет.

ryzhov_al
03-11-2013, 15:55
Подскажите пожалуйста, как поставить sslh на прошивке 1.9.2.7-rtn-r5066. У меня в списке opkg этого пакета нет.
Не верю:

# opkg find sslh
sslh - 1.14-1 - SSL/SSH multiplexer

MercuryV
04-11-2013, 12:21
konnmor, сначала
# opkg update
занятно, r5066 вышла 27 апреля, а sslh добавлен у нас 28 апреля :)

konnmor
06-11-2013, 14:25
Спасибо, sslh действительно есть. Это sshl нету :)