Как узнать закрытые порты. Как определить открытые порты

Добрый день уважаемые читатели и гости блога, вновь рад вас приветствовать в разделе про безопасность, в прошлый раз мы с вами научились удалять 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
  • -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
  • -w secs timeout for connects and final net reads
  • -z zero-I/O mode

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

netcat-win32-1.12>nc.exe -l -p 80

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

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

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

telnet 10.242.17.134 80

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

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

telnet localhost номер 80

Если 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 атака и многие фаэрволы в сети могут вас просто забанить, так что будьте осторожны.

Чтобы понять, как работает пара компьютеров, установивших связь друг с другом по протоколу TCP/IP, нужно знать, что для их взаимодействия устанавливается канал связи (Session), по которому они будут передавать друг другу информацию. Чтобы отправляющий данные компьютер был уверен, что они поступают к соответствующей программе на нужном компьютере, и принимающий компьютер понял, что полученные данные пришли именно с нужного компьютера и для нужной программы, связь устанавливается по схеме сервер-клиент на заранее оговоренном канале связи. Этот канал связи называется «Порт».

Программа на -сервере настроена таким образом, что в режиме запроса от клиентской программы. Другими словами она «слушает» заранее оговоренный порт (канал связи). Клиентская настроена на отправку запросов исключительно по заранее оговоренному порту. Для удобства они нумеруются от 0 до 65535.

Существуют общепринятые , которые закреплены за часто используемыми и популярными программами, например, почтовые программы The Bat и Outlook Express используют порт 110. Вообще, этот порт зарезервирован за всеми программами, соединяющимися с почтовыми серверами. Так, для браузеров зарезервирован свой порт – 80. Он предназначен для просмотра - со всех браузеров.

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

Для этого с помощью команды «Выполнить», которая доступна после активации кнопки «Пуск», ввести консольную команду netstat. Чтобы проверить открытый порт самостоятельно и заодно просмотреть

Используя стандартные средства Windows, можно проверить, закрыт ли порт, который программа использует для своей работы.
Для того, чтобы выполнить проверку открытых/закрытых портов Windows, необходимо воспользоваться командной строкой. Для ее запуска нажмите сочетание клавиш «Windows+R». После этих действий откроется окно. В нем нужно ввести «cmd». После этого нажмите клавишу «Enter».

На экране появится черное окошко, которое специалисты называют командной строкой Windows. Теперь можно запускать саму утилиту, которая позволит вам просмотреть список закрытых портов. Введите в команду «netstat».

После ввода нажмите клавишу «Enter». В окне командной строки будет отображена информация обо всех открытых портах вашего компьютера. Она будет указана вслед за доменным именем вашего персонального компьютера и отделена от него двоеточием. Учтите, что все порты , которые не указаны в этом списке, являются закрытыми. И если порт, который использует ваше приложение, попал в этот список, то его будет необходимо закрыть, чтобы приложение смогло нормально функционировать.

Обратите внимание

Если предоставленной информации вам окажется недостаточно, то можете изучить все возможности утилиты «netstat», путем запуска ее с ключом –h. Это означает, что в командной строке нужно ввести команду «netstat -h». Затем в появившемся окне вы увидите помощь по программе "netstat".

Полезный совет

Также есть утилита под названием "Windows Worms Doors Cleaner", которая может не только показывать открытые и закрытые порты TCP/UDP, но и самостоятельно закрывать открытый порт. Таким образом, можно дополнительно защитить свой компьютер от различных угроз в интернете, а также многочисленных вирусов. Программа "NetStat Agent 2.0" может заменить встроенный "netstat".

Источники:

  • NetStat Agent 2.0

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

Инструкция

Прежде всего, вы можете воспользоваться netstat из стандартного набора Windows XP. Для ее исполнения войдите в Windows и там наберите "netstat 5" (без кавычек). После исполнения команды вы увидите обновляемый каждые 5 секунд (вы можете указать любое ) , содержащий информацию об открытых соединениях, программах, их использующих и портах.

Источники:

  • какой порт у меня открыт

На компьютере одновременно работает множество программ. Если программа использует соединение с интернетом, ей выделяется определенный порт. Иногда у пользователя возникает необходимость проконтролировать, какой порт использует та или иная программа .

Инструкция

Необходимость определить, какие использует программа (или какая программа использует порты ), обычно возникает в случае подозрения на заражение компьютера троянской программой. Если вы заметили что-то подозрительное, откройте командную строку: «Пуск» – «Все программы» – «Стандартные» – «Командная строка».

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

