як сш два комп’ютери за NAT та брандмауер без третього комп'ютера


9

Я намагаюся домашню скриньку ввести в свій Linux. У моєму будинку - інтернат у стилі гуртожитку - NAT та брандмауер із персональним ноутбуком під управлінням Arch Linux. Моя робота - це корпоративний стиль Windows 7 - NAT і брандмауер проксі, без прав адміністратора.

Я можу з'єднати два переглядачі Team Viewer портативно. Однак це не відповідає тому, що я насправді шукаю. Я прагну просто SSH у свій Linux-скриньку вдома, а моє поле Linux вийшло повністю - в основному без голови, коли мене там немає.

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


Яке просте і безпечне рішення для SSH'ing в моєму ноутбуці з роботи? Чи є вільний і безпечний "третій сервер"? Я працював вгору і вниз Google, але, здається, все більше і більше плутаюсь.


2
У вас є доступ до маршрутизатора? Зазвичай потрібно налаштувати параметри NAT, щоб вказати вашу загальнодоступну IP-адресу на вашому внутрішньому SSH-сервері, щоб зробити щось подібне.
jmreicha

Ні, у мене немає доступу до маршрутизатора і не можу налаштувати налаштування NAT.
користувач1026169

Тоді в цьому випадку вам, швидше за все, доведеться проксі через третій сервер для підключення, якщо опція Team Viewer не працюватиме.
jmreicha

хто надає сервер, який я можу використовувати лише як проксі для ssh?
користувач1026169

Гадаю, що VPS на базі хмари зробив би свою справу.
jmreicha

Відповіді:


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 Commented Version містить версію Windows . Дивіться також того ж автора PWNAT: Приклад .

Метод, який використовує pwnat, неймовірно розумний, але немає гарантії, що він буде працювати з вашим оточенням.


1
Примітка: pwnat залежить від ICMP для роботи. Зокрема, echo echo та час перевищували повідомлення. Це працює, оскільки ICMP без громадянства.
shadowbq

Не працює для мене. NAT маршрутизатори недостатньо розумні для впровадження стандартів, а також не досить розумні, щоб зрозуміти автора pwnat. +1 ще за кмітливість.
квантовий

Я також пробував pwnat без успіху. Але можливо, у мене щось не так у моїй конфігурації. Хтось, хто мав успіх, може дати підтримку?
розбійність

5

Я особисто вважаю, що тунелювання - це ваш найкращий варіант, навіть якщо ви вже не володієте третім сервером.

Amazon EC2 пропонує опцію ціноутворення в Безкоштовному рівні, що дозволяє новим клієнтам запускати мікро екземпляр Linux / Windows до 750 годин на місяць безкоштовно протягом одного року. Я сам не користувався сервісом, але припускаю, що якщо ви запускаєте віртуальний сервер лише тоді, коли це потрібно, ви отримуєте тунель SSH та працює безкоштовно. Ви навіть можете знайти послугу досить дешеву, щоб вимагати оплати?

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


Дякую, я знайшов безкоштовну VPS за допомогою декількох форумів.
користувач1026169

1
Також зауважте, що 750 годин - це 31,25 дня ... Тож ви отримуєте один t2.microекземпляр безкоштовно протягом року.
Attie

3

Найкращим варіантом буде налаштування переадресації портів, якщо ви можете, але якщо ваш кампус робить брандмауер, і ви не можете самостійно робити переадресацію портів, використовуйте цю пропозицію.

Так, є безкоштовний 3-й сервер, і ви його вже використовуєте, TeamViewer. Переконайтеся, що у вас як сервіс встановлений TeamViewer (або будь-який еквівалент для Linux, я використовую лише версію Windows). Потім встановіть драйвер VPN на роботі та вдома. Потім ви зможете підключитися за допомогою VPN від роботи, і ваш домашній апарат матиме ip-адресу 7.xxx. Тоді, якщо ви хочете ввійти до термінального сеансу, запустіть SSH по лінії VPN.

Опція встановлення VPN знаходиться в розширених налаштуваннях. введіть тут опис зображення

Це додасть параметр "VPN" для типів з'єднань, які ви можете зробити. введіть тут опис зображення


1
Дуже дякую за детальну допомогу та скріншоти. Я використовую портативний TeamViewer, але не маю прав адміністратора. Параметр VPN затьмарений, і я не можу його використовувати.
користувач1026169

1

Ви повинні просто мати змогу налаштувати переадресацію портів (порт 22) на свій домашній маршрутизатор / брандмауер. А потім підключіться до домашньої загальнодоступної ip-адреси, коли ви працюєте. Ви можете використовувати щось на зразок dyndns, якщо у вас немає статичного відкритого ip вдома.


Переадресація портів неможлива на жодних моїх машинах через мережу, яка їх обслуговує. У мене немає налаштування без ip, проте немає портів, які я можу використовувати для підключення машин.
користувач1026169

0

Ви можете використовувати загальнодоступний сервер XMPP / Tox як "третій сервер". А саме, є такі проекти, як Tuntox та PPPoAT (PPP over Any Transport), які використовують ці протоколи обміну миттєвими повідомленнями як транспортні шари.

Я спробував PPPoAT, який підтримує XMPP, і, на відміну від PWNAT, цей механізм дійсно працює для мене.

Для його використання вам потрібні два облікові записи XMPP на будь-якому загальнодоступному сервері - один для сервера, на який ви хочете увійти, інший для вашого клієнта. Після запуску pppoatна сервері, а потім на клієнті (обидва з відповідними параметрами конфігурації), ви можете негайно почати з'єднання, наприклад,

ssh username@10.0.0.2

Звичайно, це буде повільніше, ніж пряме з'єднання, і швидкість, швидше за все, буде залежати від обраного вами сервера XMPP, але для нормальної роботи консолі це досить добре.

Що стосується безпеки, SSH може працювати в абсолютно незахищеній мережі, оскільки вона вже реалізує власне шифрування, тож чи безпечне з'єднання на основі XMPP насправді не має значення при використанні SSH.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.