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), то требуется выполнить проброс портов. Как сделать проброс портов:
- Настроить сервер, убедиться, что сервер слушает нужный порт (если нет – настроить, через nginx, к примеру);
- Открыть веб-интерфейс роутера (192.168.1.1 или 192.168.0.1);
- В зависимости от модели роутера, найти NAT или переадресацию портов;
- Добавить правило, указав:
- внешний порт (к примеру, 8080);
- внутренний IP (устройства или сервера, к примеру, 192.168.1.100);
- внутренний порт (порт сервера, допустим 80);
- протокол TCP/UDP (или оба).
- Проверить, указав в браузере http://публичный-IP:8080 или через специальную утилиту telnet: telnet публичный-IP 8080
Важно: определяя порты, не используйте стандартные порты и не открывайте все порты подряд. Помните, что чем больше портов открыто, тем проще пропустить атаку по порту.
