Гид по технологиям

Проверка открытых портов в Linux с помощью Nmap

• 6 min read • Безопасность • Обновлено 30 Nov 2025
Проверка открытых портов в Linux с Nmap
Проверка открытых портов в Linux с Nmap

Почему проверять порты важно

Открытые порты — это входные точки в систему. Даже если ваш компьютер настроен как десктоп, служба, слушающая на порту, может стать вектором атаки. Регулярные сканирования помогают обнаружить «фантомные» сервисы, настроенные автоматически вместе с пакетами, и сократить поверхность атаки.

Important: Сканы внешних сетей без разрешения владельца запрещены. Проверяйте только ваши устройства или сети с разрешения.

Установка Nmap

Nmap — распространённый инструмент безопасности и доступен в репозиториях большинства дистрибутивов. На Ubuntu/Debian его устанавливают так:

sudo apt update
sudo apt install nmap

После установки подтвердите версию:

nmap --version

Как найти IP‑адрес локального компьютера

Если не знаете IP, узнайте его командой (пример для распространённых систем):

ip addr show

Или, если установлен net-tools:

ifconfig

Запомните адрес вашего интерфейса (например, 192.168.1.100) и подставьте его в команды ниже.

Базовое сканирование Nmap

Nmap имеет множество опций. Для начала достаточно простого сканирования популярных портов:

sudo nmap 192.168.1.100

Для TCP SYN‑скана с определением ОС и версий сервисов используйте:

sudo nmap -sS -O 192.168.1.100

Агрессивное сканирование (больше информации, больше шуму в сети):

sudo nmap -A 192.168.1.100

Если хотите просканировать все 65535 TCP‑портов (будет долго):

sudo nmap -sS -O -p- 192.168.1.100

Check For Open Ports With NMAP

Alt: Фрагмент интерфейса Nmap с результатами скана портов на хосте

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

Обычно Nmap выдаёт таблицу вида:

PORT STATE SERVICE 22/tcp open ssh 80/tcp open http

  • PORT — порт/протокол.
  • STATE — open/filtered/closed.
  • SERVICE — предположение Nmap о сервисе.

Если порт «open» — сервис принимает соединения. “filtered” означает, что пакет блокируется брандмауэром и Nmap не получил ответа.

Что делать с найденными портами

  1. Запишите все открытые порты и соответствующие им сервисы.
  2. Спросите: нужен ли этот сервис на данном хосте?
  3. Если нет — остановите и отключите сервис.
  4. Если нужен — ограничьте доступ (firewall, привилегии, настройка bind‑адреса).

Scan for ports with NMAP

Alt: Окно терминала с примером запуска Nmap и списком обнаруженных открытых портов

Частые порты и сервисы

Ниже — часто встречающиеся порты. Если вы не запускали эти службы умышленно — разберитесь:

  • 21 — FTP
  • 22 — SSH
  • 25 — SMTP (отправка почты)
  • 53 — DNS
  • 80 — HTTP (веб‑сервер)
  • 110 — POP3
  • 123 — NTP
  • 143 — IMAP
  • 443 — HTTPS
  • 465 — SMTPS
  • 631 — CUPS (печать)
  • 993 — IMAPS
  • 995 — POP3S

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

Поиск процесса, прослушивающего порт

Чтобы найти процесс, который слушает порт, используйте:

sudo ss -tulpen | grep LISTEN

Или старую, но знакомую команду netstat (если установлена):

sudo netstat -tulpen | grep LISTEN

Команда покажет PID и имя процесса. По PID можно понять службу:

ps -p  -o pid,user,cmd

Остановка и отключение сервисов (systemd)

Когда вы нашли нежелательную службу — остановите и отключите её от автозапуска:

sudo systemctl stop apache2
sudo systemctl disable apache2

Если не уверены в точном имени сервиса, перечислите директорию и посмотрите записи:

ls -lah /etc/init.d

Search For Services

Alt: Список системных сервисов в каталоге /etc/init.d

Если служба управляется snap или docker, остановите соответствующий контейнер или snap‑сервис.

Unwanted Service Stopped

Alt: Терминал с подтверждением остановки и отключения службы через systemctl

Блокировка портов: iptables, nftables, UFW

Блокировать порты можно на уровне брандмауэра. Примеры для iptables (IPv4):

Разрешить локальный трафик и SSH, и блокировать всё остальное входящее:

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Сохраните правила (зависит от дистрибутива):

sudo apt install iptables-persistent
sudo netfilter-persistent save

Альтернатива: nftables — современная замена iptables. UFW (Uncomplicated Firewall) обеспечивает удобный интерфейс поверх netfilter:

sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable

Note: Настраивайте правила аккуратно — можно потерять доступ по SSH. При удалённом доступе сначала добавьте правило для SSH и проверьте его работу.

Что делать, если что‑то кажется подозрительным

Если вы нашли неизвестный сервис, выполните следующие шаги:

  1. Узнайте процесс: ss/netstat -> PID -> ps.
  2. Посмотрите бинарный путь: ls -l /proc//exe.
  3. Проверяйте контроль подписей пакетов: dpkg -S <путь> или rpm -qf <путь>.
  4. Просмотрите логи: /var/log/syslog, /var/log/auth.log, journalctl -xe.
  5. Запустите проверки руткитов/вредоносного ПО.

Полезные утилиты (установите из репозитория):

sudo apt install rkhunter chkrootkit clamav
sudo rkhunter --checkall
sudo chkrootkit
sudo clamscan -r /home

Если обнаружены следы компрометации, изолируйте машину (вырежьте сеть), соберите артефакты и, при необходимости, восстановите из надежной резервной копии.

Альтернативные способы обнаружения открытых портов

  • lsof -i — показывает процессы и сокеты.
  • ss — быстрая замена netstat.
  • netstat — старый, но известный инструмент.
  • Сканирование с внешнего хоста позволяет проверить брандмауэр и NAT‑правила.

Методология — быстрый чек‑лист (SOP)

  1. Подготовка: обновите базы и установите инструменты (nmap, ss, rkhunter).
  2. Сканирование: nmap локально и, при необходимости, с другого хоста.
  3. Идентификация: ss/netstat -> PID -> ps -> пакет.
  4. Решение: остановить/отключить/узнать конфигурацию.
  5. Защита: применить firewall‑правила, ограничить bind‑адрес, включить аутентификацию.
  6. Мониторинг: поставить периодический чек (cron/удалённые сканы).

Роли — контрольные списки

Администратор:

  • Сканирует сеть ежемесячно.
  • Поддерживает журнал изменений сервисов.
  • Настраивает брандмауэр по принципу «минимальных привилегий».

Пользователь (не админ):

  • Сообщает администратору о неизвестных службах.
  • Не устанавливает пакеты без проверки их сервисов.

Матрица рисков и меры (качественная)

  • Низкий риск: локальные сервисы для разработки, доступные только на loopback. Мера: оставить, документировать.
  • Средний риск: сервис, открытый в локальной сети. Мера: ограничить доступ по ACL, использовать TLS.
  • Высокий риск: сервис, открытый в интернет и не обновлён. Мера: отключить, обновить или заменить.

Шпаргалка команд (cheat sheet)

  • Установка Nmap: sudo apt install nmap
  • Быстрый скан: sudo nmap 192.168.1.100
  • SYN + определение ОС: sudo nmap -sS -O 192.168.1.100
  • Полный порт‑скан: sudo nmap -p- 192.168.1.100
  • Что слушает: sudo ss -tulpen | grep LISTEN
  • Остановка сервиса: sudo systemctl stop
  • Отключение автозапуска: sudo systemctl disable
  • Временная блокировка всех входящих: sudo iptables -P INPUT DROP

Критерии приёмки

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

Частые ошибки и когда подход не работает

  • Ошибка: останавливали службу, но порт всё ещё открыт — проверьте, не запущен ли эквивалентный процесс в контейнере (Docker) или snap.
  • Когда Nmap даёт «filtered» — это может значить брандмауэр, а не отсутствие службы.
  • Внешний NAT/маршрутизатор может скрывать порты — проверяйте как с локальной машины, так и с внешней точки.

Рекомендации по безопасности и практики жёсткой настройки

  • Принцип минимальных привилегий: запускать сервисы с минимальными правами.
  • Обновления: своевременно патчьте пакеты, особенно сетевые сервисы.
  • Логи и оповещения: настраивайте централизованный сбор логов и простые алерты при появлении новых слушающих портов.

Короткая памятка для удалённого админа

  1. Добавьте правило для SSH перед сменой политики INPUT.
  2. Проверьте настройки через другую сессию, прежде чем закрывать текущую.
  3. Имея доступ к консоли (out‑of‑band), можно восстановить соединение при ошибке правила.

Заключение

Проверка открытых портов — простая, но эффективная мера безопасности. Nmap помогает обнаружить потенциальные угрозы, systemd — быстро остановить нежелательные сервисы, а firewall (iptables/nftables/ufw) — ограничить доступ в рамках политики. Регулярность и документированность действий делают систему устойчивее к атакам.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро