Как стать автором
Обновить

Предотвращение скрытого Nmap сканирования в Linux

Время на прочтение2 мин
Количество просмотров19K
Как вы наверное знаете сетевой сканер NMAP предназначен для сканирования машин или даже целых сетей на наличие открытых портов и он является наиболее эффективным в своем роде (особенно в умелых руках).Скрытое NMAP сканирование называтся таковым потому, что маловероятно, что системный журнал его зафиксирует поскольку использует нештатные комбинации флагов TCP-пакетов.
Однако, используя способность netfilter проверять флаги в заголовке TCP-пакета и записывать события в журнал, можно не только блокировать подобные попытки, но и регистрировать факт их наличия.Вот парочка правил:

iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j LOG --log-prefix «Stealth scan»
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP


Первое правило служит для обязательной записи события в журнал. После цели LOG пакет продолжает движение по цепочке условий (в отличие от целей DROP и ACCEPT. Принятые или отклоненные пакеты на дальнейшую проверку не пойдут). В данном случае пакет, удовлетворяющий первому условию, удовлетворит и второму, согласно которому он будет отклонен. Параметры --tcp-flags ACK,FIN FIN описывают комбинацию TCP-флагов. Первый список состояний (ACK,FIN) перечисляет тестируемые флаги, второй (FIN) – те из них, что установлены. Таким образом, условие соответствует тем пакетам, в которых есть FIN-флаг, но нет ACK. При нормальном TCP-соединении эта комбинация невозможна, зато типична для скрытого сканирования.

Проведите эксперимент: если у вас две Linux-системы, выберите одну из них мишенью, а на второй запустите нечто вроде

nmap -sF -p1-50 192.168.0.3

(подставьте нужный IP-адрес). Nmap сообщит вам об открытых портах. Если вы проследите судьбу пакетов через Ethereal, то увидите, что FIN-пакеты достигли цели, а в ответ были отправлены пакеты RST,ACK. Теперь добавьте на системе-мишени два правила, показанных выше, и повторите попытку. Вы увидите, что Nmap больше не обнаруживает открытые порты, а в журнале (у меня это /var/log/firewall) появились новые сообщения. Ethereal покажет, что FIN-пакеты по-прежнему доходят, но не получают ответа. На подобных экспериментах можно научиться многому.
Теги:
Хабы:
Всего голосов 61: ↑53 и ↓8+45
Комментарии44

Публикации

Истории

Работа

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань