Перенаправление порта - Port forwarding

Перенаправление портов через NAT-роутер

В компьютерная сеть, Перенаправление порта или же отображение портов представляет собой приложение преобразования сетевых адресов (NAT), которое перенаправляет запрос связи от одного адрес и номер порта сочетание с другим, в то время как пакеты проходят через сетевой шлюз, например маршрутизатор или же брандмауэр. Этот метод чаще всего используется для предоставления услуг на хосте, находящемся на защищенном или замаскированный (внутренняя) сеть, доступная хостам на противоположной стороне шлюза (внешняя сеть), путем переназначения IP-адреса назначения и номера порта связи на внутренний хост.[1][2]

Цель

Переадресация портов позволяет удаленным компьютерам (например, компьютерам на Интернет ) для подключения к определенному компьютеру или службе в частной локальной сети (LAN).[3]

В типичной жилой сети узлы получают доступ в Интернет через DSL или же кабельный модем подключен к маршрутизатор или же транслятор сетевых адресов (NAT / NAPT). Хосты в частной сети подключены к коммутатору Ethernet или обмениваются данными через Беспроводная сеть. Внешний интерфейс устройства NAT настроен с использованием общедоступного IP-адреса. С другой стороны, компьютеры за маршрутизатором невидимы для хостов в Интернете, поскольку каждый из них обменивается данными только с частным IP-адресом.

При настройке переадресации портов администратор сети выделяет один номер порта на шлюзе для исключительного использования для связи со службой в частной сети, расположенной на определенном хосте. Внешние хосты должны знать этот номер порта и адрес шлюза для связи с внутренней службой сети. Часто номера портов хорошо известных Интернет-служб, такие как номер порта 80 для веб-служб (HTTP), используются при переадресации портов, так что общие Интернет-службы могут быть реализованы на узлах в частных сетях.

Типичные приложения включают следующее:

  • Запуск публичного HTTP сервер в частной локальной сети
  • Разрешение Безопасная оболочка доступ к хосту в частной локальной сети из Интернета
  • Разрешение FTP доступ к хосту в частной локальной сети из Интернета
  • Запуск общедоступного игрового сервера в частной локальной сети

Администраторы настраивают переадресацию портов в операционной системе шлюза. В Linux ядра, это достигается правилами фильтрации пакетов в iptables или же сетевой фильтр компоненты ядра. BSD и macOS операционные системы до Йосемити (OS 10.10.X) реализовать его в IPfirewall (ipfw) модуль, а macOS операционные системы, начиная с Йосемити реализовать это в Пакетный фильтр (pf) модуль.

При использовании на шлюзовых устройствах переадресация портов может быть реализована с помощью одного правила для преобразования адреса назначения и порта. (На Linux ядра, это правило DNAT). В этом случае адрес источника и порт не меняются. При использовании на машинах, которые не являются шлюзом сети по умолчанию, адрес источника должен быть изменен на адрес машины трансляции, иначе пакеты будут обходить транслятор и соединение не будет установлено.

Когда переадресация портов реализуется прокси-процессом (например, в брандмауэрах прикладного уровня, НОСКИ через брандмауэры или через прокси-серверы TCP), то фактически пакеты не транслируются, только данные передаются через прокси. Обычно это приводит к тому, что исходный адрес (и номер порта) изменяется на адрес прокси-машины.

Обычно только один из частных хостов может использовать конкретный переадресованный порт одновременно, но иногда возможна конфигурация, позволяющая дифференцировать доступ по исходному адресу исходного хоста.

Unix-подобные операционные системы иногда используют переадресацию портов, когда номера портов меньше 1024 могут быть созданы только программным обеспечением, запущенным от имени пользователя root. Работа с привилегиями суперпользователя (для привязки порта) может представлять угрозу безопасности для хоста, поэтому переадресация портов используется для перенаправления порта с меньшим номером на другой порт с большим номером, чтобы прикладное программное обеспечение могло работать как обычное рабочее системный пользователь с ограниченными правами.

В Универсальный Plug and Play Протокол (UPnP) предоставляет функцию автоматической установки экземпляров переадресации портов в домашних интернет-шлюзах. UPnP определяет Протокол Интернет-шлюза (IGD), который представляет собой сетевой сервис, с помощью которого интернет-шлюз объявляет о своем присутствии в частной сети через Простой протокол обнаружения сервисов (SSDP). Приложение, предоставляющее интернет-сервис, может обнаруживать такие шлюзы и использовать протокол UPnP IGD, чтобы зарезервировать номер порта на шлюзе и заставить шлюз пересылать пакеты своему слушателю. разъем.

Типы переадресации портов

Перенаправление портов можно разделить на следующие конкретные типы: локальное, удаленное и динамическое перенаправление портов.[4]

Перенаправление локального порта

Перенаправление локальных портов - это наиболее распространенный тип перенаправления портов. Он используется, чтобы позволить пользователю подключаться с локального компьютера к другому серверу, то есть безопасно пересылать данные из другого клиентского приложения, работающего на том же компьютере, что и Безопасная оболочка (SSH) клиент. Используя локальную переадресацию портов, можно обойти брандмауэры, блокирующие определенные веб-страницы.[5]

Соединения от SSH-клиента перенаправляются через SSH-сервер на предполагаемый целевой сервер. Сервер SSH настроен для перенаправления данных с указанного порта (который является локальным для хоста, на котором запущен клиент SSH) через безопасный туннель на некоторый указанный хост и порт назначения. Локальный порт находится на том же компьютере, что и клиент SSH, и этот порт является «перенаправленным портом». На том же компьютере любой клиент, который хочет подключиться к тому же целевому хосту и порту, может быть настроен для подключения к перенаправляемому порту (а не напрямую к целевому узлу и порту). После того, как это соединение установлено, клиент SSH прослушивает перенаправленный порт и направляет все данные, отправляемые приложениями, на этот порт через безопасный туннель на сервер SSH. Сервер расшифровывает данные, а затем перенаправляет их на целевой хост и порт.[6]

В командной строке «-L» указывает переадресацию локального порта. Необходимо указать целевой сервер и два номера порта. Номера портов меньше 1024 или больше 49150 зарезервированы для системы. Некоторые программы будут работать только с определенными исходными портами, но в большинстве случаев можно использовать любой номер исходного порта.

Некоторые варианты использования переадресации локальных портов:

  • Использование переадресации локального порта для получения почты [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 также можно использовать для обхода брандмауэров, ограничивающих доступ к внешним веб-сайтам, например, в корпоративных сетях.

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

Рекомендации

  1. ^ «Определение: перенаправление портов». Журнал ПК. Получено 2008-10-11.
  2. ^ Рори Краузе. «Использование переадресации порта ssh для печати в удаленных местах». Linux журнал. Получено 2008-10-11.
  3. ^ Джефф «Крэш» Голдин. «Как настроить домашний веб-сервер». Красная шляпа. Архивировано из оригинал на 2008-10-04. Получено 2008-10-11.
  4. ^ Перенаправление портов OpenSSH
  5. ^ «Перенаправление локальных и удаленных портов и отражение для защищенного IT-клиента версии 7.1 или выше - Техническая записка 2433». Support.attachmate.com. 2012-11-09. Получено 2014-01-30.
  6. ^ а б c "SSH / OpenSSH / PortForwarding - Документация сообщества Ubuntu". Help.ubuntu.com. 2013-12-13. Получено 2014-01-30.
  7. ^ «Пример - использование переадресации локального порта для получения почты (Руководство системного администратора: службы безопасности)». Docs.oracle.com. Получено 2014-01-30.
  8. ^ http://www.vandyke.com (2005-06-12). «Туннелирование с помощью Secure Shell - Приложение A: Перенаправление удаленного порта». Vandyke.com. Получено 2014-01-30.
  9. ^ «Перенаправление локального порта в сравнении с удаленным». NetworkActiv. Получено 8 июн 2014.
  10. ^ «Номер порта FTP 21 - порт 21 TCP». Compnetworking.about.com. 2013-12-19. Получено 2014-01-30.
  11. ^ «Механизм DPF». Pages.cs.wisc.edu. Получено 2014-01-30.
  12. ^ "SSH Dynamic Port Forwarding (Обучающие видеоролики InfoSec серии Hacking Illustrated Series)". Irongeek.com. Получено 2014-01-30.

внешняя ссылка