для чего открывают порты

Коварный роутер или почему порты надо открывать

для чего открывают порты
В статье небольшая история о том как желание упростить приложение для конечного пользователя, вышло весьма трудоемким процессом.

Речь об «автоматической» пробросе порта, через технологию UPnP, без использования «стандартной» библиотеки NATUPnPLib.

О том, в силу чего был выбран такой непростой путь и почему он все-таки непростой — читайте ниже.

Пролог

Работая над своим проектом (игровой проект), я четко осознавал, что рано или поздно придется подойти в плотную к вопросу сервера и связки с оным. Стоит отметить, что он был в планах. Но я помнил свой опыт работы с выделенным сервером, для того же minecraft’a, был готов к тому что меня ждет определенная «боль», в особенности, если я попытаюсь продвинуть свой продукт в массы.

Иллюзия решения

Определившись с языком, первым же делом отправился в гугл, узнать если ли уже готовые решения. И действительно, было сразу же найдено «решение», предлагалось использовать библиотеку NATUPnPLib, и сразу же пример ее использования:

Возрадовавшись сему, я поспешил опробовать полученную «зверюшку». В конечном итоге на одной машине мне удалось, получить желаемый результат. Однако, когда я уже совсем возрадовался, я решил «чуток потестировать» (вообще как показывает практика, это полезное действие), и запустил скомпиленый код на соседней машине (в одной локалке, с одним роутером «во главе») и тут меня ждало первое разочарование.

Увы, upnpnat.StaticPortMappingCollection — возвращал null, что бы я не делал. Вместе с этим пришел «отчет» от другого человека, которого я так же попросил протестировать, его ответ был так же грустен, у него данная библиотека вообще не разрешалась (вероятно была не зарегистрирована в системе, по какой-то причине или запрещена, или еще как, но суть в том что она не подхватывалась).

«Отсутствие результата, тоже результат» — так гласит одна хитрая мудрость. Печальный результат, дал мне понимание, что если я оставлю эту библиотеку, то подобные же ошибки будут у конечного потребителя, а значит мне придется готовится принимать поток «добра». Что мне, почему-то совсем не хотелось.

Поиск пути

В расстроенных чувствах пошел гуглить замену NATUPnPLib. Но как оказалось, почти все готовые решения были по сути обертками над этой библиотекой. Ради эксперимента они были попробованы, но поскольку в основе NATUPnPLib, то все заканчивалось как и ранее.

Это сильно огорчало. Однако глядя на такие продукты как например uTorrent, и видя что он успешно пробрасывает порт, я решил пойти научным хитрым путем. Идея проста как котик. Я знаю, что от машины до роутера передается некая команда или часть, в которой должно быть как-то сказано, что роутер должен сделать. Оставалось дело за малым, «посмотреть в лицо» этой команде или набору команд.

Первой же ссылкой в гугле, на запрос о сетевом сниффере был Wireshark. Дальше начав гуглить, что он умеет попалась вот эта статья от товарища sinist3r за что ему большое спасибо. В статье в достаточной степени описано, как и что делать, потому подробно на этом останавливаться не стану.

Анализ сетевого трафика

для чего открывают порты

Смотрим на полученный список и видим какую-то интересную вещь, а именно мультикаст группа и протокол SSDP, и на нее посылается такое сообщение:

для чего открывают порты

Радостно потираю лапки, как муха, из буквально маленькой статьи на Википедии, узнаю, что используется протокол UDP, посылается сообщение обнаружение, которое было приведено в скрине выше. И все говорит, о том что я иду правильным путем.

От теории к практике

Имея под рукой запрос, протокол по которому обращаемся и адрес, я решил попробовать сделать небольшую консольную программку, для того что бы протестеровать, как оно будет, и будет ли вообще, работать.

Итак, такой запрос надо отправить в мультикаст группу, на порт 1900. Роутер услышав запрос, ответит, машине с которой пришел запрос, с неким ответом.

M-SEARCH * HTTP/1.1\r\n
HOST:239.255.255.250:1900\r\n
MAN:\«ssdp:discover\»\r\n
ST:upnp:rootdevice\r\n
MX:3\r\n\r\n

Подробнее, что есть что, можно посмотреть тут.

Пишем примерно такой код:

для чего открывают порты

Почему использую такую конструкцию:

А не IPAddress.Any, в следствии вот этого ответа

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

Однако, если у вас на машине стоит VirtualBox или скажем Tunngle, или что-то подобное, что ставит свой адаптер, то в таком случае, указанный выше код, вернет адрес этого самого адаптера. Что «не есть хорошо», и потому надо либо как-то по названиям пытаться обрезать «левые» адреса, либо как предлагаю я:

Конец уж близок

Итак, почти все у нас есть. Можно перейти к финальной стадии, а именно, попробовать на практике пробросить порт и его закрыть.

Опущу моменты как я в Wireshark’e, наблюдал какие команды ходят и куда, ранее достаточно подробно писал, дальнейший поиск достаточно прост, учитывая, что все общение с роутером уже идет через HTTP.

Получив на предыдущей стадии, путь для запроса информации о роутере, сделаем это. Сразу оговорюсь, при HTTP запросах, обязательно указывать UserAgent = «Microsoft-Windows/6.1 UpnP/1.0»; (естесвенно учитывая реальную версию Windows).

В моем случае GET-запрос, надо послать по этому адресу:

В полученном, огромном ответе, (да-да, вот в этой огромной простыне текста), нас интересует тег controlURL, у которого serviceType равен urn:schemas-upnp-org:service:WANIPConnection:1.

WANPPPConnection (ADSL modems) and WANIPConnection (IP routers)

В моем случае получено значение «/ctl/IPConn». Дописываем его к адресу роутера, в итоге получаем такое:

для чего открывают порты

Аналогично, но проще делается для удаления порта, там всего два важных параметра — это протокол и порт, подчеркну, внешний порт.

Заключение

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

Всем спасибо, кто прочитал, если имеются какие-то дополнения, пишите, дополню статью.

Источник

Не открывайте порты в мир — вас поломают (риски)

для чего открывают порты

Снова и снова, после проведения аудита, на мои рекомендации спрятать порты за white-list’ом встречаюсь со стеной непонимания. Даже очень крутые админы/DevOps’ы спрашивают: «Зачем. «

Предлагаю рассмотреть риски в порядке убывания вероятности наступления и ущерба.

Ошибка конфигурации

Наиболее типичная и опасная ситуация. Как это бывает. Разработчику надо быстро проверить гипотезу, он поднимает временный сервер с mysql/redis/mongodb/elastic. Пароль, конечно, сложный, он везде его использует. Открывает сервис в мир — ему удобно со своего ПК гуём коннектиться без этих ваших VPN. А синтаксис iptables вспоминать лень, все равно сервер временный. Еще пару дней разработки — получилось отлично, можно показывать заказчику. Заказчику нравится, переделывать некогда, запускаем в ПРОД!

Пример намеренно утрированный с целью пройтись по всем граблям:

А в /etc/rsyslog.d/10-iptables.conf
:msg,contains,»[FW — » /var/log/iptables.log
& stop

DDoS по IP

Если злоумышленник знает ваш IP, он может на несколько часов или суток заддосить ваш сервер. Далеко не у всех лоукост-хостингов есть защита от DDoS и ваш сервер просто отключат от сети. Если вы спрятали сервер за CDN, не забудьте сменить IP, иначе хакер его нагуглит и будет DDoS’ить ваш сервер в обход CDN (очень популярная ошибка).

Уязвимости сервисов

Во всем популярном ПО рано или поздно находят ошибки, даже в самых оттестированных и самых критичных. В среде ИБэшников, есть такая полу-шутка — безопасность инфраструктуры можно смело оценивать по времени последнего обновления. Если ваша инфраструктура богата торчащими в мир портами, а вы ее не обновляли год, то любой безопасник вам не глядя скажет, что вы дырявы, и скорее всего, уже взломаны.
Так же стоит упомянуть, что все известные уязвимости, когда-то были неизвестными. Вот представьте хакера, который нашел такую уязвимость, и просканировал весь интернет за 7 минут на ее наличие… Вот и новая вирусная эпидемия ) Надо обновляться, но это может навредить проду, скажете вы. И будете правы, если пакеты ставятся не из официальных репозиториев ОС. Из опыта, обновления из официального репозитория крайне редко ломают прод.

Брутфорс

Как описал выше, есть база с полу миллиардом паролей, которые удобно набирать с клавиатуры. Другими словами, если вы не сгенерировали пароль, а набрали на клавиатуре рядом расположенные символы, будьте уверены* — вас сбрутят.

Уязвимости стека ядра.

Бывает**** и такое, что даже не важно какой именно сервис открывает порт, когда уязвим сам сетевой стек ядра. То есть абсолютно любой tcp/udp-сокет на системе двухлетней давности подвержен уязвимости приводящий к DDoS.

