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

Любые разговоры которые хоть как-то связаны с тематикой форума

Модератор: Модераторы разделов

Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

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

Сообщение Janik »

:rolleyes:
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение sash-kan »

никак.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение rm_ »

Сделать, чтобы сервер перестал быть скрытым за NAT (к примеру, подняв на нём и на клиенте туннель IPv6), после чего подключаться в обычном порядке.
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение landgraf »

взять сервер не скрытый за NAT и сделать SSH - туннель (VPN если охота).
я вон за проксю спокойно подключаюсь
Спасибо сказали:
Pchol
Сообщения: 88

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Pchol »

Пробросить необходимые порты DNAT'ом на том сервере где НАТ, и спокойно подключиться ?
... Весь ужас заключается в том что предают только свои ...
Спасибо сказали:
listasitem
Сообщения: 144
ОС: Debian Lenny 5

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение listasitem »

Пару месяцев назад достал меня один такой на фрилансе...
Пробейся, говорит, к соксам за натом! Чтобы спам рассылать...

Фу.
Использую Debian Lenny 5 - счастлив, чего и вам искренне желаю!
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Janik »

Значит, пойду собирать сервачок, подниму на нем веб- фтп- и прокси-сервер! А то NAT поднят на аппартном маршрутизаторе.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bizdelnick »

Janik писал(а):
08.09.2009 08:26
Значит, пойду собирать сервачок, подниму на нем веб- фтп- и прокси-сервер! А то NAT поднят на аппартном маршрутизаторе.

Так маршрутизатор твой или чей-то где-то?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Janik »

Bizdelnick писал(а):
08.09.2009 10:31
Так маршрутизатор твой или чей-то где-то?

Мой-мой!
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

Janik писал(а):
08.09.2009 20:45
Bizdelnick писал(а):
08.09.2009 10:31
Так маршрутизатор твой или чей-то где-то?

Мой-мой!

тогда надо "пробросить" нужный порт до адреса сервера в локалке.
для iptables это выглядит так:
iptables -t nat -A PREROUTING -p tcp -m tcp -i eth0 --dport 22 -j DNAT --to-destination 192.168.1.2:10000 - это непосредственно проброс, где -i eth0 - интерфейс, с которого приходит пакет, --dport 10000 - порт, на который приходит пакет, а 192.168.1.2:22 это на какой адрес:порт пробросить все это дело.
А так же нужно еще и разрешить этому пакету идти через брандмауэр:
iptables -A FORWARD -p tcp -m tcp --dport 10000 -j ACCEPT

Ну, а если под маршрутизатором имелась ввиду стремная длинковская коробочка, то там уж сами разбирайтесь. Там все сложно бывает - запутанная терминология, убогая админка и тд.
Спасибо сказали:
Аватара пользователя
Ali1
Сообщения: 2250

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Ali1 »

UPD
Адрес хоста с NAT должен быть настоящий.
Провайдер не должен резать 22 или другой нужный порт.
В некоторых хелезках есть ddns.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21347
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bizdelnick »

Bluetooth писал(а):
08.09.2009 23:32
Ну, а если под маршрутизатором имелась ввиду стремная длинковская коробочка, то там уж сами разбирайтесь. Там все сложно бывает - запутанная терминология, убогая админка и тд.

Да ладно уж, сложно. Обычно вбивается один айпишник и два порта, и всё.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

Bizdelnick писал(а):
09.09.2009 00:12
Bluetooth писал(а):
08.09.2009 23:32
Ну, а если под маршрутизатором имелась ввиду стремная длинковская коробочка, то там уж сами разбирайтесь. Там все сложно бывает - запутанная терминология, убогая админка и тд.

Да ладно уж, сложно. Обычно вбивается один айпишник и два порта, и всё.

