Порт SSH вперед, чтобы получить доступ к моей домашней машине из любого места


24

Я исхожу из этого вопроса: /superuser/359799/how-to-make-freebsd-box-accessible-from-internet

Я хочу понять весь этот процесс port forwarding.

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

Что я имею:

сервер freebsd сидит у меня дома.
сетевой маршрутизатор

Вот чего я пытаюсь добиться:

чтобы иметь возможность получить доступ к серверу FreeBSD с компьютера с Windows через Интернет, чтобы иметь возможность открыть веб-браузер и доступ к Интернету.

Я также хочу получить доступ к этой коробке FreeBSD с машины Ubuntu, которая у меня есть.

Будет здорово, если кто-нибудь сможет мне помочь.

Вот настройка маршрутизатора netgear, которую я сделал для переадресации портов.

переадресация порта netgear


Пожалуйста, мигрируйте, если это superuserвопрос.
Хари

Нужно немного больше разъяснений. Если компьютер с Windows находится где-то в Интернете и уже имеет доступ к Интернету, почему вы хотите подключиться к блоку FreeBSD дома для доступа к Интернету?
OldTimer

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

Используйте адреса ipv6, больше нет NAT, больше нет проблем ;-)
Стефан Гименес

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. Если вам действительно нужен такой доступ, вы должны по крайней мере

    • убедитесь, что у вас есть надежные пароли для всех учетных записей пользователей,

    • запретить root-доступ через SSH (вы всегда можете войти как обычный пользователь suили sudoзатем),

    • измените порт по умолчанию, на котором будет работать ваш SSH-сервер,

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

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

  3. Привыкайте проходить системные журналы. Если вы начинаете замечать что-либо подозрительное, добавьте дополнительные механизмы безопасности, такие как IP-таблицы или стук портов .


10
Проголосовал за совершенство Ascii ...
Джейсонвриан

Спасибо за подробное объяснение. Я перевару это немного и буду комментировать.
Хари

Я полностью понял вашу точку зрения. У меня вопрос, я настроил (правильно или неправильно - я не уверен) мой сетевой маршрутизатор. Что дальше мне нужно делать?
Хари

2
Взгляните на мою правку (внизу) о внешнем SSH-доступе.
rozcietrzewiacz

Спасибо за информацию. Я получил то, что вы пытаетесь передать. Мой вопрос заключается в том, что мне нужно сделать, чтобы любой (кто имеет доступ) в Интернете мог, например, запустить браузер на коробке freebsd. Как мне это настроить?
Хари

3

Есть несколько способов сделать это. Возможно, проще всего настроить то, что известно как DMZ. Однако на вашем маршрутизаторе более безопасный способ настроить статический маршрут через порт 22 к IP-адресу вашего сервера.

Ресурсы:


Спасибо. Я выполнил часть на маршрутизаторе netgear: я настроил переадресацию портов следующим образом: service: HTTP port: 80 ip сервера: 192.168.1.16 - здесь этот ip - это ip моего блока freebsd. Что я должен делать дальше?
Хари

Настроив тест за пределами вашего местоположения, я лично подключаю свой телефон к ноутбуку и пытаюсь подключиться к моему IP-адресу. Я предполагаю, что вы знаете свой внешний IP-адрес. Или же вы можете попробовать посетить свой веб-сервер.
Марк Д

SSH не работает с моим внешним IP. Нужно ли что-то делать на моем сервере freebsd?
Хари

Можете ли вы SSH из вашей внутренней сети?
Марк Д

Да. Я могу это сделать
Хари

1

Это может сделать ваш роутер. На некоторых роутерах эта функция называетсяVirtual Server

См. Ниже в части изображения есть два примера переадресации портов. Один из Интернета, а другой из SSH. В первом случае любой запрос на ваш WAN IP, то есть IP вашего маршрутизатора с портом, 80будет перенаправлен на LAN IP ( 192.168.2.4в этом случае).
С помощью этой функции вы можете получать сервисы, запущенные на вашем ПК / сервере, работающем в локальной сети, из любой точки мира. то есть эти услуги не ограничены локальной сетью
Переадресация портов или виртуальный сервер на маршрутизаторе

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.