Усиление DDoS-атак

Напрямую ущерба не принесет, но может забить ваш канал, поднять нагрузку на систему, ваш IP попадет в какой-нибудь black-list*****, а вам прилетит абуза от хостера.

Неужели вам нужны все эти риски? Добавьте ваш домашний и рабочий IP в white-list. Даже если он динамический — залогиньтесь через админку хостера, через веб-консоль, и просто добавьте еще один.

Я 15 лет занимаюсь построением и защитой IT-инфраструктуры. Выработал правило, которое всем настоятельно рекомендую — ни один порт не должен торчать в мир без white-list’a.

Например, наиболее защищенный web-сервер*** — это тот, у которого открыты 80 и 443 только для CDN/WAF. А сервисные порты (ssh, netdata, bacula, phpmyadmin) должны быть как минимум за white-list’ом, а еще лучше за VPN. Иначе вы рискуете быть скомпрометированным.

У меня все. Держите свои порты закрытыми!

Источник

Все о портах. И как правильно открыть порты

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

для чего открывают порты

Все уже давно используют имитаторы LAN (локальной сети), после того, как некоторые провайдеры в начале нового десятилетия, отключи всех своих абонентов от локальной сети, оставив им только подключение по каналу «Интернет».

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

для чего открывают порты

Именно по «Белому» IP и стоит открывать порты на своем оборудовании. Что бы получить свой «Белый» IP необходимо обратить к своему провайдеру, и после этого, он назначит IP на Вас. Данная услуга везде является платной, и в зависимости от региона может составлять от 50 рублей/месяц.

Допустим, мы купили реальный IP у своего провайдера, и теперь необходимо приступить к настройке. Разберемся с настройками на 4-х популярных моделях роутеров (ASUS/TP-Link/D-Link/Zyxel):

Примечание: настройка производилась на оборудовании ASUS RT-N12 C1 с микропрограммой 3.0.0.4.260 (черный интерфейс)

для чего открывают порты

Источник

Закрытые порты! Что делать, если серверов лобби не видно / не подключается?

для чего открывают порты

Закрытые порты – это распространённая проблема, особенно для компьютерных игр. Бывает так, что любимая игра не работает из-за невозможности подключиться, например, к серверу. Или ваше лобби (хост/сервер) в игре никто не может найти. Тогда люди начинают заниматься поисками причины этого недоразумения там, где их нет. Часто проблема заключается не в интернет-соединении и даже не в несовместимости с программным обеспечением.

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

Что значит «открыть порт», почему они вообще могут быть закрыты?

Канал передачи данных из внешней сети до вашего компьютера может быть заблокирован по трем причинам:

1) Брандмауэр / Антивирус
Может банально заблокировать приложению доступ в интернет по всем портам. Или в режиме сверхбезопасности по умолчанию блокировать любые данные из сети.

2) Маршрутизатор / Роутер
Дополнительный передатчик усложняет маршрут до компьютера, порой делая его сложным для игры / приложения.

для чего открывают порты

Данные из внешней сети по определенному порту могут дойти до роутера, а тот может не понять, на какое именно устройство (по какому внутреннему IP) их дальше отправить.

3) Вирус / Кривая сборка Windows
Это спонтанные ошибки, наглухо заблокированные адреса, недостаток прав, некорректная работа встроенных в ОС сетевых служб и все такое.

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

Где и как можно узнать свой IP-адрес?

Если роутер новый, а вы с ним ничего не делали, как его настроили, тогда IP-адрес можно посмотреть на устройстве (на дне или сзади), где заодно будет указан пароль вместе с логином для входа в настройки роутера.

Как узнать IP-адрес на Windows 10?

В случае с Win 10 нужно сделать следующее:

для чего открывают порты

для чего открывают порты

Существует и другой способ узнать IP-адрес на «десятке». Для этого нужно воспользоваться инструментом под названием «PowerShell»:

для чего открывают порты

для чего открывают порты

Несмотря на тот факт, что операционную систему Windows 7 больше не поддерживают, она всё ещё популярна среди уверенных пользователей PC. Поэтому инструкция определённо поможет, если вы тот самый консервативный человек:

Прелесть вышеописанного способа очевидна – не нужно ничего уметь. Достаточно знать, как кликать мышкой. Однако существует и другой способ, благодаря которому IP-адрес можно узнать быстрее, но он не подойдёт для рядовых пользователей ПК:

