Как использовать Nmap для сканирования открытых портов на вашем VPS

Вступление

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

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

Примечание. В этом руководстве рассматривается безопасность IPv4. В Linux защита IPv6 поддерживается отдельно от IPv4. Например, «nmap» сканирует адреса IPv4 по умолчанию, но также может сканировать адреса IPv6, если указан соответствующий параметр (nmap -6).

Если ваш VPS настроен для IPv6, не забудьте защитить оба сетевых интерфейса IPv4 и IPv6 с помощью соответствующих инструментов. Дополнительные сведения о средствах IPv6 см. В этом руководстве: Как настроить инструменты для использования IPv6 на Linux VPS

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

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

Этот уровень является основным уровнем, с которым связаны порты.

Порт-терминология

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

  • Порт : адресное сетевое местоположение, реализованное внутри операционной системы, которое помогает различать трафик, предназначенный для разных приложений или служб.
  • Internet Sockets : дескриптор файла, который указывает IP-адрес и соответствующий номер порта, а также протокол передачи, который будет использоваться для обработки данных.
  • Связывание . Процесс, который выполняется, когда приложение или служба использует интернет-сокет для обработки данных, которые он вводит и выводит.
  • Слушание . Говорят, что служба «прослушивает» порт, когда он привязан к комбинации портов / протоколов / IP-адресов, чтобы ждать запросов от клиентов службы.

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

  • Сканирование портов. Сканирование портов — это процесс попыток подключения к нескольким последовательным портам с целью получения информации о том, какие из них открыты, а какие службы и операционная система находятся за ними.

Общие порты

Порты задаются числом от 1 до 65535.

  • Многие порты ниже 1024 связаны с услугами, которые Linux и Unix-подобные операционные системы считают критическими для важных сетевых функций, поэтому у вас должны быть привилегии root для назначения им сервисов.
  • Порты от 1024 до 49151 считаются «зарегистрированными». Это означает, что они могут быть «зарезервированы» (в очень свободном смысле слова) для определенных услуг, отправив запрос в IANA (Internet Assigned Numbers Authority). Они не строго соблюдаются, но они могут дать представление о возможных услугах, запущенных на определенном порту.
  • Порты между 49152 и 65535 не могут быть зарегистрированы и предлагаются для частного использования.

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

Однако есть некоторые порты, которые стоит знать из-за их вездесущности. Ниже приведен только очень неполный список:

  • 20 : данные FTP
  • 21 : Порт управления FTP
  • 22 : SSH
  • 23 : Telnet <= Небезопасно, не рекомендуется для большинства целей
  • 25 : SMTP
  • 43 : Протокол WHOIS
  • 53 : службы DNS
  • 67 : Порт сервера DHCP
  • 68 : Порт клиента DHCP
  • 80 : HTTP-трафик <= Обычный веб-трафик
  • 110 : почтовый порт POP3
  • 113 : Идентификационные службы аутентификации в сетях IRC
  • 143 : Почтовый порт IMAP
  • 161 : SNMP
  • 194 : IRC
  • 389 : порт LDAP
  • 443 : HTTPS <= Безопасный веб-трафик
  • 587 : SMTP <= порт представления сообщений
  • 631 : порт демона печати CUPS
  • 666 : DOOM <= Эта унаследованная игра FPS имеет собственный специальный порт

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

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

Вы можете получить короткий список некоторых общих портов, набрав:

less /etc/services

Он предоставит вам список общих портов и связанных с ними сервисов:

. . .
tcpmux          1/tcp                           # TCP port service multiplexer
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
daytime         13/tcp
daytime         13/udp
netstat         15/tcp
qotd            17/tcp          quote
msp             18/tcp                          # message send protocol
. . .

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

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

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

Тот, который установлен по умолчанию для большинства дистрибутивов Linux netstat.

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

sudo netstat -plunt
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      785/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      785/sshd 

Это показывает порт и слуховой сокет, связанные с сервисом, и перечисляет протоколы UDP и TCP.

Установить Nmap

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

Из всех доступных инструментов для этого, nmapпожалуй, самый распространенный и мощный.

Вы можете установить nmap на машине Ubuntu или Debian, введя:

sudo apt-get update
sudo apt-get install nmap

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

less /usr/share/nmap/nmap-services
. . .
tcpmux  1/tcp   0.001995        # TCP Port Service Multiplexer [rfc-1078]
tcpmux  1/udp   0.001236        # TCP Port Service Multiplexer
compressnet     2/tcp   0.000013        # Management Utility
compressnet     2/udp   0.001845        # Management Utility
compressnet     3/tcp   0.001242        # Compression Process
compressnet     3/udp   0.001532        # Compression Process
unknown 4/tcp   0.000477
rje     5/udp   0.000593        # Remote Job Entry
unknown 6/tcp   0.000502
echo    7/tcp   0.004855
echo    7/udp   0.024679
echo    7/sctp  0.000000
. . .

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

Как сканировать порты с помощью Nmap

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

Создатели nmap фактически предоставляют тестовый сервер, расположенный по адресу:

scanme.nmap.org

Это или ваши собственные экземпляры VPS являются хорошими объектами для практики nmap.

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

Сканирование операционной системы хоста:

sudo nmap -O remote_host

Пропустите часть обнаружения сети и предположите, что хост находится в сети. Это полезно, если вы получите ответ, в котором говорится: «Примечание: Host кажется« вниз »в ваших других тестах. Добавьте это к другим параметрам:

sudo nmap -PN remote_host

Укажите диапазон с «-» или «/ 24» для сканирования сразу нескольких хостов:

sudo nmap -PN xxx.xxx.xxx.xxx-yyy

Сканирование сетевого диапазона для доступных сервисов:

sudo nmap -sP network_address_range

Сканирование без предварительной обработки обратного DNS-поиска по указанному IP-адресу. Это должно ускорить ваши результаты в большинстве случаев:

sudo nmap -n remote_host

Сканирование определенного порта вместо всех общих портов:

sudo nmap -p port_number remote_host

Для сканирования TCP-соединений nmap может выполнить трехстороннее рукопожатие (поясняется ниже) с целевым портом. Выполните его так:

sudo nmap -sT remote_host

Для сканирования соединений UDP введите:

sudo nmap -sU remote_host

Сканирование для каждого порта TCP и UDP:

sudo nmap -n -PN -sT -sU -p- remote_host

Сканирование TCP «SYN» использует способ установления соединения TCP.

Чтобы запустить TCP-соединение, запрашивающий конец отправляет на сервер пакет «synchronize request». Затем сервер отправляет обратно пакет подтверждения синхронизации. Исходный отправитель отправляет обратно обратно сервер подтверждения, и устанавливается соединение.

Сканирование «SYN», однако, отключает соединение, когда первый пакет возвращается с сервера. Это называется «полуоткрытым» сканированием и используется для ускорения сканирования портов, поскольку приложение, связанное с этим портом, не получит трафик, потому что соединение никогда не завершено.

Это больше не считается скрытным с принятием более продвинутых брандмауэров и помечением неполного запроса SYN во многих конфигурациях.

Чтобы выполнить сканирование SYN, выполните:

sudo nmap -sS remote_host

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

Вы можете использовать флаги «-sF», «-sX» или «-sN». Все они произведут ответ, который мы ищем:

sudo nmap -PN -p port_number -sN remote_host

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

sudo nmap -PN -p port_number -sV remote_host

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

Заключение

Понимание конфигурации порта и как узнать, какие векторы атаки находятся на вашем сервере, — это всего лишь один шаг к обеспечению безопасности вашей информации и вашего VPS. Однако это умение essentail.

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

Услуги по клинингу стоимость уборки квартиры добротно моем, быстрое выезжаем, уборка в москве от 1700 руб.

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

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