Уж это-то остается неизменным. Но вот только как эти порты иногда обзовут - я хренею. Еще больше я хренею с логики работы многих веб интерфейсов. И уж совсем хренею с некоторых коробочек, которые после изменения настроек ната перезагружаются(это ж сколько пить надо!?). К тому же иногда даже нельзя один порт пробросить на другой, а только на тот же самый (:
Потому считаю, что это намного сложнее, чем прописать стандартное правило в iptables. Хотя если Вы меряете сложность задачи по тому, насколько "графический" интерфейс используется для ее решения, то тогда да, веб интерфейс это довольно просто (:
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение watashiwa_daredeska »

Bluetooth писал(а):
09.09.2009 09:08
К тому же иногда даже нельзя один порт пробросить на другой, а только на тот же самый (:
У моей коробочки это можно, но нельзя два порта в один пробрасывать :)
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

watashiwa_daredeska писал(а):
09.09.2009 09:29
Bluetooth писал(а):
09.09.2009 09:08
К тому же иногда даже нельзя один порт пробросить на другой, а только на тот же самый (:
У моей коробочки это можно, но нельзя два порта в один пробрасывать :)

Во всех коробочках разные косяки. Я не видел только нормального ната (:
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Janik »

Маршрутизато аппаратный. Наверно, возьму как в журнале "Хакер" вскрою его и поковыряюсь! :crazy:
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

Janik писал(а):
09.09.2009 19:41
Маршрутизато аппаратный. Наверно, возьму как в журнале "Хакер" вскрою его и поковыряюсь! :crazy:

Не надо портить неокрепшую психику всяким мусором типа ксакеп. Возьмите лучше, да почитайте на опэннете про то, как работает нат, для примера :)
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение xorader »

Была у меня такая задача: иметь ssh доступ к клиентскому серверу (пусть называется server-nat.com), который находиться за NAT'ом (провайдерским, который мне не доступен).
Задачу я решил с помощью reverse ssh. Итак:

* нам требуется внешний сервер со статическим нормальным IP (будет называться server.com). Хотя, вероятно можно сделать и по DNS имени: например, по server.dyndns.org (кто в курсе - поймут о чём я).

* создаём на обоих серверах пользователя с именем, к примеру, clients (даём им нормальный shell - /bin/bash и задаём пароли, которые потом можно будет заблочить)

* генерируем пару ключей на server-nat.com:
- su clients
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub | ssh -l clients server.com "cat >> ~/.ssh/authorized_keys"
Не забудьте создать /home/clients/.ssh/ с правами clients на server.com перед этим. Всё - теперь мы можем делать ssh с server-nat.com на server.com без ввода пароля под пользователем clients (это нам понадобиться ниже)

* прописываем на server-nat.com в crontab исполнение раз в 10ть минут следующего скрипта:

Код: Выделить всё

#!/bin/sh
#

# check, if tunnel already strarted
check_string=`ps auxw | grep ssh_client | grep -v grep`

if [ -z "$check_string" ]
then
echo "Starting ssh tunnel to server.com"
        screen -wipe
        screen -t ssh_client -dmS ssh_client su clients -c "ssh -R 19998:localhost:22 clients@server.com"
        exit 0
fi
#echo "ssh tunnel to server.com already started"



Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
Теперь мы можем попасть на server-nat.com по ssh, зайдя на server.com и сделав ssh -p 19998 clients@localhost (пароль вводить от пользователя clients на server-nat.com). В принципе, можно заходить на server-nat.com проще: набрав ssh -p 19998 clients@server.com откуда угодно :)

Well done :)

P.S. более подробную инфу ищите в гугле по запросу "reverse ssh"
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускать :)
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение xorader »

Bluetooth писал(а):
11.09.2009 16:37
Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускать :)


Да есть такое - но он всё равно ранно или поздно по таймауту отваливается - так что в течении часа-получаса в любом случае коннект восстановиться, так что для меня не критично (всяко лучше, чем в другой конец города ехать :))
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

xorader писал(а):
11.09.2009 22:51
Bluetooth писал(а):
11.09.2009 16:37
Этот скрипт проверяет наличие ssh тунеля - и если его нет (например был обрыв связи) - стартует его.
У меня такой же скрипт есть, то еще более быдлокодный. В вашем есть один ньюанс: бывают случаи, когда ссх клиент в списке процессов нет, а соединение он потерял. Для этого случая нужно еще одну проверку пускать :)


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

Ну, вот Вам мой скрипт: Я его написал, но в реальных условиях протестировать не успел - отпала в нем необходимость :)
Можете выдрать оттуда идею проверки.

Код: Выделить всё

#!/bin/sh

    if !(ps ax|grep ssh|grep -q nNT)
    then
        ssh -nNT -R 19999:localhost:22 bluetooth@server.ru -p 20000 &
        case "$?" in
        130)
            ps ax|grep ssh|grep nNT|awk '{print $1}'|kill
            exit 1
        ;;
        esac;
    fi


    if (ps ax|grep ssh|grep -q nNT) && !(netstat --inet -n|grep -q ':20000') # вот она, эта проверка. У меня работала (:
    then
        ps ax|grep -q ssh|grep -q nNT|awk '{print $1}'|kill
        ssh -nNT -R 19999:localhost:22 bluetooth@server.ru -p 20000 &
    fi

exit 0

З.Ы. За быдлокод не ругать :)
Честно говоря, я сам не до конца понимаю, что же я там набыдлокодил. И уж тем более не помню, что означает 130й код завершения программы ssh :)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение watashiwa_daredeska »

Bluetooth писал(а):
11.09.2009 23:38
не помню, что означает 130й код завершения программы ssh
Смерть от сигнала 2: Interrupt from keyboard.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Bluetooth »

watashiwa_daredeska писал(а):
12.09.2009 00:42
Bluetooth писал(а):
11.09.2009 23:38
не помню, что означает 130й код завершения программы ssh
Смерть от сигнала 2: Interrupt from keyboard.

Да? А Вы уверены? Я помню, что я был совершенно в невменяемом состоянии, когда писал этот скрипт, но не настолько же, чтобы в неинтерактивный скрипт засунуть что-то, связанное с клавиатурой (:
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение frp »

Поднять себе IPv6. Зарегистрировать себе домен IPv6. Клиенты с IPv6 смогут нормально ходить на сайт, клиентам с IPv4 будет нужно писать адрес типа ваш.домен.ipv4.sixxs.org (Этот сервис вроде действует только для HTTP)
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение watashiwa_daredeska »

Bluetooth писал(а):
12.09.2009 15:12
Да? А Вы уверены?
Уверен. Это универсальное правило. Если код возврата R > 127, значит процесс умер от сигнала R-128.
Спасибо сказали:
Аватара пользователя
Monolit
Сообщения: 61
ОС: ArchLinux, FreeBSD, Ubuntu

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Monolit »

Вариант первый это проброс портов, вариант второй использование ipv6 (по этому поводу гугли имхо есть провайдер который может тебе выдать адрес ipv6, там же должны быть настройки для твоей системы). :)
Если вы знаете Slackware - вы знаете GNU/Linux. Если вы знаете Red Hat, то всё, что вы знаете - это Red Hat.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение rm_ »

По поводу IPv6, более подробные инструкции есть в соседней теме: Web или FTP-сервер за NAT
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Janik »

Я покопался в веб-морде модема, увидел там

Изображение

ЗЫ: У меня есть веб-сервер, я попытался сделать проброс портов, но у меня ничего не получилось
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
Monolit
Сообщения: 61
ОС: ArchLinux, FreeBSD, Ubuntu

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Monolit »

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

Плохо копался!
У меня модель HUAWEI Smart AX MT880
Проброс портов у меня осуществляется через Virtual Server вот скрин на нем проброс портов для двух компьютеров моей "квартирной" сети)
Изображение
Если вы знаете Slackware - вы знаете GNU/Linux. Если вы знаете Red Hat, то всё, что вы знаете - это Red Hat.
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 864
Статус: Оператор вычислительных машин
ОС: Debian

Re: Как подключиться к серверу, скрытому за NAT?

Сообщение Janik »

Разобрался с перенаправлением портов, теперь всё хорошо!
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали: