Перейти к основному содержимому

2.06. NAT и проброс портов

Разработчику Архитектору Инженеру

NAT и проброс портов

В работе используется такое понятие, как проброс портов (port forwarding) – перенаправление внешнего порта роутера на внутренний IP/порт. Это обязательная процедура, когда надо сделать, чтобы сервер из локальной сети был доступен с интернета.

★ NAT (Network Address Translation) – это технология, которая позволяет множеству устройств в локальной сети использовать один публичный IP-адрес для выхода в интернет. Это работает так:

  • роутер имеет публичный IP (от провайдера, например, 95.123.45.67);
  • в локальной сети устройства имеют частные IP (192.168.1.2, 192.168.1.3 и тд);
  • когда устройство отправляет запрос в интернет, роутер подменяет частный IP на свой публичный, запоминает, какой внутренний IP запросил данные, и когда приходит ответ – перенаправляет на нужное устройство.

Типы NAT

Тип NATОписаниеПримеры
Full Cone NATЛюбой из интернета может подключиться к открытому порту.Редко, небезопасно
Restricted Cone NATТолько устройства, к которым подключались, могут ответить.Домашние роутеры
Port-Restricted Cone NATТолько устройства, к которым подключались, могут ответить, а также проверяется и порт.Корпоративные сети
Symmetric NAT (строгий NAT)Для каждого внешнего IP и порта – свой внутренний порт. Сложен для проброса.Игровые консоли, VoIP

К примеру, если веб-сервер должен быть доступен в интернете, нужно создать игровой сервер или обеспечить удалённый доступ (RDP, SSH), то требуется выполнить проброс портов. Как сделать проброс портов:

  1. Настроить сервер, убедиться, что сервер слушает нужный порт (если нет – настроить, через nginx, к примеру);
  2. Открыть веб-интерфейс роутера (192.168.1.1 или 192.168.0.1);
  3. В зависимости от модели роутера, найти NAT или переадресацию портов;
  4. Добавить правило, указав:
    • внешний порт (к примеру, 8080);
    • внутренний IP (устройства или сервера, к примеру, 192.168.1.100);
    • внутренний порт (порт сервера, допустим 80);
    • протокол TCP/UDP (или оба).
  5. Проверить, указав в браузере http://публичный-IP:8080 или через специальную утилиту telnet: telnet публичный-IP 8080

Важно: определяя порты, не используйте стандартные порты и не открывайте все порты подряд. Помните, что чем больше портов открыто, тем проще пропустить атаку по порту.

image-3.png