Переадресация портов
В сетях компьютерных переадресация портов или сопоставление портов — это приложение трансляции сетевых адресов (NAT), которое перенаправляет запрос на связь с одной комбинации адреса и номера порта на другую, пока пакеты проходят через сетевой шлюз, например маршрутизатор или брандмауэр . Этот метод чаще всего используется для того, чтобы сделать службы на хосте, находящемся в защищенной или замаскированной (внутренней) сети, доступными для хостов на противоположной стороне шлюза (внешней сети) путем переназначения IP-адреса назначения и номера порта связи на внутренний хост. [1] [2]
Цель
[ редактировать ]Переадресация портов облегчает подключение удаленных компьютеров, например узлов Интернета , к определенному компьютеру или службе в локальной сети (LAN). [3]
В типичной жилой сети узлы получают доступ в Интернет через DSL или кабельный модем, подключенный к маршрутизатору или транслятору сетевых адресов (NAT/NAPT). Хосты в частной сети подключаются к коммутатору Ethernet или обмениваются данными через беспроводную локальную сеть . Внешний интерфейс устройства NAT настроен с общедоступным IP-адресом. С другой стороны, компьютеры за маршрутизатором невидимы для хостов в Интернете, поскольку каждый из них взаимодействует только с частным IP-адресом.
При настройке переадресации портов администратор сети выделяет один номер порта на шлюзе для эксклюзивного использования для связи со службой в частной сети, расположенной на определенном хосте. Внешние хосты должны знать этот номер порта и адрес шлюза для связи с внутренней службой сети. Часто номера портов известных интернет-служб, таких как номер порта 80 для веб-служб (HTTP), используются при переадресации портов, поэтому общие интернет-службы могут быть реализованы на хостах в частных сетях.
Типичные области применения включают следующее:
- Запуск общедоступного HTTP- сервера в частной локальной сети
- Разрешение доступа Secure Shell к хосту в частной локальной сети из Интернета
- Разрешение FTP- доступа к хосту в частной локальной сети из Интернета
- Запуск общедоступного игрового сервера в частной локальной сети
Администраторы настраивают переадресацию портов в операционной системе шлюза. В ядрах Linux это достигается с помощью правил фильтрации пакетов в компонентах ядра iptables или netfilter . Операционные системы BSD и macOS до Yosemite (OS 10.10.X) реализуют его в модуле Ipfirewall (ipfw), а операционные системы macOS, начиная с Yosemite, реализуют его в модуле Packet Filter (pf).
При использовании на шлюзовых устройствах переадресация порта может быть реализована с помощью одного правила для преобразования адреса и порта назначения. (В ядрах Linux это правило DNAT). Адрес источника и порт в этом случае остаются неизменными. При использовании на машинах, которые не являются шлюзом по умолчанию в сети, адрес источника необходимо изменить на адрес транслирующей машины, иначе пакеты пройдут мимо транслятора и соединение прервется.
Когда переадресация портов реализуется прокси-процессом (например, на межсетевых экранах прикладного уровня, межсетевых экранах на основе SOCKS или через прокси-серверы TCP-канала), тогда никакие пакеты фактически не транслируются, а проксируются только данные. Обычно это приводит к изменению исходного адреса (и номера порта) на адрес прокси-сервера.
Обычно только один из частных хостов может одновременно использовать определенный перенаправленный порт, но иногда можно настроить конфигурацию, чтобы разграничить доступ по исходному адресу исходного хоста.
Unix-подобные операционные системы иногда используют переадресацию портов, где номера портов меньше 1024 могут быть созданы только программным обеспечением, работающим от имени пользователя root. Работа с привилегиями суперпользователя (для привязки порта) может представлять угрозу безопасности хоста, поэтому переадресация портов используется для перенаправления порта с меньшим номером на другой порт с большим номером, чтобы прикладное программное обеспечение могло выполняться как обычная операционная система. системный пользователь с ограниченными привилегиями.
Протокол Universal Plug and Play (UPnP) предоставляет возможность автоматической установки экземпляров переадресации портов в домашних интернет-шлюзах. UPnP определяет протокол устройства шлюза Интернета (IGD), который представляет собой сетевую услугу, с помощью которой шлюз Интернета объявляет о своем присутствии в частной сети через протокол простого обнаружения служб (SSDP). Приложение, предоставляющее интернет-услуги, может обнаружить такие шлюзы и использовать протокол UPnP IGD, чтобы зарезервировать номер порта на шлюзе и заставить шлюз пересылать пакеты в свой прослушивающий сокет .
Типы
[ редактировать ]Переадресацию портов можно разделить на следующие типы: локальную, удаленную и динамическую переадресацию портов. [4]
Переадресация локального порта
[ редактировать ]Переадресация локальных портов — наиболее распространенный тип переадресации портов. Он используется для того, чтобы позволить пользователю подключиться с локального компьютера к другому серверу, т. е. безопасно пересылать данные из другого клиентского приложения, работающего на том же компьютере, что и клиент Secure Shell (SSH). Используя переадресацию локальных портов, можно обойти брандмауэры, блокирующие определенные веб-страницы. [5]
Соединения от клиента SSH перенаправляются через сервер SSH на целевой сервер. Сервер SSH настроен на перенаправление данных из указанного порта (который является локальным для хоста, на котором работает SSH-клиент) через безопасный туннель на определенный хост и порт назначения. Локальный порт находится на том же компьютере, что и SSH-клиент, и этот порт является «пересылаемым портом». На том же компьютере любой клиент, который хочет подключиться к тому же хосту и порту назначения, может быть настроен для подключения к пересылаемому порту (а не напрямую к хосту и порту назначения). После того, как это соединение установлено, клиент SSH прослушивает перенаправленный порт и направляет все данные, отправляемые приложениями, на этот порт через безопасный туннель на сервер SSH. Сервер расшифровывает данные, а затем перенаправляет их на хост и порт назначения. [6]
Некоторые варианты использования переадресации локальных портов:
- Использование переадресации локального порта для получения почты [7]
- Подключитесь с ноутбука к веб-сайту с помощью SSH-туннеля.
Удаленная переадресация портов
[ редактировать ]Эта форма переадресации портов позволяет приложениям на стороне сервера соединения Secure Shell (SSH) получать доступ к службам, расположенным на стороне клиента SSH. [8] Помимо SSH, существуют собственные схемы туннелирования, которые используют переадресацию удаленных портов для той же общей цели. [9] Другими словами, удаленная переадресация портов позволяет пользователям подключаться со стороны сервера туннеля, SSH или другого, к удаленной сетевой службе, расположенной на клиентской стороне туннеля.
Чтобы использовать удаленную переадресацию портов, необходимо знать адрес целевого сервера (на стороне клиента туннеля) и два номера портов. Выбранные номера портов зависят от того, какое приложение будет использоваться.
Удаленная переадресация портов позволяет другим компьютерам получать доступ к приложениям, размещенным на удаленных серверах. Два примера:
- Сотрудник компании размещает FTP-сервер у себя дома и хочет предоставить доступ к FTP-сервису сотрудникам, использующим компьютеры на рабочем месте. Для этого сотрудник может настроить удаленную переадресацию портов через SSH на внутренних компьютерах компании, указав адрес своего FTP-сервера и используя правильные номера портов для FTP (стандартный порт FTP — TCP/21). [10]
- Открытие сеансов удаленного рабочего стола — это распространенное использование переадресации удаленных портов. Через SSH это можно сделать, открыв вычислительный порт виртуальной сети (5900) и указав адрес конечного компьютера. [6]
Динамическая переадресация портов
[ редактировать ]Динамическая переадресация портов (DPF) — это метод обхода брандмауэра или NAT по требованию с использованием точечных отверстий брандмауэра. Цель состоит в том, чтобы позволить клиентам безопасно подключаться к доверенному серверу, который выступает в качестве посредника с целью отправки/получения данных на один или несколько целевых серверов. [11]
DPF можно реализовать, настроив локальное приложение, например SSH, в качестве прокси-сервера SOCKS, которое можно использовать для обработки передачи данных через сеть или Интернет. Программы, такие как веб-браузеры, должны быть настроены индивидуально для направления трафика через прокси-сервер, который действует как безопасный туннель к другому серверу. Как только прокси-сервер больше не нужен, программы необходимо переконфигурировать к исходным настройкам. Из-за ручных требований к DPF он используется не часто. [6]
После установления соединения DPF можно использовать для обеспечения дополнительной безопасности пользователя, подключенного к ненадежной сети. Поскольку данные должны пройти через защищенный туннель на другой сервер перед пересылкой в исходное место назначения, пользователь защищен от перехвата пакетов, который может произойти в локальной сети. [12]
DPF — мощный инструмент, имеющий множество применений; например, пользователь, подключенный к Интернету через кафе, отель или другую минимально безопасную сеть, может захотеть использовать DPF как способ защиты данных. DPF также можно использовать для обхода брандмауэров, ограничивающих доступ к внешним веб-сайтам, например, в корпоративных сетях.
См. также
[ редактировать ]- Протокол управления портами (PCP)
- Протокол сопоставления портов NAT (NAT-PMP)
- дырка в брандмауэре
- Обход NAT
- Пересылка пакетов
- Трансляция адресов портов (PAT)
- Запуск порта
- Адрес помощника UDP
Ссылки
[ редактировать ]- ^ «Определение: переадресация портов» . Журнал ПК . Архивировано из оригинала 3 июня 2012 г. Проверено 11 октября 2008 г.
- ^ Рори Краузе. «Использование переадресации портов ssh для печати в удаленных местах» . Linux-журнал . Проверено 11 октября 2008 г.
- ^ Джефф «Крэш» Голдин. «Как настроить домашний веб-сервер» . Красная шляпа . Архивировано из оригинала 4 октября 2008 г. Проверено 11 октября 2008 г.
- ^ Переадресация портов OpenSSH
- ^ «Переадресация локальных и удаленных портов и отражение для Secure IT Client 7.1 или выше — техническая примечание 2433» . Support.attachmate.com. 09.11.2012 . Проверено 30 января 2014 г.
- ^ Перейти обратно: а б с «SSH/OpenSSH/PortForwarding — Документация сообщества Ubuntu» . Help.ubuntu.com. 13 декабря 2013 г. Проверено 30 января 2014 г.
- ^ «Пример — использование переадресации локального порта для получения почты (Руководство системного администратора: Службы безопасности)» . Docs.oracle.com . Проверено 30 января 2014 г.
- ^ «Туннелирование с помощью Secure Shell — Приложение A: Переадресация удаленных портов» . Вандайк.com. 12 июня 2005 г. Проверено 30 января 2014 г.
- ^ «Переадресация локальных и удаленных портов» . СетьАктив . Архивировано из оригинала 4 ноября 2016 года . Проверено 8 июня 2014 г.
- ^ «Номер FTP-порта 21 — Порт 21 TCP» . Compnetworking.about.com. 19 декабря 2013 г. Архивировано из оригинала 3 февраля 2014 г. Проверено 30 января 2014 г.
- ^ «Механизм ДПФ» . Pages.cs.wisc.edu . Проверено 30 января 2014 г.
- ^ «Динамическая переадресация портов SSH (обучающие видеоролики из иллюстрированной серии взломов по информационной безопасности)» . Irongeek.com . Проверено 30 января 2014 г.
Внешние ссылки
[ редактировать ]- Алан Стаффорд. «Веб-доступ с невероятной скоростью: совместное использование полосы пропускания» . Мир ПК . Архивировано из оригинала 18 марта 2008 г. Проверено 11 октября 2008 г.
- Использование UPnP для программной переадресации портов и обхода NAT — бесплатное программное обеспечение, которое использует UPnP и протокол устройства шлюза Интернета (IGD) для автоматизации переадресации портов.
- Исходный код пересылки TCP на C# — исходный код на C#, объясняющий пересылку PoC TCP.
- Open.NAT — легкая и простая в использовании библиотека классов .NET, обеспечивающая переадресацию портов в устройствах NAT, поддерживающих UPNP и PMP.
- Port Checker Инструмент проверки переадресации портов