Port Forwarding: теория и настройка Cisco
Port Forwarding – или проброс портов, который также иногда называемый перенаправлением портов или туннелированием – это процесс пересылки трафика, адресованного конкретному сетевому порту с одного сетевого узла на другой. Этот метод позволяет внешнему пользователю достичь порта на частном IPv4 -адресе (внутри локальной сети) извне, через маршрутизатор с поддержкой NAT .
Обычно peer-to-peer ( p2p ) программы и операции обмена файлами, такие как веб-сервер и FTP, требуют, чтобы порты маршрутизаторов были перенаправлены или открыты, чтобы позволить этим приложениям работать.
Поскольку NAT скрывает внутренние адреса, p2p работает только в ситуации где соединение идет изнутри наружу, где NAT может сопоставлять исходящие запросы с входящими ответами.
Проблема в том, что NAT не разрешает запросы, инициированные извне, но эту ситуацию можно решить с помощью перенаправления портов. Проброс портов может быть настроен для определенных портов, которые могут быть перенаправлены внутренним хостам.
Напомним, что программные приложения в интернете взаимодействуют с пользовательскими портами, которые должны быть открыты или доступны для этих приложений. В различных приложениях используются разные порты. Например, HTTP работает через well-known порт 80. Когда кто-то набирает адрес wiki.merionet.ru то браузер отображает главную страницу нашей базы знаний. Обратите внимание, что им не нужно указывать номер порта HTTP для запроса страницы, потому что приложение принимает порт 80. Если требуется другой номер порта, его можно добавить к URL-адресу, разделенному двоеточием (:). Например, если веб-сервер слушает порт 8080, пользователь вводит http://www.example.com:8080 .
Проброс портов позволяет пользователям в интернете получать доступ к внутренним серверам с помощью адреса порта WAN маршрутизатора и соответствующего номера внешнего порта. Внутренние серверы обычно конфигурируются с частными адресами IPv4 и когда запрос отправляется на адрес порта WAN через Интернет, маршрутизатор перенаправляет запрос на соответствующий сервер в локальной сети. По соображениям безопасности широкополосные маршрутизаторы по умолчанию не разрешают перенаправление любого внешнего сетевого запроса на внутренний хост.
ПРИМЕР С ”ДОМАШНИМ” РОУТЕРОМ
На схеме показан пример, когда проброс портов выполнятся при помощи домашнего SOHO ( small office/home office ) роутера. Переадресация портов может быть включена для приложений при помощи указания внутреннего локального адреса. Пользователь в интернете вводит адрес //wiki.merionet.ru, который соответствует внешнему адресу 212.193.249.136 и пакет попадает на маршрутизатор, который перенаправляет HTTP-запрос на внутренний веб-сервер по адресу IPv4 192.168.1.10, используя номер порта по умолчанию 80.
Можно указать порт, отличный от порта 80 по умолчанию. Тем не менее, внешний пользователь должен знать конкретный номер порта для использования. Подход, используемый для настройки перенаправления портов, зависит от марки и модели маршрутизатора.
НАСТРОЙКА ПРОБРОСА ПОРТА
Реализация перенаправления (проброса) портов с помощью команд IOS аналогична командам, используемым для настройки статического NAT. Переадресация портов — это, по существу, статическая трансляция NAT с указанным номером TCP или UDP-порта.
В общем виде основная команда выглядит так:
- tcp или udp – указывает это tcp или udp порт;
- local-ip – это ip адрес присвоенный хосту внутри сети;
- local-port – устанавливает локальный tcp/udp порт в диапазоне от 1 до 65535. Это номер порта, который слушает сервер;
- global-ip – это уникальный глобальный IP адрес внутреннего хоста, по которому клиенты в интернете будут связываться с ним;
- global-port – устанавливает глобальный tcp/udp порт в диапазоне от 1 до 65535. Это номер порта снаружи, по которому будут связываться клиенты;
- extendable – эта опция применяется автоматически. Она разрешает пользователю настраивать двойственные статические трансляции, если они идут на один и тот же адрес;
Router(config)#Ip nat inside source static tcp 192.168.1.10 80 212.193.249.136:8080
Router(config)# interface serial0/0/0
Router(config-if)# ip nat outside
Router(config)# interface serial0/0/1
Router(config-if)# ip nat inside
Показана настройка для данной схемы, где 192.168.1.10 — внутренний локальный адрес IPv4 веб-сервера, прослушивающий порт 80. Пользователи получат доступ к этому внутреннему веб-серверу, используя глобальный IP-адрес 212.193.249.136:, глобальный уникальный публичный IPv4-адрес. В этом случае это адрес интерфейса Serial 0/0/1. Глобальный порт настроен как 8080. Это будет порт назначения, вместе с глобальным адресом 212.193.249.136 для доступа к внутреннему веб-серверу. Как и другие типы NAT, перенаправление портов требует конфигурации как внутренних, так и внешних NAT-интерфейсов.
Подобно статическому NAT, команда show ip nat translations может использоваться для проверки переадресации портов.
Router# show ip nat translations
Pro Inside Global Inside Local Outside local Outside global
tcp 212.193.249.136:8080 192.168.1.10:80 212.193.249.17:46088 212.193.249.17:46088
tcp 212.193.249.136:8080 192.168.1.10:80 — —
Проброс портов
Иногда возникает необходимость доступа извне к устройству, которое расположено в локальной сети. Например, если это IP-видеокамера или сервер используемый для игр, возможно, требуется использовать удаленное управление каким либо из компьютеров. Таких устройств может быть достаточно много в локальной сети. В этой статье разберемся, как осуществляется доступ с помощью проброса портов.
О пробросе портов
Локальная сеть (LAN) организована таким образом, что у устройств, находящихся в ней есть доступ во внешнуюю сеть (WAN), в то время как из глобальной сети получить доступ в локальную не получится.
Зачастую требуется открыть доступ к устройствам, находящимся в локальной сети. Например, если у вас есть FTP сервер и нужно, чтобы знакомые могли к нему подключаться, скачивать и обновлять файлы. Для того, чтобы получить доступ к файлам, хранящимся на нем, требуется открыть порты. В этом случае сделать так, чтобы пакеты пришедшие на 21 порт роутера (стандартный порт FTP) перенаправлялись на 21 порт компьютера, находящегося в локальной сети, на котором запущен FTP сервер.
Не обязательно, чтобы номер открытого порта на роутере был таким же, как и на сервере.
После перенаправления портов, TCP и (или) UDP пакеты, пришедшие на заданный порт роутера, будут перенаправлены на нужный порт устройства, находящегося в локальной сети. Для этого нужно, чтобы IP-адрес роутера был белый (статический внешний IP-адрес). О белых и серых IP адресах будет рассказано ниже.
Вот еще пример — есть несколько видеокамер в локальной сети, у каждой из них свой IP-адрес. С помощью программы удаленного управления можно подключаться к устройствам по определенному порту. Видеокамеры могут быть установлены в локальной сети одного объекта. Если мы хотим получить доступ к ним через интернет, это можно организовать с помощью проброса портов.
Теперь разберемся по пунктам как это все должно быть устроено, на что следует обратить внимание.
Внешний IP-адрес
IP-адрес может быть:
- Внешний статический IP-адрес, который закреплен за вашим роутером. Обычно выдается провайдером за дополнительную плату, в некоторых случаях предоставляется за дополнительную абонентскую плату.
- Внутрисетевой статический. В этом случае к вам подключиться можно только внутри сети провайдера. Извне этот IP-адрес не будет виден.
- Внешний динамический. Этот вариант часто встречается, если вы выходите в интернет через 3G/4G роутер. Вам выдается IP адрес из свободных, но через какое-то время он может измениться, например, после перезагрузки роутера.
- Внутрисетевой динамический. IP-адрес не будет виден из интернета, так же он может измениться со временем.
Внешние IP-адреса называются белыми, в то время как внутренние, к которым нет возможности получить доступ из глобальной сети – серыми.
Узнать свой IP-адрес можно с помощью разных сервисов, например, 2ip.ru, myip.ru, myip.com.
Безопасность
Так как в случае проброса портов будет открыт доступ к устройствам, находящимся внутри вашей локальной сети, особое внимание следует уделить безопасности:
- Для подключения к устройству должен использоваться надежный пароль;
- Если передается конфиденциальная информация, то она должна быть в шифрованном виде.
В этом случае злоумышленник может:
- Установить на компьютер свои программы;
- Перенастроить локальную сеть;
- Отслеживать и влиять на обмен данными по локальной сети.
Подключение
Перед настройкой проброса портов, следует подключиться к роутеру. У роутера обычно по умолчанию IP-адрес 192.168.0.1 или 192.168.1.1. Логин по умолчанию admin, а пароль может быть тоже admin, иногда 1234. Настройки роутера по умолчанию указываются на наклейке с тыльной стороны.
Вводим адрес роутера в браузере. На рисунке фото выше это 192.168.1.1, на запрос имени пользователя и пароля – заполняем соответствующие поля. После этого попадаем в главное меню роутера.
Установка статических адресов
У оборудования, к которому надо дать доступ из внешней сети, могут быть адреса в локальной сети:
- Статические, то есть заданные вручную на каждом устройстве;
- Динамические, раздаваемые DHCP сервером из пулла адресов.
При использовании DHCP сервера, если у устройств заданы статические IP-адреса, следует проследить, чтобы они не были из диапазона раздаваемых динамически. Это для того, чтобы новое устройство, подключенное к сети, случайно не получило такой же IP-адрес.
Если же IP-адрес получен динамически, то следует его закрепить за устройством по MAC адресу. Это делается в настройках DHCP сервера. На рисунке ниже показан пример резервирования адреса. После резервирования, следует перезагрузить маршрутизатор.
Настройка проброса портов
После того, как все подготовили, можно настроить проброс портов на роутере. Это осуществляется путем заполнения таблицы, в которой указаны:
- Порт роутера;
- IP устройства;
- Порт устройства.
Роутер будет проверять все входящие пакеты. IP-пакеты пришедшие на указанный порт роутера будут перенаправлены на выставленный порт устройства.
В настройках переадресации добваляем новый виртуальный сервер.
Запись настраивается следующим образом:
- Порт сервиса – это как раз тот порт, по которому будут подключаться из интернета;
- Внутренний порт – это порт устройства, к которому надо открыть доступ;
- IP-адрес – это адрес устройства в локальной сети
- Протокол – тут можно выбрать протокол TCP или UDP. Можно выбрать “ВСЕ”, тогда будут перенаправляться оба протокола.
- Состояние – здесь выбираем “включено”. При не надобности, можно отключить проброс, не удаляя запись.
Пункт “стандартный порт сервиса” предназначен только для того, чтобы упростить выбор портов. При выборе нужного сервиса, их номера просто подставятся в поля “порт сервиса” и “внутренний порт”. Ниже будут рассмотрены основные сервисы.
После того как все настройки выполнены, следует их сохранить.
Номера портов
Следует обратить внимание, что номера портов могут задаваться в диапазоне от 0 до 65536.
На компьютере эти порты делятся на следующие группы :
- Системные (от 0 до 1023);
- Пользовательские (от 1024 до 49151);
- Динамические (от 49152 до 65535).
Если для проброса портов вам нужно выбрать любой порт, который будет открыт на роутере, то без особой необходимости желательно не использовать системный диапазон. Лучше всего в таком случае открывать порты на роутере из динамического диапазона.
Стандартные сервисы
Для организации доступа к сервисам, некоторые роутеры помогают правильно выбрать номер порта автоматически. Таким образом, можно сделать так, что при обращении к порту FTP из интернета, обращение переадресовывалось на FTP сервис, запущенный на одном из локальных компьютеров. Рассмотрим основные:
Сервис | Порт | Пояснение |
DNS | 53 | Преобразование символьного наименования в IP-адрес |
FTP | 21 | Хранение и передача файлов |
GOPHTER | 70 | Хранение и передача документов |
HTTP | 80 | Получение информации с сайтов |
NNTP | 119 | Сервер новостей |
POP3 | 110 | Получение почты |
PPTP | 1723 | Защищенное соединение |
SMTP | 25 | Прием и передача почты |
SOCK | 1080 | Передача минуя межсетевой экран |
TELNET | 23 | Управление в текстовом виде |
Брандмауэр
После настройки проброса портов на роутере все должно работать. Но то же делать, если все равно не удается подключиться? В таком случае следует проверить настройки антивируса и брандмауэра Windows на компьютере, к которому осуществляется подключение. Возможно они считают подключения подозрительными и не дают доступ. В этом случае в брандмауэре следует прописать правило, разрешающее подключение к заданному порту.
В настройки брандмауэра проще всего попасть двумя способами:
- Записываем в строке поиска “Брандмауэр Защитника Windows”. После ввода первых нескольких букв, находится нужное приложение.
- Выполнить “firewall.cpl”. Для этого надо одновременно нажать комбинации клавиш + , в поле поле открыть записываем команду и нажимаем “OK”.
В дополнительных параметрах выбрать правила для входящих подключений. Там создаем новое правило. Рассмотрим это подробно.
Здесь показано основное окно настроек брандмауэра . Выбираем дополнительные параметры.
Два раза щелкаем мышью по пункту “Правила для входящих подключений”. После этого в правой колонке, которая называется “Действия” жмем на “Создать правило…”.
Выбираем тип правила “Для порта” и жмем далее.
Выбираем необходимый протокол. В большинстве случаев это TCP. Указываем локальный порт, для которого мы ранее настраивали проброс порта на маршрутизаторе. Можно задавать сразу несколько портов через запятую или диапазон через “-“.
Выбираем “Разрешить подключение”.
Указываем галочками профили.
Пишем свое имя для правила. Желательно выбрать такое имя, чтобы потом было легко его найти, в случае если решити отключить это правило или видоизменить. Можно для себя оставить пометку в виде описания, чтобы потом было легче разобраться для чего это правило было создано.
После того как параметры были настроены, жмем кнопку “Готово”. Созданное правило автоматически добавится в список правил для входящих подключений и активизируется. При необходимости его можно редактировать, отключить или удалить.
Отключение брандмауэра
В основном меню брандмауэра имеется пункт “Включение и отключение брандмауэра Защитника Windows”.
Выбрав этот пункт, можно отключить брандмауэр. Но это делать не рекомендуется, разве что для проверки того, что именно брандмауэр влияет на то, что не удается открыть порт.
После проверки не забудьте включить брандмауэр.