Переадресация портов

Функция компьютерной сети
Переадресация портов через NAT-маршрутизатор

В компьютерных сетях переадресация портов или сопоставление портов — это приложение преобразования сетевых адресов (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), который является сетевой службой, с помощью которой интернет-шлюз объявляет о своем присутствии в частной сети через протокол Simple Service Discovery Protocol (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]

Обратная переадресация портов

Другое название: обратный SSH-туннель. Проще говоря, когда ваш ноутбук подключается к удаленной машине таким образом, что входящие вызовы на IP этой удаленной машины передаются на ваш ноутбук — и отвечают обратно. [11]

Динамическая переадресация портов

Динамическая переадресация портов (DPF) — это метод обхода брандмауэра или NAT по требованию с использованием отверстий брандмауэра. Цель состоит в том, чтобы позволить клиентам безопасно подключаться к доверенному серверу, который выступает в качестве посредника для отправки/получения данных на один или несколько целевых серверов. [12]

DPF можно реализовать, настроив локальное приложение, например SSH, как прокси-сервер SOCKS, который можно использовать для обработки передачи данных через сеть или через Интернет. Программы, например веб-браузеры, должны быть настроены индивидуально для направления трафика через прокси, который действует как безопасный туннель на другой сервер. После того, как прокси больше не нужен, программы должны быть перенастроены на их первоначальные настройки. Из-за ручных требований DPF он нечасто используется. [6]

После установления соединения DPF может использоваться для обеспечения дополнительной безопасности для пользователя, подключенного к ненадежной сети. Поскольку данные должны пройти через защищенный туннель на другой сервер, прежде чем будут перенаправлены в исходное место назначения, пользователь защищен от перехвата пакетов, который может произойти в локальной сети. [13]

DPF — мощный инструмент со множеством применений; например, пользователь, подключенный к Интернету через кофейню, отель или иную минимально защищенную сеть, может захотеть использовать DPF как способ защиты данных. DPF также можно использовать для обхода брандмауэров, которые ограничивают доступ к внешним веб-сайтам, например, в корпоративных сетях.

Смотрите также

Ссылки

  1. ^ "Определение: переадресация портов". PC Magazine . Архивировано из оригинала 2012-06-03 . Получено 2008-10-11 .
  2. ^ Рори Краузе. «Использование переадресации портов ssh для печати в удаленных местах». Linux Journal . Получено 11 октября 2008 г.
  3. ^ Джефф "Крэш" Голдин. "Как настроить домашний веб-сервер". Red Hat . Архивировано из оригинала 2008-10-04 . Получено 2008-10-11 .
  4. ^ Переадресация портов OpenSSH
  5. ^ "Локальная и удаленная переадресация портов и отражение для защищенного ИТ-клиента 7.1 или выше - Техническая записка 2433". Support.attachmate.com. 2012-11-09 . Получено 2014-01-30 .
  6. ^ abc "SSH/OpenSSH/PortForwarding - Community Ubuntu Documentation". Help.ubuntu.com. 2013-12-13 . Получено 2014-01-30 .
  7. ^ "Пример — использование локальной переадресации портов для получения почты (Руководство по системному администрированию: службы безопасности)". Docs.oracle.com . Получено 2014-01-30 .
  8. ^ "Туннелирование с помощью Secure Shell - Приложение A: Удалённая переадресация портов". Vandyke.com. 2005-06-12 . Получено 2014-01-30 .
  9. ^ "Local versus Remote Port Forwarding". NetworkActiv . Архивировано из оригинала 4 ноября 2016 года . Получено 8 июня 2014 года .
  10. ^ "FTP Port Number 21 - Port 21 TCP". Compnetworking.about.com. 2013-12-19. Архивировано из оригинала 2014-02-03 . Получено 2014-01-30 .
  11. ^ "Обратное SSH-туннелирование - от начала до конца". JFrog . 2021-08-15 . Получено 2024-10-15 .
  12. ^ "Механизм DPF". Pages.cs.wisc.edu . Получено 2014-01-30 .
  13. ^ "SSH Dynamic Port Forwarding (Видеоролики по взлому InfoSec из серии Illustrated)". Irongeek.com . Получено 2014-01-30 .
  • Алан Стаффорд. "Warp Speed ​​Web Access: Sharing the Bandwidth". PC World . Архивировано из оригинала 2008-03-18 . Получено 2008-10-11 .
  • Использование UPnP для программной переадресации портов и обхода NAT – Бесплатное программное обеспечение, которое использует UPnP и протокол Internet Gateway Device Protocol (IGD) для автоматизации переадресации портов.
  • Исходный код пересылки TCP на языке C# – Исходный код на языке C# с пояснениями/PoC пересылки TCP.
  • Open.NAT – легкая и простая в использовании библиотека классов .NET, позволяющая переадресовывать порты на устройствах NAT, поддерживающих UPNP и PMP.
  • Port Checker Инструмент для тестирования переадресации портов
Получено с "https://en.wikipedia.org/w/index.php?title=Переадресация_портов&oldid=1259920638"