Добрый день уважаемые читатели и гости блога, вновь рад вас приветствовать в разделе про безопасность, в прошлый раз мы с вами научились удалять 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 атака и многие фаэрволы в сети могут вас просто забанить, так что будьте осторожны.
От переводчика. Привет, сегодня я хочу опубликовать перевод статьи со списком сервисов, которые помогут найти открытые порты на серверах. Надеюсь, что статья окажется полезной.
Если вы размещаете свои веб-приложения на администрируемом сервере или шаред хостинге, тогда Вам не о чем беспокоиться. Однако для виртуального или выделенного сервера вы должны предусматривать все возможности для безопасности своего сервера.
Иметь ненужные порты открытыми - плохая идея, из которой злоумышленник может извлечь выгоду множеством способов.
Ниже представлены бесплатные онлайн сервисы, которые помогут выяснить открыты ли порты, чтобы вы могли проверить и заблокировать их, если они не используются.
Примечание: если вы запускаете сканер портов для DNS Вашего сайта, а он находится за такими прокси, как CloudFlare или SUCURI, то он может не выдать точную информацию. Используйте настоящий IP адрес сервера.
Сканер портов от MX ToolBox
MX Toolbox пытается проверить 15 наиболее часто используемых портов с таймаутом в 3 секунды и выдает результаты, какие из них открыты, а какие нет.Онлайн сканер портов
Этот инструмент - персональный проект Javier Yanez, позволяющий бесплатно просканировать порты для IPv4 и IPv6 адресов.Сканер портов от T1 Shopper
Сканирует один или диапазон портов , прослушиваемых сервером с указанным IP. Это удобно, если вы только хотите просканировать выбранные порты.Сканер портов от Hacker Target
Выполняет быстрое сканирование шести наиболее распространенных портов (FTP, SSH, SMTP, HTTP, HTTPS, RDP) сканером портов NMAP.Сканер портов от DNS Tools
Быстро сканирует некоторые распространенные порты, такие как FTP, SMTP, DNS, Finger, POP3, SFTP, RPC, IRC, IMAP, VNC и т. д.Используя стандартные средства 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, его можно использовать для контроля как отдельных портов, так и заданных диапазонов. Создайте правило для исходящих подключений, при запуске мастера создания правила выберите пункт «Все программы». Нажмите «Далее», в открывшемся окне выберите «Блокировать подключения». Опять нажмите «Далее», выберите профиль и укажите имя правила. Затем в свойствах правила укажите порты , которые брандмауэр должен блокировать. Точно так же создается и правило для входящих подключений.
Интернет-приложения отправляют данные через специальные порты . Сетевой порт - выделяемый системный ресурс, выполняемый на определенном сетевом хосте. Если порт закрыт, программа не сможет выйти в сеть, а потому не сможет корректно выполнять свои функции.
Источники: Википедия, Майкрософт, portscan.ru
Как узнать, какие порты открыты на компьютере?
- Для Windows: Пуск → «cmd» → Запустить от имени администратора → «netstat -bn»
- В антивируснике, таком как Avast, есть возможность посмотреть активные порты в Брандмауэре: инструменты -> Брандмауэр -> Сетевые соединения.
Также полезные команды netstat:
To display both the Ethernet statistics and the statistics for all protocols, type the following command:
netstat -e -s
To display the statistics for only the TCP and UDP protocols, type the following command:
netstat -s -p tcp udp
To display active TCP connections and the process IDs every 5 seconds, type the following command:
nbtstat -o 5
To display active TCP connections and the process IDs using numerical form, type the following command:
nbtstat -n -o
Для сокетов TCP допустимы следующие значения состояния:
CLOSED | Закрыт. Сокет не используется. |
LISTEN (LISTENING) | Ожидает входящих соединений. |
SYN_SENT | Активно пытается установить соединение. |
SYN_RECEIVED | Идет начальная синхронизация соединения. |
ESTABLISHED | Соединение установлено. |
CLOSE_WAIT | Удаленная сторона отключилась; ожидание закрытия сокета. |
FIN_WAIT_1 | Сокет закрыт; отключение соединения. |
CLOSING | Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения. |
LAST_ACK | Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения. |
FIN_WAIT_2 | Сокет закрыт; ожидание отключения удаленной стороны. |
TIME_WAIT | Сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки |
Список наиболее часто используемых портов