Также есть и другой способ, который больше всего по душе сетевым администраторам, из-за лишних деталей в графическом интерфейсе, где абсолютно также можно узнать IP-адреса своего модема:

Как проверить статус своих портов?

Перед тем как начнёте разбираться с портами, рекомендуем для начала ознакомиться с их статусом, иначе не узнаёте, какой порт – работает, а какой – нет. И, соответственно, не сможете включить или настроить их.

Проще всего проверить порты с помощью какого-нибудь онлайн-сервиса, где это делается в два клика, например, https://2ip.ru/check-port/ или https://2ip.ua/ua/services/ip-service/port-check, но можно воспользоваться и консолью, если нет желания куда-то переходить.

для чего открывают порты

Как открыть порт через «Брандмауэр Windows»?

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

И обычно при первом запуске приложения/программы «Брандмауэр Windows» спрашивает можно ли запустить тот или иной процесс, где нужно выбрать вариант «Разрешить доступ», благодаря чему он не блокирует приложение, но если по каким-то причинам пропустили этот момент, придётся прибегнуть к нижеописанному способу:

для чего открывают порты

для чего открывают порты

По итогу вы создадите новое правило, которое открывает порт для выбранной игры. Кроме того, описанный выше способ стандартный, то есть он абсолютно идентичный для всех версий ОС Windows, начиная с Win 7 и заканчивая последней на данный момент Win 10.

Важно: дополнительный брандмауэр / сетевой экран / фаерволл может быть встроен в антивирус (ESET Node Smart Security Family / Kaspersky и т.д.). В таком случае следует зайти в его настройки и проверить, не блокирует ли данная навороченная защита конкретное приложение или порт.

Как открыть порт в настройках роутера?

Большинство современных игр и роутеров поддерживают опцию Universal Plug and Play (UPnP), которая создана для избавления от всех проблем с портами. Так что для автоматического «пробрасывания» портов обычно достаточно просто включить ее, поставив галочку в настройках маршрутизатора.

Если включение UPnP не помогает, значит нужно связать IP компьютера в локальной сети и нужные порты вручную. Этот процесс не занимает больше десяти минут, при этом часто помогает решить проблему закрытых портов. Рекомендуем воспользоваться нашими инструкциями:

Примечание: настройка производилась на оборудовании ASUS RT-N12 C1 с микропрограммой 3.0.0.4.260 (черный интерфейс).

Примечание: настройка производится на роутере D-link DIR 615 с белым интерфейсом новейшей микропрограммы 2.5.20.

Примечание: настройка производится на роутере TP-LINK TL-WR940N / TL-WR941ND с микропрограммой 3.13.31.

Примечание: настройка в примере производилась на роутере ZyXEL Keenetic с микропрограммой 2.0.

Что делать, если ничего не помогло?

В таком случае проблема лежит либо на вашей стороне, либо на стороне «любимого» интернет-провайдера. Как определить? Если проблема на вашей стороне, тогда это может быть связано:

Если в очередной раз ничего не помогло, тогда совершенно точно закрытые порты связаны либо с тарифом интернет-провайдера, либо со злыми вирусами:

Источник

Как открыть порты на компьютере

Зачем нужно открывать порты?

Проверка порта

Проверить открыт ли тот или иной порт на ПК, можно воспользовавшись специальными сервисами или командной строкой системы. Чтобы сделать это онлайн, потребуется проделать следующее:

Сервис выдаст текущее состояние порта. для чего открывают порты

Чтобы проверить порт, используя специальную команду вам понадобится:

Перед вами отобразится список открытых на данный момент портов. для чего открывают порты

Открытие порта в фаерволе

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

В большинстве случаев требуется создать 2 правила – одно для входящих и второе для исходящих соединений.

Те же самые действия нужно проделать с другим протоколом, если приложение для которого вы открываете порт, использует несколько типов соединения.

Настройки маршрутизатора

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

Обычно это 192.168.1.1 или 192.168.0.1 (точный адрес маршрутизатора можно найти не его панели или в инструкции).

По окончании настройки роутер нужно перезагрузить, после чего порты станут доступны.

для чего открывают порты

Открытие порта в антивирусе

Предоставление доступа в настройках фаервола и маршрутизатора может оказаться недостаточным, так как соединение может блокироваться антивирусным программным обеспечением. Рассмотрим, как можно открыть порт на примере антивируса Касперского. Для этого потребуется проделать следующие действия:

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

Источник


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *