Декабрь 16 2019

Как проверить открытые порты на сервере

Проверить открытые порты, за минуту

Проверить открытые порты, за минуту

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

Вешаем службу отвечающую по нужному порту

Как я и писал выше, пока сервисы не развернуты, то и порты никто не слушает, но нам необходимо произвести проверку, чтобы потом к этому не обращаться. Нам необходимо с помощью специальной утилиты, эмулировать прослушивание нужного нам порта (сокета), те кто из вас знает такую операционную систему, как Centos 7, то они помнят, в ней была отличная утилита под названием netcat. Она позволяла с помощью определенных команд слушать нужный администратору порт.

netcat – утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. На Windows платформах, она так же присутствует.

Распаковываем архив на сервере, где в будущем будет работать служба. В папке вам будут необходимы файлы nc.exe и nc64.exe. Далее зажимаете Shift и щелкаете правым кликом по папке, из контекстного меню выбираете пункт "Открыть окно команд"

Теперь представим, что я хочу чтобы на сервере работал 80 порт, ну типа IIS сервер. Открываем netcat, для начала посмотрите справку:

  • -d detach from console, background mode
  • -e prog inbound program to exec [dangerous!!]
  • -g gateway source-routing hop point[s], up to 8
  • -G num source-routing pointer: 4, 8, 12, .
  • -h this cruft
  • -i secs delay interval for lines sent, ports scanned
  • -l – слушать входящие соединения
  • -L listen harder, re-listen on socket close
  • -n numeric-only IP addresses, no DNS
  • -o file hex dump of traffic
  • -p – какое соединение будет прослушивать
  • -r randomize local and remote ports
  • -s – задать локальный адрес назначения
  • -t answer TELNET negotiation
  • -c send CRLF instead of just LF
  • -u – UDP режим
  • -v verbose [use twice to be more verbose]
  • -w secs timeout for connects and final net reads
  • -z zero-I/O mode [used for scanning]

Нас интересует команда вот такого вида:

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

Читайте также:  Как отключить виртуализация hyper v windows 10

Как проверить открыт ли порт на сервере

Теперь перейдем на другой сервер и попытаемся проверить открытые порты на удаленном сервере. В решении нашей задачи, мы будем использовать утилиту telnet, как ее устанавливать смотрите тут. Открываем командную строку и вводим такую строку:

Как видите я указал нужный мне ip адрес и нужный номер порта

Кстати проверить открытые порты на компьютере, где расположена служба, можно командой:

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

Если подключение удачное, то вы вы увидите черный экран, либо без текста, либо с каким-то приветственным сообщением, о том, что вам ответила какая-то служба.

Через внешние утилиты

Проверить открыть ли порт, можно и внешними утилитами, тут главное требование, чтобы у вас был белый ip имеющий доступ в интернет. Представим себе, все туже ситуацию, что вам необходимо протестировать 80 соединение, на котором будет сайт компании. Вы его развернули, но он почему-то не работает. Не так давно, я вам рассказывал про сервис ping.eu (вот тут). Одним из пунктов этого инструментария был port check (проверка открытых портов). В поле "ip address or host name" вы пишите ip адрес или dns имя сервиса, что требует проверки, а в соседнем поле, необходимый номер сокета, в моем случае 80, нажимаете "Go". Через секунду, вы получите результат, открыты порты 80 или 443 у сайта или нет. В моем случае статус "open".

Массовая проверка открытых портов в сети и локально

Существуют специальные утилиты, в задачи которых входит сканирование компьютера или сервера, на предмет доступных портов, по которым есть соединение, они называются сканеры портов. Таких программ очень много, я приведу пример в виде XSpider 7.7. Как проверить открыт ли порт в утилите XSpider 7.7. Щелкаем правым кликом по "сканированные хосты" и добавляем хост или диапазон ip адресов.

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

Нажимаем значок запуска и запускаем процедуру.

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

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

Как видите проверить открытые соединения очень просто. Еще существуют две полезные утилиты, показывающие слушаемые локальные сервисы, о них я так же рассказывал подробно, это утилита netstat и программка TCPView (советую ознакомиться)

  • Пример работы утилиты netstat

  • Пример работы утилиты TCPView

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

PortScaner.ru Port Checker – это бесплатный онлайн инструмент, чтобы найти открытые порты в вашей системе или на удаленном сервере. Этот инструмент позволяет сканировать открытые порты, которые могут оказаться дырами в безопасности и послужить лазейкой для хакеров. Вы также можете проверить, работает ли перенаправление портов на вашем роутере или нет.

Что такое проверка открытых портов?

Этот инструмент полезен для проверки порта в маршрутизаторе открыт он или закрыть. Это онлайн инструмент безопасности проверки порта открыт или заблокирован в вашей системе брандмауэром.

Читайте также:  Как делать панорамы для гугл карт

Какие порты бавают?

Порты являются виртуальными путями, по которым информация передается от компьютера к компьютеру. Всего есть 65536 портов на выбор..

Порты 0 до 1023 – Самые известные номера портов. Наиболее популярные службы работающие на портах: база данных MS SQL (1433), почтовые услуги POP3 (110), IMAP (143), SMTP (25), веб-сервисы HTML (80).

Порты от 1024 до 49151 – зарезервированные порты; это означает, что они могут быть зарезервированные для конкретных протоколов программного обеспечения.

Порты 49152 по 65536 – динамические или частные порты; это означает, что они могут быть использованы кем угодно.

Что такое проброс портов? (Port Forwarding)

Переадресация портов (Port Forwarding) имеется специальная функция на маршрутизаторе которая позволяет передачу пакетов данных извне (из Интернета) к устройствам или компьютерам в вашей локальной сети (LAN). По умолчанию все порты на маршрутизаторе закрыты, чтобы предотвратить взлом компьютеров вашей локальной сети. Но когда вы используете службу для подключения через порт на маршрутизаторе вам нужно открыть его. Например: Yahoo! Messenger вам необходимо чтобы один из следующих портов был открытым: 5061, 443, 80.

Способ 1. Для того, чтобы проверить открытые порты на локальном (своем) компьютере, можно воспользоваться «Командной строкой» операционной системы Windows (полный Список команд Windows ( Windows CMD ) тут).

Для вызова этой строки необходимо нажать сочетание клавиш Win+R и прописать команду «cmd», после чего нажать «ОК».

В открывшемся окне пропишите специальную команду «netstat -a» и ознакомьтесь со списком открытых портов на Вашем компьютере.

Способ 2. Если Вы подключены к интернету, то проверить, открыт ли порт, можно на сайте

Данный ресурс сам определит Ваш IP-адрес, а сканировать порты можно через специальное поле «Custom Port Test».

Введите интересующий Вас порт и нажмите кнопку «Check Port», после чего Вы получите ответ, открыт или закрыт данный порт.

Теперь рассмотрим, как проверить, открыт ли порт на удаленном компьютере или сервере. Воспользуйтесь все той же «Командной строкой» в системе Windows, но теперь пропишите команду telnet в формате:

telnet IP-адрес порт

Нажмите клавишу «Enter». Если нет записи «Could not open …», то запрашиваемый порт открыт, иначе – закрыт.

Что означает результат проверки порта?

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

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

Результат "порт закрыт" также можно получить, если порт открыт, но время отклика вашего компьютера в сети (пинг) завышено. Подключится к порту в таких условиях практически не представляется возможным.

К данному порту можно произвести подключение, он доступен из интернета. Если это то, что требуется — прекрасно.

Если неизвестна причина, по которой порт может быть открытым, то стоит проверить запущенные программы и сервисы. Возможно, некоторые из них вполне легально используют этот порт для работы с сетью. Существует вероятность, что порт открыт в следствии работы несанкционированного/вредоносного программного обеспечения (Вам поможет материал Как включить защиту от потенциально нежелательных программ в Windows Defender). В таком случае рекомендуется проверить компьютер антивирусом.

Читайте также:  Как посмотреть какая винда установлена

Что за порты? Для чего они нужны?

Порты, которые проверяет PortScan.ru, — это не физические, а логические порты на компьютере или сетевом устройстве.
В случае, если программа или служба планирует работать с сетью, она открывает порт с уникальным номером, через который она может работать с удаленными клиентами/серверами. Фактически, сетевая программа резервирует для себя определенное число, которое позволяет понять, что пришедшие данные предназначаются именно этой программе.

На человеческом языке это звучало бы примерно так: "Я, программа-сервер, открываю порт номер 1234. Если по сетевому кабелю придут данные с номером порта 1234 — это мне. "

Какие номера портов может открывать программа?

Порты идентифицируются номерами от 0 до 65535 включительно. Любой другой порт открыть нельзя, соответственно и проверить тоже. Это ограничения TCP/IP протокола.

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

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

Для каких ситуаций возможна проверка открытых портов?

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

Стоит учесть, что если ваш компьютер подключен к интернету не напрямую, а через роутер (маршрутизатор), то результаты проверки относятся именно к роутеру. Проверить состояние порта для компьютера внутри такой подсети возможно только при наличии проброса портов.

Что такое проброс портов?

Проброс портов (Port Forwarding, иногда Virtual Servers) — специальная настройка на роутере, позволяющая перенаправить внешние запросы (из интернета) на компьютеры локальной сети. По сути это способ указать, на какой локальный компьютер пересылать данные и запросы подключения, пришедшие на определенный порт.

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

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

Как узнать, какие порты открыты на компьютере?

Для Windows: Пуск → "cmd" → Запустить от имени администратора → "netstat -bn"
Для Linux: В терминале выполнить команду: "ss -tln"

Как закрыть порт?

Прежде всего надо устранить причину — запущенную программу или службу, которая открыла этот порт; ее надо закрыть/остановить. Если причина открытого порта не ясна — проверьте компьютер антивирусом, удалите лишние правила проброса портов на роутере и установите продвинутый файервол (Firewall).




Опубликовано 16.12.2019 Xeon LGA755 в категории "Компьютеры