Вопрос или проблема
Я новичок в Ubuntu. У меня есть сеть за NAT через моего интернет-провайдера, и я хочу удаленно подключиться с моего устройства Windows к моему серверу Ubuntu (оба находятся в одной сети за NAT).
Как мне выполнить переадресацию портов, чтобы обеспечить удаленное подключение к серверу и не допустить доступа всему миру в мою сеть?
.
Ответ или решение
Подключение с удаленного устройства к серверу за сетью NAT может показаться сложной задачей, особенно если вы новичок в Ubuntu и работе с сетями. Однако с правильным подходом это возможно сделать безопасно и эффективно. В данном ответе подробно рассмотрим процесс настройки проброса порта и организации удаленного подключения от Windows к Linux серверу, находящемуся за NAT.
Теория
Что такое NAT и проброс портов?
Перевод сетевых адресов (NAT) используется для уменьшения количества IP-адресов, необходимых в организации путем сокращения внешних IP-адресов, доступных всем устройствам, до одного или нескольких адресов. В сетях с NAT внешние устройства могут взаимодействовать с внутренними устройствами только через проброс портов.
Проброс порта заключается в перенаправлении входящих соединений с определенного порта на внешний IP-адрес (или доменный адрес) маршрутного устройства к определенному порту внутреннего устройства — в данном случае, к вашему серверу Ubuntu.
Пример
Конфигурация проброса порта
Предположим, ваш маршрутизатор имеет внешний IP-адрес 203.0.113.5
, и вы хотите подключиться к Ubuntu-серверу по SSH. На сервере SSH работает на стандартном порту 22. Вы можете настроить проброс, чтобы перенаправить входящие соединения с порта 203.0.113.5:2222
на 192.168.1.100:22
, где 192.168.1.100
— это IP-адрес вашего Ubuntu-сервера в локальной сети.
Применение
Настройка маршрутизатора
-
Вход в настройки маршрутизатора: Перейдите в веб-интерфейс вашего маршрутизатора, введя его IP-адрес в адресной строке браузера. Обычно это
192.168.0.1
или192.168.1.1
. Вам необходимо знать учетные данные администратора вашего маршрутизатора. -
Найти настройки проброса портов: Ищите их в разделе под названием "Port Forwarding", "Virtual Server" или аналогичном. Названия могут различаться в зависимости от модели маршрутизатора.
-
Настройка проброса порта:
- Назначьте внешнему порту значение, которое вы хотите использовать (например, 2222).
- Укажите IP-адрес Ubuntu-сервера в сетке (например, 192.168.1.100).
- Пропишите внутренний порт, к которому будет производиться доступ (22 для SSH).
- Примените изменения и убедитесь, что правило активно.
Настройка безопасности
Проброс портов открывает вашу локальную сеть для возможностей удаленного доступа, что может вызвать риски безопасности. Рассмотрим некоторые меры для минимизации этих рисков:
-
Использование фаерволла: На вашем Ubuntu-сервере убедитесь, что фаерволл настроен для ограничения входящих подключений. Настройте
ufw
(Uncomplicated Firewall) для работы исключительно с необходимыми портами.sudo ufw enable sudo ufw allow 22/tcp
-
Изменение стандартного порта SSH: Предотвращение атак методом подбора пароля. Можно изменить порт SSH на более высокий номер (например, 2200). Для этого:
- Отредактируйте файл конфигурации SSH:
sudo nano /etc/ssh/sshd_config
- Найдите строку
#Port 22
и измените наPort 2200
. - Сохраните файл и перезапустите SSH:
sudo systemctl restart ssh
.
- Отредактируйте файл конфигурации SSH:
-
Настройка двухфакторной аутентификации: Используйте двухфакторную аутентификацию для дополнительного уровня защиты. Можно настроить пакет
libpam-google-authenticator
для этой цели. -
Настройка VPN: Установка VPN-сервера на вашем маршрутизаторе или внутри сети обеспечит защищенный доступ и исключит необходимость прямого проброса портов.
Подключение с Windows
После настройки проброса порта и обеспечения адекватной безопасности можно подключиться к Ubuntu-серверу с Windows используя SSH-клиент, такой как PuTTY:
-
Скачайте и установите PuTTY: Его можно найти на официальном сайте.
-
Настройка соединения:
- Откройте PuTTY.
- Введите внешний IP-адрес маршрутизатора и порт (например,
203.0.113.5:2222
). - Подключитесь, используя учетные данные пользователя Ubuntu-сервера.
Таким образом, порт-форвардинг позволяет вам достичь удаленного подключения к Ubuntu-серверу из Windows за NAT без существенного риска для безопасности, если следовать вышеуказанным рекомендациям.