Сканирование портов: что оно показывает
Сканирование портов — способ узнать, какие сетевые «двери» у системы открыты и какие сервисы за ними слушают. Разберём концепцию, а не атаку.
Что такое порт
Сетевые сервисы общаются через порты — пронумерованные точки входа. Веб обычно на 80 и 443, почта, базы данных, удалённый доступ — на своих номерах. Сканер портов проверяет, отвечает ли система на конкретных портах.
Зачем это этичному хакеру
Чтобы составить карту поверхности атаки: какие сервисы доступны, не открыто ли лишнее. Системные администраторы сканируют свои сети, чтобы найти забытые открытые порты и закрыть их. Это инвентаризация, а не взлом.
Три состояния порта
- Открыт (open) — за портом слушает сервис и готов к соединению.
- Закрыт (closed) — порт доступен, но сервиса на нём нет.
- Фильтруется (filtered) — ответа нет, обычно из-за фаервола: непонятно, открыт порт или нет.
# Концептуальная модель: как сканер классифицирует ответ порта
def classify(response):
if response == "accept":
return "open — за портом есть сервис"
if response == "reject":
return "closed — порт доступен, сервиса нет"
return "filtered — ответа нет, вероятно фаервол"
for r in ["accept", "reject", "no-reply"]:
print(r, "->", classify(r))Инструменты и легальность
Самый известный сканер — Nmap. Он умеет определять открытые порты, угадывать версии сервисов и ОС. Но сканировать чужие сети без разрешения во многих странах незаконно — это уже несанкционированное воздействие. Тренируйтесь только на своей сети или специальных учебных площадках (например, разрешённых лабораториях).
Меньше открытых дверей — меньше риска
Главный практический вывод: закрывайте порты, которые не нужны. Каждый открытый порт — потенциальная точка входа. Принцип минимальной поверхности атаки экономит куда больше нервов, чем любая «магия» защиты.