ssh порт вперед, щоб отримати доступ до моєї домашньої машини з будь-якого місця


24

Я виходжу з цього питання: /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

Я хочу зрозуміти весь цей процес port forwarding.

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

Що я маю:

сервер freebsd, що сидить у мене вдома.
маршрутизатор netgear

Це я намагаюся досягти:

мати можливість отримати доступ до сервера freebsd через машину Windows через Інтернет, щоб мати можливість відкривати веб-браузер та доступ до Інтернету.

Я також хочу отримати доступ до цього вікна Freebsd з машини ubuntu, яка є у мене.

Буде чудово, якщо хтось зможе мені допомогти.

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

переадресація портів netgear


Будь ласка, перейдіть, якщо це superuserпитання.
Харі

Потрібно трохи більше роз’яснень. Якщо машина Windows знаходиться десь в Інтернеті і має доступ до Інтернету, чому ви хочете підключитися до вікна FreeBSD вдома, щоб отримати доступ до Інтернету?
OldTimer

@OldTimer: Я не впевнений, наскільки важливим є ваше питання / стурбованість.
Харі

Використовуйте ipv6 адреси, більше NAT, більше клопотів більше ;-)
Stéphane Gimenez

1
Зачекайте! я щойно сказав, що : - /
Стефан Гіменез

Відповіді:


47

Почну з необґрунтованих фактів:

  1. У вас є: A- вікно FreeBSD, B- ваш маршрутизатор і C- деяка машина з доступом до Інтернету. Ось як це виглядає:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
    \_________ ________/
              v
               `- this is your LAN
    

    Зверніть увагу , як ваш маршрутизатор нормально працює: вона дозволяє встановлювати з'єднання з машин у вашій локальній мережі до Інтернету (простіше кажучи). Отже, якщо A(або будь-яка інша машина в локальній мережі) хоче отримати доступ до Інтернету, це буде дозволено (знову ж таки, лише про базове розуміння та конфігурацію):

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `-->----'  `--->--->---^  
    

    І наступне це НЕ дозволено за умовчанням:

    .-----.      .-----.                        .-----.
    |  A  |  ==  |  B  |  - - ( Internet ) - -  |  C  |
    '-----'      '-----'                        '-----'
          `--<----'  `---<--- - - - - --<---<-----'
    

    (Тобто, маршрутизатор захищає машини вашої локальної мережі від доступу до Інтернету.) Зауважте, що маршрутизатор - це єдина частина вашої локальної мережі, яка спостерігається з Інтернету 1) .

  2. Переадресація портів - це те, що дозволяє здійснювати третю схему. Це полягає в тому, щоб сказати маршрутизатору, яке з'єднання з C2) має перейти до якої машини в локальній мережі. Це робиться на основі номерів портів , тому його називають переадресацією портів . Ви налаштовуєте це, доручаючи маршрутизатору, що всі з'єднання, що надходять на даний порт з Інтернету, повинні перейти до певної машини в локальній мережі. Ось приклад для порту 22, пересланого на машину A:

    .------.     .-------.                        .-----.
    |  A   | ==  |   B   |  - - ( Internet ) - -  |  C  |
    |      |     |       |                        '-----'
    '-|22|-'     ',--|22|'                          |
        `--<-22---'    `---<---- - - - - - --<-22---'
    
  3. Такі з'єднання через Інтернет відбуваються на основі IP-адрес. Отже, трохи більш точним представленням вищевказаного прикладу було б:

    .------.      .-------.                                .-----.
    |  A   |  ==  |   B   | - - - - - ( Internet ) - - - - |  C  |
    |      |      |       |                                '-----'
    '-|22|-'      ',--|22|'                                   |
        `--<-A:22--'    `--<-YourIP:22 - - - - --<-YourIP:22--'
    

    Якщо у вас немає з'єднання з Інтернетом зі статичним IP-адресою, вам доведеться якось дізнатися, який IP-адресу в даний час присвоюється вашому маршрутизатору провайдером. Інакше Cне знатиме, до якого IP-адреси він має підключитися, щоб потрапити на ваш маршрутизатор (і далі, до A). Щоб вирішити це простим способом, ви можете скористатися сервісом під назвою динамічний DNS . Це зробить ваш маршрутизатор періодично надсилати інформацію на спеціальний DNS-сервер, який буде відслідковувати ваш IP-адресу та надавати вам доменне ім’я . Існує досить багато безкоштовних динамічних постачальників DNS. Багато маршрутизаторів оснащені параметрами конфігурації, щоб легко зв’язатися з ними.

1) Це, знову ж таки, спрощення - фактичним пристроєм, який бачать в Інтернеті, є модем, який часто може бути інтегрований з маршрутизатором, але також може бути окремим вікном.
2) або будь-який інший апарат з підключенням до Інтернету.


Тепер для того, що ви хочете:

  1. Просто дозволити ssh отримати доступ до своєї машини з Інтернету - це погана ідея. Є тисячі ботів, створених кракерами, які шукають в Інтернеті машини з відкритим SSH-портом. Вони , як правило , «стукати» на порт SSH за замовчуванням як можна більшого числа IP - адрес , як вони можуть і як тільки вони знаходять SSH - демон працює де - то, в спробі отримати брутфорс доступ до машини. Це не лише ризик можливого поломки, але й уповільнення роботи мережі під час роботи машини.

  2. Якщо вам дійсно потрібен такий доступ, вам слід принаймні

    • переконайтеся, що у вас є надійні паролі для всіх облікових записів користувачів,

    • заборонити кореневий доступ через SSH (ви завжди можете увійти як звичайний користувач та suабо sudoпотім),

    • змінити порт за замовчуванням, на якому працюватиме ваш SSH-сервер,

    • введіть механізм заборони численних спроб входу в SSH (із скороченням часу на очікування подальших спроб - я не пам’ятаю, як саме це називається - я це ввімкнув деякий час тому на FreeBSD, і, нагадаю, це було досить просто - спробуйте пошук деяких форумів FreeBSD та ін. щодо забезпечення SSH, ви знайдете його.)

    • Якщо можливо, спробуйте запустити ssh daemon лише тоді, коли ви знаєте, що отримаєте доступ до машини в найближчому майбутньому, а потім вимкніть його.

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


10
Захищений за доброту
ассії

Дякую за детальне пояснення. Я трохи перетравлю це і прокоментую.
Харі

Я повністю зрозумів вашу думку. Моє запитання: я налаштував (правильно чи неправильно - не впевнений) свій маршрутизатор netgear. Що далі мені потрібно зробити?
Харі

2
Перегляньте мою редакцію (внизу) про зовнішній доступ до SSH.
rozcietrzewiacz

Спасибі за інформацію. Я отримав те, що ви намагаєтеся передати. Моє запитання: що мені потрібно зробити, щоб кожен (хто має доступ) в Інтернеті, наприклад, міг запустити браузер у вільному боці freebsd. Як це зробити?
Харі

3

Є кілька способів цього досягти. Найпростіше, мабуть, налаштувати те, що відомо як DMZ. Однак, більш безпечним способом є на маршрутизаторі встановити статичний маршрут на порт 22 до IP вашого сервера.

Ресурси:


Спасибі. Я виконав частину на маршрутизаторі netgear: я налаштував порт для пересилання таким чином: сервіс: HTTP-порт: 80 сервер ip: 192.168.1.16 - ось цей ip є ip мого вільного freebsd. Що мені робити далі?
Харі

Налаштуйте тест поза вашим місцезнаходженням, я особисто просто перенесу телефон на свій ноутбук і спробую ввійти в свою ip адресу. Я припускаю, що ви знаєте свою зовнішню IP-адресу. Або ви можете спробувати зайти на свій веб-сервер.
Марк D

SSH не працює для мого зовнішнього IP-адреси. Чи потрібно мені щось робити на сервері freebsd?
Харі

Чи можете ви SSH з внутрішньої мережі?
Марк D

Так. Я можу це зробити
Харі

1

Це може зробити ваш маршрутизатор. На деяких маршрутизаторах ця функція називаєтьсяVirtual Server

Дивіться внизу частини зображення два приклади переадресації портів. Один є Web, а інший - SSH. У першому випадку будь-який запит на ваш WAN IP, тобто IP вашого маршрутизатора з портом, 80буде перенаправлений до локальної IP ( 192.168.2.4у цьому випадку)
Завдяки цій функції ви можете отримати послуги, що працюють на вашому ПК / сервері, що працюють в локальній мережі з будь-якої точки світу. тобто ці послуги не обмежуються локальною мережею
Переадресація порту або віртуальний сервер на маршрутизаторі

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