centos просмотр открытых портов

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

Просмотреть открытые порты можно двумя способами. Менее надёжный способ — опросить сетевой стек с помощью команды netstat -an или lsof -i . Этот способ не очень надёжен, так как эти программы не подключаются к компьютеру по сети, а просто определяют, что происходит в системе. По этой причине, эти приложения часто подменяются нападающими. Таким способом взломщики пытаются скрыть свои следы, если они незаконно открыли порты.

Другим более надёжным способом проверки открытых портов является использование сканера портов, например nmap .

Следующая команда, запущенная с консоли, определяет, какие порты ждут TCP-соединений из сети:

nmap -sT -O localhost

Эта команда выводит примерно следующие результаты:

Starting nmap 3.55 ( ) at 2004-09-24 13:49 EDT Interesting ports on localhost.localdomain (127.0.0.1): (The 1653 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 111/tcp open rpcbind 113/tcp open auth 631/tcp open ipp 834/tcp open unknown 2601/tcp open zebra 32774/tcp open sometimes-rpc11 Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 — 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 12.857 days (since Sat Sep 11 17:16:20 2004) Nmap run completed — 1 IP address (1 host up) scanned in 5,190 seconds

Здесь видно, что работает portmap , так как запущена служба sunrpc . Однако есть и некая таинственная служба, открывшая порт 834. Чтобы проверить, не связан ли этот порт с какой-либо известной службой, введите:

cat /etc/services | grep 834

Эта команда не возвращает результата. Это означает, что хотя порт находится в зарезервированном диапазоне (от 0 до 1023) и для его открытия нужны права root, он не связан ни с одной известной службой.

Затем проверьте, что о нём сообщит команда netstat или lsof . Чтобы проверить порт 834 с помощью netstat , выполните следующую команду:

netstat -anp | grep 834

Команда возвращает следующий результат:

tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 653/ypbind

То, что команда netstat показала этот порт, успокаивает, так как злоумышленник, открывший порт на взломанном компьютере, скорее всего, не захочет, чтобы эта команда его вывела. Кроме этого, параметр [p] показывает код процесса (P >ypbind (NIS), работающей совместно со службой portmap .

Команда lsof показывает похожие сведения, так как она также может связать открытые порты со службами:

lsof -i | grep 834

Ниже приведена значимая часть результатов команды:

ypbind 653 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 655 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 656 0 7u IPv4 1319 TCP *:834 (LISTEN) ypbind 657 0 7u IPv4 1319 TCP *:834 (LISTEN)

Эти инструменты позволяют узнать о состоянии работающих на компьютере служб многое. Они очень гибки и могут предоставить массу информации о сетевых службах и их конфигурации. Поэтому очень рекомендуется обратиться к страницам man, посвящённым lsof , netstat , nmap и services .

Главное меню » Операционная система Linux » 3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом

Как проверить открытые порты в Linux с соответствующим сервисом-процессом?

Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.

1. Проверка открытых портов в Linux с помощью команды NETSTAT

В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.

Команда:

Вывод:

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

В приведенной выше командной порт используется HTTPd службы с PID 1086.

2. Проверка открытых портов в Linux с помощью утилиты lsof

Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.

Если порт открыт это означает, что какая либо программа (например сервис) использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать команду netstat. В выводе будут показаны все сервисы и прослушиваемые ими порты и ip адреса.

Способ 1. netstat

sudo netstat -ntulp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2392/smbd
tcp 0 0 0.0.0.0:9518 0.0.0.0:* LISTEN 2894/skype
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2896/vlc
tcp 0 0 127.0.0.1:3493 0.0.0.0:* LISTEN 2467/upsd
.

  • -l или —listening — посмотреть только прослушиваемые порты
  • -p или —program — показать имя программы и ее P >Способ 2 lsof

Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию i.

dhcpcd 2136 root 6u IPv4 4986 0t0 UDP *:bootpc
ntpd 2213 root 27u IPv6 5598 0t0 UDP [fe80::7879:19ff:fe51:f833]:ntp
hamachid 2323 root 8u IPv4 5587 0t0 TCP 192.168.1.2:35445->212.118.234.65:https (ESTABLISHED)
smbd 2392 root 27u IPv6 5624 0t0 TCP *:microsoft-ds (LISTEN)
sshd 2421 root 3u IPv4 6196 0t0 TCP *:ssh (LISTEN)
upsd 2467 nut 4u IPv4 6235 0t0 TCP comm-app.local:nut (LISTEN)

Еще один пример, смотрим какие процессы работают с портом 80:

sudo lsof -i | grep 80

ntpd 2213 root 23u IPv6 5422 0t0 UDP [fe80::beae:c5ff:febe:8bb7]:ntp
ntpd 2213 root 27u IPv6 5598 0t0 UDP [fe80::7879:19ff:fe51:f833]:ntp
skype 2894 serigy 87u IPv4 7080 0t0 TCP *:9518 (LISTEN)
chrome 3114 sergiy 122u IPv4 31904 0t0 TCP 192.168.1.2:47804->srv118-131-240-87.vk.com:https (ESTABLISHED)

Способ 3. nmap

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

Starting Nmap 6.47 ( ) at 2015-08-02 17:27 EEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00036s latency).
Other addresses for localhost (not scanned): 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1
rDNS record for 127.0.0.1: comm-app.local
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3493/tcp open nut
8080/tcp open http-proxy

Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

Детальнее об опциях сканирования в Nmap можно узнать в статье как просканировать сеть в Nmap.

Если вы хотите посмотреть какие порты на компьютере доступны снаружи, здесь тоже пригодится Nmap. Если компьютер — общедоступный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:

wget -O — -q icanhazip.com

Дальше запускаем сканирование:

В результате мы можем получить открытый порт 80 веб сервера, или даже 21 — файлового сервера, которых мы не устанавливали, эти порты открыты роутером, 80 — для веб-интерфейса, а 21 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS.

Оцените статью
SoftLast
Добавить комментарий