8

Я пытаюсь ssh в мою коробку Linux дома. Мой дом - это среда в общежитии - NAT и Firewall с персональным ноутбуком под управлением Arch Linux. Моя работа в корпоративном стиле Windows 7 - NAT и прокси-сервер, без прав администратора.

Я могу подключить два запущенных Team Viewer. Однако это не устраивает то, что я действительно ищу. Я просто смотрю на SSH в своем Linux-боксе дома, оставляя мой Linux-модуль полностью отключенным - в основном без головы, когда меня там нет.

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


Какое простое и безопасное решение SSH'ing на моем ноутбуке с работы? Существует ли бесплатный и безопасный «третий сервер»? Я был вверх и вниз Google, но, кажется, становится все более и более запутанным.

5 ответов5

16

pwnat - это инструмент с открытым исходным кодом, который предположительно решает эту проблему. Это говорит:

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

Здесь нет посредников, нет прокси, нет сторонних разработчиков, не требуется UPnP/STUN/ICE, нет спуфинга и нет хитростей DNS.

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

Pwnat устанавливает этот вид связи:

Машина A (IP: 192.168.1.3) -> NAT A (IP: 122.xxx) -> Интернет -> NAT B (IP: 59.xxx) -> Машина B (192.168.2.10)

pwnat распространяется только для Linux, но статья PWNAT: Windows Complied Version содержит версию для Windows. См. Также того же автора. PWNAT: Пример.

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

5

Я лично считаю, что туннелирование - ваш лучший вариант, даже если у вас еще нет третьего сервера.

Amazon EC2 предлагает опцию ценообразования Free Tier, позволяющую новым клиентам запускать микроэкземпляр Linux/Windows до 750 часов в месяц бесплатно в течение одного года. Я сам не пользовался этой службой, но предполагаю, что если вы запускаете виртуальный сервер только тогда, когда это необходимо, вы получаете бесплатный SSH-туннель. Вы могли бы даже найти услугу достаточно дешевой, чтобы гарантировать оплату?

Hak5 дал хорошее введение в туннелирование (с постоянством). Вы также можете настроить сценарий, запускаемый CRON, чтобы попытаться подключиться к виртуальному серверу, чтобы у вас был доступ к ноутбуку в течение нескольких минут после запуска экземпляра EC2 ...

3

Наилучшим вариантом будет настройка переадресации портов, если вы можете, но если ваш кампус выполняет брандмауэр и вы не можете самостоятельно переадресовывать порты, воспользуйтесь этим предложением.

Да, есть бесплатный 3-й сервер, и вы уже используете его, TeamViewer. Убедитесь, что у вас установлен TeamViewer в качестве службы (или что-то подобное для Linux, я использую только версию для Windows). Затем установите драйвер VPN на работе и дома. После этого вы сможете подключиться с помощью VPN с работы, и ваш домашний компьютер будет иметь IP-адрес 7.xxx. Затем, если вы хотите войти в терминальную сессию, запустите SSH по каналу VPN.

Опция установки VPN находится в расширенных настройках.

Это добавит опцию "VPN" для типов соединений, которые вы можете сделать.

1

Вы должны просто иметь возможность настроить переадресацию портов (порт 22) на домашнем маршрутизаторе / брандмауэре. А затем подключитесь к своему домашнему публичному IP-адресу, когда вы на работе. Вы можете использовать что-то вроде dyndns, если у вас дома нет статического публичного ip.

0

Вы можете использовать общедоступный сервер XMPP/Tox в качестве "третьего сервера". А именно, есть проекты, такие как Tuntox и PPPoAT (PPP поверх любого транспорта), которые используют эти протоколы обмена мгновенными сообщениями в качестве транспортных уровней.

Я пробовал PPPoAT, который поддерживает XMPP, и, в отличие от PWNAT, этот механизм действительно работает для меня.

Чтобы использовать его, вам понадобятся две учетные записи XMPP на любом общедоступном сервере - одна для сервера, на который вы хотите войти, другая для вашего клиента. После запуска pppoat на сервере, а затем на клиенте (оба с соответствующими параметрами конфигурации) вы можете сразу же начать соединение, например,

ssh username@10.0.0.2

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

Что касается безопасности, SSH может работать в абсолютно небезопасной сети, поскольку он уже реализует свое собственное шифрование, поэтому при использовании SSH вопрос о том, является ли безопасным соединение на основе XMPP, на самом деле не имеет значения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .