Проверка открытых портов в 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
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 не получил ответа.
Что делать с найденными портами
- Запишите все открытые порты и соответствующие им сервисы.
- Спросите: нужен ли этот сервис на данном хосте?
- Если нет — остановите и отключите сервис.
- Если нужен — ограничьте доступ (firewall, привилегии, настройка bind‑адреса).

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
Alt: Список системных сервисов в каталоге /etc/init.d
Если служба управляется snap или docker, остановите соответствующий контейнер или snap‑сервис.

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 enableNote: Настраивайте правила аккуратно — можно потерять доступ по SSH. При удалённом доступе сначала добавьте правило для SSH и проверьте его работу.
Что делать, если что‑то кажется подозрительным
Если вы нашли неизвестный сервис, выполните следующие шаги:
- Узнайте процесс: ss/netstat -> PID -> ps.
- Посмотрите бинарный путь: ls -l /proc/
/exe. - Проверяйте контроль подписей пакетов: dpkg -S <путь> или rpm -qf <путь>.
- Просмотрите логи: /var/log/syslog, /var/log/auth.log, journalctl -xe.
- Запустите проверки руткитов/вредоносного ПО.
Полезные утилиты (установите из репозитория):
sudo apt install rkhunter chkrootkit clamav
sudo rkhunter --checkall
sudo chkrootkit
sudo clamscan -r /homeЕсли обнаружены следы компрометации, изолируйте машину (вырежьте сеть), соберите артефакты и, при необходимости, восстановите из надежной резервной копии.
Альтернативные способы обнаружения открытых портов
- lsof -i — показывает процессы и сокеты.
- ss — быстрая замена netstat.
- netstat — старый, но известный инструмент.
- Сканирование с внешнего хоста позволяет проверить брандмауэр и NAT‑правила.
Методология — быстрый чек‑лист (SOP)
- Подготовка: обновите базы и установите инструменты (nmap, ss, rkhunter).
- Сканирование: nmap локально и, при необходимости, с другого хоста.
- Идентификация: ss/netstat -> PID -> ps -> пакет.
- Решение: остановить/отключить/узнать конфигурацию.
- Защита: применить firewall‑правила, ограничить bind‑адрес, включить аутентификацию.
- Мониторинг: поставить периодический чек (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/маршрутизатор может скрывать порты — проверяйте как с локальной машины, так и с внешней точки.
Рекомендации по безопасности и практики жёсткой настройки
- Принцип минимальных привилегий: запускать сервисы с минимальными правами.
- Обновления: своевременно патчьте пакеты, особенно сетевые сервисы.
- Логи и оповещения: настраивайте централизованный сбор логов и простые алерты при появлении новых слушающих портов.
Короткая памятка для удалённого админа
- Добавьте правило для SSH перед сменой политики INPUT.
- Проверьте настройки через другую сессию, прежде чем закрывать текущую.
- Имея доступ к консоли (out‑of‑band), можно восстановить соединение при ошибке правила.
Заключение
Проверка открытых портов — простая, но эффективная мера безопасности. Nmap помогает обнаружить потенциальные угрозы, systemd — быстро остановить нежелательные сервисы, а firewall (iptables/nftables/ufw) — ограничить доступ в рамках политики. Регулярность и документированность действий делают систему устойчивее к атакам.
Резюме: регулярно сканируйте, идентифицируйте процессы, отключайте ненужное и применяйте правила брандмауэра. Это снижает поверхность атаки и повышает общую безопасность системы.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента