Pull to refresh

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

Reading time2 min
Views19K
Как вы наверное знаете сетевой сканер 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-пакеты по-прежнему доходят, но не получают ответа. На подобных экспериментах можно научиться многому.
Tags:
Hubs:
Total votes 61: ↑53 and ↓8+45
Comments44

Articles