Наберите в командной строке команду netstat –aon и нажмите Enter. Вы увидите список текущих подключений. В графе «Локальный адрес» в конце каждой строки указан номер порта. В графе PID указаны идентификаторы процессов. Посмотрев номер порта и соответствующий ему PID, перейдите к списку процессов и по номеру идентификатора определите, какой процесс использует этот порт.

Если вы не можете по названию процесса понять, какой программе он принадлежит, воспользуйтесь одной из подходящих в данном случае программ. Например, программой Everest, она же Aida64. Запустите программу, откройте вкладку «Операционная система», выберите «Процессы». В списке процессов найдите нужный вам и посмотрите строку его запуска. Это поможет определить, какой программе принадлежит процесс.

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

Если вы видите, что порт используется неизвестной вам программой, то при наличии текущего соединения в графе «Внешний адрес» (команда netstat –aon) вы увидите ip-адрес компьютера, с которым установлено соединение. В графе «Состояние» будет стоять значение ESTABLISHED – если соединение присутствует на текущий момент; CLOSE_WAIT, если соединение закрыто; LISTENING, если программа ждет соединения. Последнее характерно для бэкдоров - одной из разновидностей троянских программ.

Источники:

  • какие порты использует skype

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

Инструкция

В операционной системе Windows есть встроенный брандмауэр, но его возможности очень ограничены, поэтому лучше пользоваться программой от стороннего производителя. Одной из лучших программ этого типа является Outpost Firewall.

Перед началом настройки откройте главное окно программы. Выберите «Параметры» – «Системные», затем найдите в нижней части вкладки раздел «Глобальные правила и доступ в rawsocket» и нажмите в нем кнопку «Правила».

В открывшемся окне нажмите кнопку «Добавить». В поле «Выберите событие для правила» отметьте птичками пункты «Где протокол», «Где направление» и «Где локальный порт». Ниже, в поле «Описание правила», выберите мышкой «Не определено» в строке «Где протокол» и выберите в открывшемся окошке протокол ТСР.

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

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

Если вы пользуетесь штатным фаерволом Windows, проверьте список исключений: «Пуск» – «Панель управления» – «Брандмауэр Windows» – «Исключения». Снимите птичку с «Удаленного », если вы им не пользуетесь. Вы можете вообще запретить исключения, поставив птичку на вкладке «Общие» в строке «Не разрешать исключения».

Фаервол в Windows 7 имеет больше возможностей, чем в Windows XP, его можно использовать для контроля как отдельных портов, так и заданных диапазонов. Создайте правило для исходящих подключений, при запуске мастера создания правила выберите пункт «Все программы». Нажмите «Далее», в открывшемся окне выберите «Блокировать подключения». Опять нажмите «Далее», выберите профиль и укажите имя правила. Затем в свойствах правила укажите порты , которые брандмауэр должен блокировать. Точно так же создается и правило для входящих подключений.

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

Про порты, и прояснит ситуацию.

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

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

Что же такое "Открытый порт " ? Да все гениальное просто - любой компьютер в сети имеет определенный идентификатор (имя, MAC-адрес, IP ), так вот, по IP на роутер поступает определенный пакет, но не просто поступает по IP , а по специальному каналу (порту ), через который, программа отправляет/принимает запросы из внешней сети. По стандарту, этот пакет дальше роутера не пройдет, так как по умолчанию (далее дефолту), порт по которому работает программа - закрыт, а что принять пакет, его нужно открыть.

То, что пишут в интернете - можно открыть порты, независимо от того, какое сетевое оборудование стоит - все это бред! Любой знающий сис.админ скажет - что IP делятся на два вида - "Белый " и "Серый ", и только на одном можно открыть порты, что бы принимать "пакеты" из вне. Серый - это когда IP может переходить из рук-в-руки множество количество раз (он же именуется как динамический ), Белый - или реальный (по другому статический ) можно быть присвоен только на одного пользователя, и не будет переходить из рук-в-руки.

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

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

Настройка роутера ASUS


Открываем порты на реальном (белом) IP в роутере ASUS

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

  1. 192.168.1.1 ), с логином и паролем (admin/admin
  2. В левом меню выбираем "Интернет " (или WAN ) -> Переадресация портов (или Virtual Server/Port Forwarding )
  3. Включаем данную опцию, поставив галочку напротив "Включить переадресацию портов: Да ".
  4. Выбираем из готовых шаблонов заданные порты, или вписываем свои:
    • Имя службы - можно быть любое
    • Диапазон портов - можно ввести как один порт (например 80) так и диапазон (27000:27099)
    • Локальный IP
    • Конечный порт - так же как и в "Диапазон" нужно вводить в зависимости от того, что сначала ввели - один или диапазон.
    • Протокол - TCP/UDP/BOTH /OTHER - выбрать один (TCP/UDP порты выбирают)
  5. После ввода данных нажимаем на плюсик (слева от формы заполнения).
  6. А после ввода данных, нажимаем "Сохранить".
Примечание:

Настройка роутера D-Link


Открываем порты на реальном (белом) IP в роутере D-link

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

  1. Подключаемся к своему роутеру через браузер (192.168.0.1 . или в некоторых 192.168.1.1 ), с логином и паролем (admin/admin ). Узнать об этом можно на обратной стороне роутера или в инструкции к нему.
  2. В левом меню выбираем Межсетевой экран/Виртуальные серверы .
  3. Выбираем из готовых шаблонов, или вписываем свои (выбрав пункт "Costom "):
    • Имя службы - можно быть любое
    • Протокол - выбираем нужный протокол.
    • Внешний порт (начальный)
    • Внутренний порт (начальный)
    • Внутренний IP
  4. Применить ", а после через "Система " - выбрать пункт "", и только после этого порты должны открыться.
Примечание: пункты и названия интерфейса могут отличаться в зависимости от модели и микропрограммы сетевого оборудования (роутера).

Настройка роутера TP-Link


Открываем порты на реальном (белом) IP в роутере TP-Link

TP-LINK TL-WR940N / TL-WR941ND с микропрограммой 3.13.31 .

  1. Подключаемся к своему роутеру через браузер (192.168.0.1/192.168.1.1 ), с логином и паролем (admin/admin ). Узнать об этом можно на обратной стороне роутера или в инструкции к нему.
  2. В левом меню выбираем Переадресация (Forwarding ) -> Виртуальные сервера (Virtual Server ).
  3. После открытия раздела «Виртуальные серверы » перед вами должна появиться страница со списком открытых портов. Для того чтобы открыть нужный вам порт здесь нужно нажать на кнопку «Добавить новый» и заполняем форму:
    • Порт сервиса – внешний порт. Здесь нужно ввести порт (или диапазон портов через знак дефиз, например, 10100-10200)
    • Внутренний порт – внутренний порт, который будет использоваться программами на вашем компьютере.
    • IP адрес
    • Протокол
    • Состояние (Status ) – статус порта.
  4. После ввода данных можно нажать "Сохранить " (Save ).
Примечание: пункты и названия интерфейса могут отличаться в зависимости от модели и микропрограммы сетевого оборудования (роутера).

Настройка роутера ZyXEL


Открываем порты на реальном (белом) IP в роутере ZyXEL

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

  1. Подключаемся к своему роутеру через браузер (192.168.0.1/192.168.1.1 ), с логином и паролем (admin/admin или admin/1234 ). Узнать об этом можно на обратной стороне роутера или в инструкции к нему.
  2. В левом меню выбираем «Безопасность» (в виде щита) -> .
  3. После открытия раздела «Трансляция сетевых адресов (NAT) » нажимаем на кнопку «Добавить» и добавляем по шаблону:
    • Интерфейс – выбираем необходимый интерфейс.
      Внимание! Необходимо правильно указать значение поля Интерфейс. В зависимости от того, использует ли ваш провайдер авторизацию (PPPoE, L2TP или PPTP), значение этого поля может быть различным. Если авторизация у провайдера не используется, следует всегда выбирать интерфейс Broadband connection (ISP). Если провайдер использует PPPoE для доступа в Интернет, то следует выбирать соответствующий интерфейс PPPoE.
      Если вам предоставляется одновременный доступ в локальную сеть провайдера и Интернет (Link Duo), для проброса порта из локальной сети нужно выбирать интерфейс Broadband connection (ISP), а для проброса порта из Интернета - интерфейс туннеля (PPPoE, PPTP или L2TP).
    • Протокол – можно указать протокол из списка предустановленных, который будет использован при пробросе порта (в нашем примере используется TCP/21 – Передача файлов FTP). При выборе в поле Протокол значения TCP или UDP вы можете в полях
    • Порты TCP/UDP - указать номер порта или диапазон портов.
    • Перенаправить на адрес - указываем локальный IP адрес компьютера.
  4. После ввода данных можно нажать "Сохранить ".
Примечание: пункты и названия интерфейса могут отличаться в зависимости от модели и микропрограммы сетевого оборудования (роутера).

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