Router port forwarding is used to allow the remote computers to connect to a specific service or computer on a Local Area Network. Now the question is why do we need it. And we will discuss all of these things one by one.
Use Cases :
- Suppose you are at the office and want to connect to your computer which is present in your house, the computer present at the house is connected to the WiFi of house which is a LAN(Local Area Network) one of the ways to connect to your house computer is port forward ssh(port 22) in your Router to your computers IP address and open ssh port on your computer. Now, who so ever will try to ssh to your public IP address will be forwarded to your computer present at your house.
- Suppose you want to host a website on your computer and you want everyone on the internet can access your website, this can be achieved by port forwarding. What you have to do is that port forward HTTP (port 80) or HTTPS(port 443) from your router to your computer on which your website is deployed. Hurray Knows anyone with your public IP address can access your website.
These are only two used cases that explain what is the need for Port forwarding, you can do much more like accessing the camera connecting to your LAN, accessing the printer connected on your LAN from anywhere in the world, you can also host a Minecraft server on your machine and invite friends to connect with it.
How To Implement Port Forwarding On Your Router :
Before starting with how to implement port forwarding two basic things are needed :
- Your Public IP address must be static because most of the normal internet connections have dynamic public addresses i.e the IP address changes after few hours or few days, so each time you have to connect to the machine present at your LAN you have to get your public IP address. Though for some users dynamic IP address will not be a big issue but in case you don’t want to know the IP again and again then you can ask your ISP to provide you a static IP.
- The 1st requirement was not that necessary the second requirement is very much necessary. You have to assign your machine(To whom you want to connect remotely) a static private IP address and this can be done very easily through your router and from your machine itself. This requirement is necessary because during port forwarding on the router we have to mention the IP address of the machine to which we want to forward the port so if the private IP address of the machine will be dynamic we have to configure port forwarding on the router again and again which is feasible.
Procedure :
Step-1 :
Open the default gateway of your WiFi router usually the IP address of the default gateway for most of the routers is http://192.168.1.1 find your router’s gateway address and open it in your browser this will open the routers setting page login into this page.
Step-2 :
After login search for NAT, Virtual Server, and after that enter the port or service you want to forward, after that enter the IP address of the machine to which you want to. forward that port(Please note that this is the general procedure for every router, for your router it may vary slightly)
Step-3 :
Now you can easily access your machine with your public IP address remotely
Note –
Please note that if your machine(to whom you want to connect remotely) have a firewall installed then you have to manage that firewall to allow the remote requests
Last Updated :
18 Jan, 2021
Like Article
Save Article
На чтение 10 мин Просмотров 5.1к.
Максим aka WisH
Высшее образование по специальности «Информационные системы». Опыт работы системным администратором — 5 лет.
Задать вопрос
Проброс портов потребуется вам дома, если нужно получить доступ к какому-то домашнему оборудованию из интернета. Маршрутизатор не позволяет делать такие вещи напрямую, это служит дополнительной защитой от атак из глобальной сети. Иногда требуется дать подключение из внешней сети к внутреннему устройству. Тогда и пригодится перенаправление портов.
Содержание
- Зачем нужен проброс портов
- Что необходимо для выполнения перенаправления
- Ручной проброс через кабинет роутера
- Как пробросить порты с помощью
- Windows
- iptables в Линукс
- SSH-туннеля
- Заключение
Зачем нужен проброс портов
Домашние устройства находятся в локальной сети. Для доступа к интернету они используют маршрутизатор. Через него проходят данные от каждого домашнего устройства и отправляются в интернет. После получения ответа он сам раздает нужные данные обратно. Получается такая ситуация, что домашние девайсы видят интернет и могут получать из него данные, а из интернета виден только маршрутизатор.
Он выполняет роль сетевого шлюза, который защищает локальную сеть от проникновения. Поэтому и ценятся устройства, имеющие встроенные системы защиты, с их помощью внутренняя сеть остается в большей безопасности. Если вы не знаете, кто шлет сигналы в интернет, то и подобрать ключи к нему не сможете или это будет трудно.
Есть вещи, которые почти бесполезны при использовании в локальной сети. Это камеры видеонаблюдения или FTP-сервера. Доступ к камерам нужен всегда, чтобы в любой момент можно было посмотреть, что происходит дома или на другой территории. FTP для домашнего использования заводить смысла нет, есть способы организовать обмен данными проще. Так что для его использования тоже потребуется подключение из интернета.
Чтобы подключаться к таким девайсам используют переадресацию. На маршрутизатор приходит пакет с указанием номера порта, а тот его переадресуют напрямую камере или серверу. Получается, что человек из интернета общается сразу с устройством, минуя роутер. Такой способ позволяет получать данные напрямую, но при его перехвате, проникнуть в сеть становится проще.
Подключение устройств для прямого обмена данными с интернетом повышает опасность для домашней сети, но иногда другого выбора нет.
Что необходимо для выполнения перенаправления
Для начала вам нужен белый IP-адрес. Белый – это значит статический адрес. Обычно при каждом подключении провайдер выдает вам адрес из своего пула свободных IP. Каждый раз он оказывается разным, а для подключения его нужно знать. Чтобы избежать проблем с подключением, обратитесь к провайдеру и попросите, чтобы он дал вам статический адрес.
Услуга по предоставлению постоянного адреса платная, но сумма в месяц получается небольшая. Так что заплатите, если такая услуга предоставляется. Подключение такой услуги несет и угрозу, потому что вы всегда доступны по этому адресу. Это упрощает попытки подключение к вашему оборудованию злоумышленников.
Если провайдер не оказывает услуг по покупке белых адресов, то посмотрите в параметры роутера. Некоторые из них умеют работать в dynDNS, который можно использовать вместо адреса. Если на роутере такой настройки нет, то воспользуйтесь одним из сервисов, которые предоставляют услуги по использованию имени. После подключения к такому сервису, к роутеру можно обращаться по имени, а не по адресу.
Теперь на том оборудовании, которое «смотрит» в интернет настраивается переадресация портов. Прописываете, что данные, пришедшие на такой-то порт направляются такому-то устройству. Здесь тоже можно указать порт, на который они пойдут, если это важно. Теперь все полученные пакеты в неизменном виде отправятся вашему домашнему девайсу. Если порт не указывать, то все пакеты идут маршрутизатору, а оттуда распределяются стандартным порядком.
Ручной проброс через кабинет роутера
Проще всего перенаправить пакеты через настройку роутера. У них обычно есть встроенные параметры, которые называются «переадресация», «проброс портов», «port forwarding», «виртуальные порты» или каким-то похожим образом. Если название не очевидно, то лучше найти инструкцию для своей модели.
На Dlink можно сделать через мастер настройки виртуального сервера. На главном экране нажмите на него, откроется еще одно окно, в котором выберите внутренний IP, на который будут передавать пакеты.
Или можно настроить стандартный проброс, для этого зайдите в расширенные настройки, потом «Виртуальные серверы» в разделе «Межсетевой экран». В открывшемся коне нажмите на «Добавить».
Здесь заполните данные для установки соединения. Главное – это поставить значения во внешнем и внутреннем порте, чтобы маршрутизатор понимал, откуда и куда переправлять данные. Тут же можно указать и внешние с внутренними адресами.
Как пробросить порты с помощью
Бывает и так, что внешним устройством в сети является компьютер или специально созданный для этого сервер. Это не значит, что вам придется обязательно ставить роутер или настраивать все заново, большинство систем позволяет пробросить порты. Здесь покажем несколько примеров того, какие параметры нужно устанавливать, чтобы все заработало.
Если у вас более экзотические варианты и указанные способы вам не подходят, то придется смотреть инструкции конкретно под вашу версию операционной системы. Хотя что-то более сложное обычно носит специализированный характер и на домашних компьютерах не стоит.
Windows
Откройте меню пуска и наберите там «cmd», по найденной программе щелкните правой кнопкой мыши и выберите в появившемся меню «Запуск от имени администратора». В открытой командной строке введите следующую команду:
netsh interface portproxy add v4tov4 listenaddress=xxx.xxx.xxx.xxx listenport=nnn connectaddress=xxx.xxx.xxx.xxx connectport=nnn
В команде нужно установить эти данные:
- listenaddress – это тот адрес, с которого будут передавать пакеты.
- listenport – порт на адресе, принимающем пакеты, который будет прослушиваться для получения информации.
- connectaddress — удаленный или локальный адрес на который перенаправляются соединения.
- connectport — удаленный или локальный порт на который перенаправляются соединения.
Чтобы посмотреть все созданные правила введите netsh interface portproxy show all, после этого списком отобразятся все доступные перенаправления. Для удаления используйте netsh interface portproxy delete v4tov4, только впишите тут те адреса, которые были прописаны в начальной команде.
Эти способы работают и в Windows 10, и в других системах, начиная с Windows Server 2003, в котором и добавили возможность использования этих команд. Во всем, что было до него так сделать не получится. Вот только такими системами лучше не пользоваться, потому что их поддержка давно отменена, так что там нет обновлений и устранения угроз безопасности.
iptables в Линукс
В линуксе действовать будем с помощью таблиц маршрутизации iptables. Действовать будем с помощью команд, хотя в некоторых системах, таких как Linux Ubuntu есть и графическая оболочка, через которую можно провести такие операции.
Сначала включаем возможность пробрасывать порты в принципе. Для этого вводим команду:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
Теперь открываем /etc/sysctl.conf и ищем там строку #net.ipv4.ip_forward=1, удаляем с неё значок комментария, чтобы она стала снова активна. Теперь пишем команду:
sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
Вместо enp0s3 подставляем название вашего внешнего интерфейса, вместо enp0s8 ставим название внутреннего интерфейса. Вся этак команда разрешает проброс портов и передачу данных из внешней сети во внутреннюю.
Теперь пишем сами правила для перенаправления:
- sudo iptables -t nat -A PREROUTING -p tcp -d адрес внешнего интерфейса —dport внешний порт -j DNAT —to-destination внутренний адрес:внутренний порт
- sudo iptables -t nat -A POSTROUTING -p tcp —sport внутренний порт —dst внутренний адрес -j SNAT —to-source внешний адрес:внешний порт
В тех местах, где написан курсив, вам нужно проставить свои значения. Первая команда будет отправлять все поступившие на определенный порт внешнего интерфейса данные на определенный порт по внутреннему адресу. Вторая команда делает обратную операцию, отправляет данные с определенного порта устройства внутренней на определенный порт внешней сети.
Теперь нужно создать файл, в который запишем наши новые правила, на случай, если они слетят. Выполняем команду:
- sudo nano /etc/nat
Вписываем в файл наши созданные правила. - sudo iptables -t nat -A PREROUTING -p tcp -d адрес внешнего интерфейса —dport внешний порт -j DNAT —to-destination внутренний адрес:внутренний порт
- sudo iptables -t nat -A POSTROUTING -p tcp —sport внутренний порт —dst внутренний адрес -j SNAT —to-source внешний адрес:внешний порт
- sudo nano /etc/network/interfaces
Открываем файл интерфейсов. - Дописываем в конце строчку pre-up /etc/nat. Это позволит подгружать файл с командами после каждой перезагрузки системы.
Если вдруг захотите посмотреть все действующие правила, то введите в консоли sudo iptables -L -t nat. Отобразятся все действующие правила.
SSH-туннеля
SSH-туннели используются для безопасного внешнего доступа и передачи данных из интернета во внутреннюю сеть. Чем-то их действие похоже на организацию VPN-сервера и передачу данных внутри этой приватной сети.
Только если впн бывает еще и общим, то про SSH этого не скажешь. Такие туннели организуют для безопасной связи со своей локальной сетью или каким-то устройством в нем. Если у вас уже организован доступ к какому-то оборудованию внутри сети, то можно будет пробросить порт через него, чтобы получить нужный доступ.
SSH-туннели используют для безопасно передачи данных и подключению к свое оборудованию, но не к каждому девайсу так удобно подключаться.
Проблема возникает такая же, как и в случае с роутерами. Если у вас построен полноценный туннель, то он может быть организован на Линуксе, виндовсе или используя какую-то операционную систему с вашего маршрутизатора. При этом настройка параметров и ограничений тоже лежит на вас.
Команда для проброски портов выглядит так на большинстве устройств:
$ ssh -f -N -R 2222:10.11.12.13:22 username@99.88.77.66
Теперь доступ к устройству можно получить по адресу http://localhost:2222 или командой $ ssh -p2222 localhost. Все это делается через ваш хост 99.88.77.66 к которому уже построен и настроен туннель, так что само его построение не рассматриваем.
Заключение
Проброс портов требуется в нескольких случаях, но всегда нужен для получения доступа к какой-то информации. Проводить его стоит с осторожностью, также хорошо, если вы сможете как-то дополнительно защитить оборудования, к которому теперь подключаетесь из сети. Сам белый адрес увеличивает шансы на взлом оборудования, а если иметь еще и незащищенное соединение через один из портов, то шансы увеличиваются.
Проблемы возникнут и при параноидальной настройке фаерволлов и антивирусов на компьютере или маршрутизаторе. Лучше заранее создайте исключения для каждого проброшенного порта и будущего соединения. Если этого не сделать, то в случайный момент времени антивирус может зарезать это соединение. Фаерволл-то его сразу не пропустит, если оно ему не нравится. А вот комплексные решения могут подложить свинью в самый неожиданный момент.
Порты позволяют сетевым и подключенным к интернету устройствам взаимодействовать через указанные каналы. Хотя серверы с назначенными IP адресами могут подключаться к интернету напрямую и делать порты публично доступными, система, находящаяся за роутером в локальной сети, может оказаться недоступной из интернета. Технология проброса портов (port forwarding) позволяет преодолеть это ограничение и сделать устройства доступными публично.
Сетевые сервисы и приложения, запущенные на различных устройствах, используют порты с определенными номерами с целью инициации соединений и организации коммуникаций. Разные порты могут использоваться одновременно для разделения типов трафика и запросов. Обычно порты ассоциируются с определенными службами, чтобы клиент мог подключиться к серверу по определенному порту, а сервер принять соединение и ответить соответствующим образом.
Ниже представлены наиболее распространенные порты:
- 21: FTP (File Transfer Protocol; Протокол передачи файлов)
- 22: SSH (Secure Shell; Безопасный шелл)
- 23: Telnet (Teletype Network; Телетайпная сеть)
- 25: SMTP (Simple Mail Transfer Protocol; Простой протокол передачи электронной почты)
- 80 : HTTP (Hypertext Transfer Protocol; Протокол передачи гипертекста)
- 194: IRC (Internet Relay Chat; Ретранслируемый интернет-чат)
- 443: HTTPS (HTTP с поддержкой шифрования)
Если вы читаете это руководство в интернете при помощи веб-браузера, то вероятно используете протокол HTTPS, работающий на порту 443.
Хотя порты упрощают задачу идентификации и обработки определенных запросов, соглашение о нумерации портов является стандартом, но не правилом. Порты могут использовать для любых задач при условии, что соединение между клиентом и сервером на указанном порту использует соответствующий протокол.
В веб-браузерах нестандартные HTTP порты могут быть указаны после двоеточия в конце IP адреса или URL с целью загрузки содержимого через этот порт. Если веб-сервер запущен на локальной машине на порту 8080, а не более общепринятом 80 порту, возможно получить доступ к этому серверу, если ввести в браузере адрес localhost:8080 или 127.0.0.1:8080. Если же ввести один из вышеуказанных адресов без суффикса «:8080» та же самая страница загружена не будет.
localhost:8080
Хотя любой открытый порт должен позволять попытки соединения, чтобы эти попытки совершились, у клиента должен быть сетевой доступ к целевому устройству. В случае с сервером, подключенным к интернету напрямую, или при соединении через локальную сеть, сложностей обычно не возникает. Проблема появляется в тот момент, когда мы пытаемся подключиться к порту у устройства, находящегося за роутером или фаерволом.
Большинство домашних или офисных сетей подключено к интернету через роутер, который регулирует доступ и аккумулирует трафик на одном IP адресе. Все запросы и пакеты отсылаются через роутер перед обратным возвращением ответов на соответствующие устройства, сделавшие изначальные запросы. По умолчанию роутеры не обрабатывают входящие запросы на определенных портах. Если кто-то пытается подключиться к роутеру через SSH, роутер не сможет ни обработать этот запрос, ни отправить этот запрос дальше по цепочке, поскольку не знает целевого адресата. Эту проблему как раз и решает настройка проброса портов внутри роутера.
Шаг 1. Выяснение IP адреса роутера
C:\> ipconfig/all Windows IP Configuration Host Name . . . . . . . . . . . . : █████████ Primary Dns Suffix . . . . . . . : █████████ Node Type . . . . . . . . . . . . : █████████ IP Routing Enabled . . . . . . . : █████████ WINS Proxy Enabled . . . . . . . : █████████ Ethernet adapter Ethernet: Connection-specific DNS Suffix . : █████████ Description . . . . . . . . . . . : Intel(R) PRO/1000 MT Desktop Adapter Physical Address . . . . . . . . : █████████ DHCP Enabled . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : █████████ IPv4 Address . . . . . . . . . . : █████████ Subnet Mask . . . . . . . . . . . : 255.255.255.0 Lease Obtained . . . . . . . . . : █████████ Lease Expires . . . . . . . . . . : █████████ Default Gateway . . . . . . . . . : 192.168.0.1 DHCP Server . . . . . . . . . . . : 192.168.0.1 DHCPv6 IAID . . . . . . . . . . . : █████████
Обычно у роутеров доступна административная панель по протоколу HTTP (порт 80). В большинстве случаев для доступа используется локальный IP адрес роутера (192.168.0.1 или 192.168.1.1). В Microsoft Windows подключенный роутер (или шлюз, используемый по умолчанию) легко обнаружить при помощи команды ipconfig/all.
В Линуксе та же самая задача решается при помощи утилиты netstat. Откройте терминал и введите следующую команду для выяснения IP адреса подключенного роутера.
~$ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 enp0s25 █████████ ████████████ █████████ ███ ██████ ████████████ █████████ ████████████ █████████ ███ ██████ ████████████
В macOS используется та же самая команда:
~% netstat -rn Routing tables Internet: Destination Gateway Flags Netif Expire default 192.168.0.1 UGSc en0 █████████ █████████ █████████ ███ ████ █████████ █████████ █████████ ███ ████ █████████ █████████ █████████ ███ ████ █████████ █████████ █████████ ███ ████ █████████ █████████ █████████ ███ ████ █████████ █████████ █████████ ███ ████
Шаг 2. Доступ к конфигурационной панели роутера
После выяснения локального IP адреса роутера вы можете получить доступ к конфигурационной панели, если введете адрес в браузере, как и в случае с обычным URL (у некоторых роутеров, например, предусмотрено мобильное приложение, и задача упрощается).
Рисунок 2: Форма авторизации конфигурационной панели роутера
После загрузки панели управления необходимо выполнить авторизацию. Имя пользователя и пароль могут быть установлены производителем или интернет-провайдером или вами. Эту информацию можно найти в документации на роутер или на корпусе.
Хотя у разных роутеров панель управления может отличаться, в целом процедура настройки примерно одинаковая. После авторизации зайдите в раздел «Advanced» или найдите, где находится раздел «Port Forwarding». В нашем случае соответствующий раздел называется «Advanced Port Forwarding Rules».
Рисунок 3: Раздел с настройкой проброса портов
Шаг 3. Настройка правил проброса портов
Для демонстрации правил проброса портов рассмотрим простейший случай, когда у пользователя есть устройство Raspberry Pi, подключенное домашнему сетевому роутеру. На Pi запущена служба SSH, позволяющая залогиниться на устройстве при наличии корректного имени пользователя и пароля. Текущий IP адрес устройства Raspberry Pi — 192.168.0.105.
-
Правило было названо как «RBPi SSH» с целью упрощения идентификации в будущем. В целом имя правила полностью зависит от ваших личных предпочтений и не влияет на используемые порты.
-
Диапазон параметра Public Port (иногда именуемого как Source Port) установлен от 22 до 22 (стандартный порт протокола SSH). Этот порт роутер сделает доступным через интернет. Через этот же порт пользователь будет подключаться к Raspberry Pi.
-
Параметр Private Port (иногда именуемый как Destination Port) установлен как 22, поскольку демон SSH на устройстве Pi работает на 22 порту.
-
Параметр Traffic Type установлен как TCP, поскольку по протоколу SSH передается TCP трафик.
-
Параметр IP Address соответствует IP адресу устройства Pi в локальной сети (192.168.0.105).
-
Наконец, слева от правила отмечен флажок, чтобы правило стало активным.
У вашего роутера интерфейс может отличаться, но в целом суть настроек остается неизменной.
Рисунок 4: Настройки правила проброса портов для авторизации через протокол SSH
Вышеуказанное правило означает, что пользователь может подключаться по IP адресу роутера по протоколу SSH через интернет и впоследствии будет перенаправлен на сервер устройства Raspberry Pi. Эту схему можно использовать для создания веб-сервера, работающего на 80 порту, или, например, для прикрепления сервера видеоигр к указанному порту. Учитывайте, что у некоторых провайдеров есть правила, касательно хостинга и другого контента, которые нужно учитывать перед тем, как сделать доступным сервер из локальной сети.
Шаг 4. Защита от сканирования портов и атак
Одна из проблем, возникающая во время открытия портов в интернете при помощи проброса – порты становятся доступными для сканирования. Злоумышленники в интернете могут использовать автоматизированные средства для сканирования диапазонов IP адресов или утилиты навроде Shodan для поиска потенциально уязвимых устройств с определенными активными портами. Порты протокола SSH являются основной целью, поскольку дают доступ к шеллу, при помощи которого можно украсть данные или установить вредоносное приложение.
В случае проброса портов для защиты от сканирования может оказаться полезным поменять публичный или исходный порт в настройках роутера. Вместо распространенного порта 22, на который настроены все сканеры, можно указать нестандартный порт (например, 9022).
Рисунок 5: Настройка SSH на нестандартный порт
После смены порта клиент при подключении к устройствам через SSH из интернета должен будет указать порт 9022. Попытка подключиться к порту 22 извне окажется неудачной, поскольку проброс будет идти от порта 9022, а не от порта 22.
Вы также можете использовать сервис типа Fail2ban (фреймворк для защиты от внешний вторжений), предназначенного для защиты сети от атак с использованием брутфорса, после того как злоумышленник найдет активный порт. Утилиты навроде Fail2ban ограничивают количество попыток авторизации, выполняемых из внешней сети.
Проброс портов в Линуксе на системном уровне
Проброс портов на уровне роутера может быть полезным для настройки сетей, доступных через интернет. В Линуксе ту же самую задачу можно решить на системном уровне.
Схожим образом, что и порт роутера связывается с указанным портом устройства внутри локальной сети, один порт можно связать с другим для упрощения использования. Например, при установке ханипота Cowrie демон SSH перемещается от порта 22 на порт 9022. Затем порт 2222, где работает ханипот, перенаправляется на порт 22, который будет доступен в интернете и, как следствие, с высокой степенью вероятности просканирован и атакован.
Для конфигурирования локального проброса портов в Линуксе вначале нужно выполнить следующую команду с целью установки в параметр ip_forward значения 1 (в этом случае проброс портов активируется на уровне операционной системы):
~$ echo "1" > /proc/sys/net/ipv4/ip__forward
Как только IP форвардинг включен, убедитесь, что вы знаете текущий порт сервиса, который нужно пробросить. Во время конфигурирования ханипота Cowrie эта задача решается посредством настройки демона SSH на порт 9022.
GNU nano 2.7.4 File: /etc/ssh/sshd_config Modified # $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. Port 9022 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
Наконец, для включения локального проброса портов, можно воспользоваться iptables. Команда ниже перенаправляет запросы с порта 22 на порт 2222, где эти запросы обрабатывает ханипот.
~$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
Другие сферы, где используется проброс портов
Перенаправление портов может использоваться и в других задачах. Например, порт 8080 может быть перенаправлен на порт 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-адрес можно уточнить у интернет-провайдера.
Внешние 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». Для этого надо одновременно нажать комбинации клавиш <Win>+<R>, в поле поле открыть записываем команду и нажимаем «OK».
В дополнительных параметрах выбрать правила для входящих подключений. Там создаем новое правило. Рассмотрим это подробно.
Здесь показано основное окно настроек брандмауэра . Выбираем дополнительные параметры.
Два раза щелкаем мышью по пункту «Правила для входящих подключений». После этого в правой колонке, которая называется «Действия» жмем на «Создать правило…».
Выбираем тип правила «Для порта» и жмем далее.
Выбираем необходимый протокол. В большинстве случаев это TCP. Указываем локальный порт, для которого мы ранее настраивали проброс порта на маршрутизаторе. Можно задавать сразу несколько портов через запятую или диапазон через «-«.
С точки зрения безопасности, тут важно выбирать не все локальные порты, а именно указать нужный.
Выбираем «Разрешить подключение».
Указываем галочками профили.
Пишем свое имя для правила. Желательно выбрать такое имя, чтобы потом было легко его найти, в случае если решити отключить это правило или видоизменить. Можно для себя оставить пометку в виде описания, чтобы потом было легче разобраться для чего это правило было создано.
После того как параметры были настроены, жмем кнопку «Готово». Созданное правило автоматически добавится в список правил для входящих подключений и активизируется. При необходимости его можно редактировать, отключить или удалить.
Отключение брандмауэра
В основном меню брандмауэра имеется пункт «Включение и отключение брандмауэра Защитника Windows».
Выбрав этот пункт, можно отключить брандмауэр. Но это делать не рекомендуется, разве что для проверки того, что именно брандмауэр влияет на то, что не удается открыть порт.
После проверки не забудьте включить брандмауэр.
Для работы интернета в офисах часто используются устройства Микротик. Они славятся своей стоимостью и функциональностью. Однако настройка подключений на роутере Mikrotik может вызывать определенные вопросы даже у опытных администраторов.
Далее предстоит научиться делать проброс порта на роутере Микротик. Предложенная информация будет особо полезна новичкам, которые ранее не имели существенного опыта в настройке маршрутизатора.
Что такое проброс
Проброс портов (Port Forwarding) Mikrotik – это одна из наиболее востребованных конфигураций роутера. Она представлена технологией, позволяющей обращаться к узлам, размещенным за маршрутизатором, путем перенаправления трафика. Делается это для определенных портов. «Сигнал» с внешнего адреса маршрутизатора перенаправляется на внутренний адрес узла в заданной локальной сети. Соответствующая операция становится возможной за счет NAT.
NAT (или Network Address Translation) – способ преобразования сетевых адресов. Основное предназначение технологии заключается в экономии белых IP-адресов, а также в повышении уровня безопасности Сети. Результат достигается за счет ограничений, устанавливаемых относительно обращений к внутренним хостам LAN снаружи, а также возможностей скрытия сервисов подменой портов.
Классический тип NAT технологии предполагает, что количество одновременных выходов в интернет из локальной сети за пределами доступа «ната» ограничивается количеством свободных ports TCP/UDP.
По умолчанию для LAN-сетей, расположенных за NAT, доступ к интернету предоставляется. Из глобальной сети в NAT-сеть попасть не получится. Исключение есть, причем всего одно – это проброс портов. Настроить его не всегда легко.
Проброс портов на Mikrotik роутере через NAT подразделяется на несколько видов:
- Destination NAT. Это изменение IP-адреса назначение, а также выполнение обратной функции для ответа. Преобразование адреса получателя получило название «dst-nat».
- Source NAT. Так называется изменение IP-адреса источника и выполнение обратной функции для ответа. Процедура называется src-nat.
Все остальные манипуляции в роутере при его настройке – это производные от dst-nat и src-nat. NAT будет обрабатывать только первый пакет соединения.
Destination NAT
Пробросить порт через цепочку Dstnat в Микротике можно для изменения IP-адреса, а также port назначения с последующим выполнением обратной функции для ответа. Используется соответствующий вариант для проброса в локальной сети и доступа извне. Допускается реализация такой настройки для перенаправления любого имеющегося DNS-трафика через подключенный маршрутизатор.
К стандартным действиям цепочки dst-nat относят: redirect (преобразование на адрес маршрутизатора) и dst-nat – преобразования порта и адреса получателя. Далее будут рассмотрены примеры реализации соответствующих конфигураций для различных подключений.
Для удаленного рабочего стола
Технология удаленного рабочего стола (RDP) позволяет сделать администрирование намного удобнее и проще. Она открывает «операционную систему» выбранного компьютера, позволяя пользователю работать с ней через интернет.
При использовании RDP не рекомендуется пользоваться стандартным port 3389. Связано это с тем, что он часто подвергается атакам. Поэтому сервис будет скрыт через подмену порта. Для этого потребуется:
- Открыть ip firewall – Nat.
- Нажать на «+».
- Во вкладке General задать цепочку правил, протокол, а также протокол подключения и входящий интерфейс: .
- Перейти в раздел Action.
- Заполнить данные: .
- Сохранить конфигурационные настройки.
Если необходимо пробросить порт в Микротике, обязательно указывается входящий интерфейс. В противном случае не исключены серьезные проблемы подключения.
В разделе General каждая строка отвечает за свои параметры:
- chain: dstnat – цепочка правил, которые устанавливаются для IP-адреса назначения;
- protocol: 6 (tcp) – протокол, используемый для конфигурации в роутере;
- dst. Ports: 47383 – номер port по которому происходит обращение к маршрутизатору;
- in. Interface – входящий интерфейс WAN (в примере – это ether1).
При заполнении раздела Action:
- в поле Action указывается значение dst-nat;
- to addresses – внутренний IP хоста, к которому необходимо получить доступ через RDP;
- to ports – port, на который перенаправляются запросы.
Это – один из вариантов forward, который встречается при администрировании сетей.
Видеонаблюдение
Пробросить подключение для системы видеонаблюдения можно, изучив инструкцию для конкретного оборудования. Далее – пример для видеосервера с программным обеспечением «Линия». В случае с пробросом на Микротик напрямую, настройки будут выставляться аналогичным образом.
В примере предполагается, что есть видеосервер к которому необходимо подключиться извне. Сначала потребуется открыть настройки программного обеспечения «Линия». Это необходимо для уточнения порта веб сервера:
Сделать проброс потребуется для порта 9786. Для этого необходимо:
- Открыть Winbox.
- Добавить правило со следующими параметрами: .
- Во вкладке Action указываются такие настройки: .
После сохранения изменений соединение будет настроено. Обязательно при работе с роутером Микротик требуется указывать интерфейсы.
Несколько внешних IP
Сделать проброс для нескольких WAN удастся через создание Interface List. Сюда потребуется добавить все необходимые интерфейсы. Далее созданный list указывается в качестве значения параметра in. interface list.
Настройка forwarding на несколько внешних IP осуществляется так:
- Создать новый лист для интерфейсов ISP. Для этого перейти в Interface – Interface List – Lists. Нажать на «+»: .
- Добавить WAN интерфейсы: .
- Повторить предыдущий шаг для всех WAN.
- Forwarding может быть настроен через модернизацию ранее установленного правила проброса RDP. Достаточно добавить ISP в In. Interface List: .
Но и это еще не все возможные варианты настройки подключения. Можно перенаправлять трафик прямо на маршрутизатор.
Перенаправление на роутер
При помощи действий redirect Микротик поддерживает перенаправление трафика на маршрутизатор. Далее настраиваем NAT путем выполнения переадресации DNS-запросов.
Перенаправление будет выполняться для всего DNS-трафика. Пользователи в LAN, независимо от настроек DNS, будут считать, что им отвечает DNS-сервер, которому делается запрос. На самом деле ответ фактически придет от подключенного маршрутизатора.
Для этого предстоит выполнить следующие действия:
- Дождаться открытия Winbox.
- Открыть IP – Firewall – NAT.
- Нажать на «+».
- Во вкладке General выставить такие forward настройки NAT: .
- В разделе Action указать действие типа redirect: .
Остается сохранить изменения – и настройка проброса портов в Mikrotik будет завершена.
Через L2TP
Несколько устройств Микротика могут настраивать NAT forward друг другу через L2TP. В данной ситуации есть два роутера: один выходит в Сеть по «серому IP-адресу», второй – через выданный провайдером «белый IP».
Выше – пример того, как будет выглядеть схема веб подключения. Port пробрасывается до WS01 через GW1. Чтобы добиться соответствующего результата, потребуется:
Зайти на маршрутизатор GW2.
Открыть IP – Firewall– Mangle – «+».
В разделе Action написать: .
Промаркировать соединения цепочки forward аналогичным образом: .
В Action написать: .
Сделать маркировку маршрутов для веб подключения:
.
Для prerouting установить настройки: .
Теперь необходимо для L2TP добавить маршрут по умолчанию для макетов, которые получили маркировку в качестве пришедших из туннеля. Для этого необходимо:
Перейти в IP – Routers – «+».
Установить значения: .
Перейти к конфигурациям GW1 путем проброса порта до хоста 192.168.13.48:
Теперь все будет открываться так, как было задумано изначально. Если же требуется создать внутреннюю сеть, можно использовать приложение OPEN VPN. Здесь – пример настройки соответствующего подключения.
Source NAT
Source NAT используется для того чтобы изменить IP-адрес и порт источника. Далее – для выполнения обратной функции ответа. Наиболее распространенное применение – это выход из множества компьютеров в интернет (web) при помощи одного «белого» IP.
Для Sources forwarded актуальные действия:
- src-nat – преобразование адреса/порта отправителя;
- masquerade – отвечает за преобразование адреса отправителя на адрес исходящего интерфейса, а порта – на случайный.
Далее будут рассмотрены примеры соответствующей технологии.
Статический WAN
При получении статического IP-адреса от провайдера, рекомендуется настройки NAT осуществлять через правило src-nat. Связано это с тем, что устройства, которые подключены к LAN, смогут подключаться к глобальной Сети.
Для этого нужно:
- Зайти в WinBox в настройки NAT.
- Указать там следующие параметры: .
- Переключиться в Action и задать характеристики: .
Теперь остается сохранить изменения. Если все сделано верно, при выходе в интернет из LAN-сети результат будет access.
Динамический WAN
Динамический IP – это ситуация, при которой у Mikrotik проброс портов сводится не к VPN или src, а к Masquerade. Он представлен частным случаем src-nat для ситуаций, при которых внешний IP может меняться динамически.
При наличии нескольких внешних интерфейсов рекомендуется добавить условие выделения трафика по адресу источника:
.
Если использовать masquerade вместо src-nat, не исключены проблемы с телефонией, а также с установкой подключения при 2-х и более WAN-каналах. Также на центральный процессор оказывается повышенная нагрузка, если создается большое количество PPPoE-соединений.
Секреты быстрого изучения
Микротик – оборудование, которое требует определенных знаний и умений при конфигурировании, будь то VPN или другие соединения. Самостоятельно изучить настройки не всегда легко, поэтому на помощь приходят разнообразные компьютерные курсы. Они дистанционно, в режиме «онлайн», смогут научить пользователя с нуля не только настраивать оборудование, но и писать программы на различных языках.
Во время занятий автор курса и тренер будет курировать учеников, а также давать им интересные лабораторные работы (практику) и домашние задания. Пользователи всегда смогут посмотреть пропущенные вебинары в записи, сформировав собственные схемы обучения работе с NAT и портами, Микротиком и другим оборудованием. В конце обучения выдается электронный сертификат для подтверждения приобретенных знаний.
P. S. Интересуют компьютерные сети, сетевые технологии, протоколы передачи данных? Обратите внимание на следующие курсы в Otus:
- «Network engineer«;
- «Network engineer. Basic«.