[детектор сканирования портов PortSentry]материал подготовил: А. В. Кириллов 26.04.2005
Вторжение в компьютерную систему обычно начинается с предварительной оценки недостатков защиты сетевого периметра вашего сервера, подключенного к Сети. В ходе такой «пристрелки» взломщику в первую очередь необходимо узнать список открытых портов и оценить принадлежность операционной системы вашего компьютера. В предыдущей статье была описана программа scanlogd, позволяющая анализировать попытки сканирования вашего сервера. Однако в современной Сети большое распространение получили атаки с использованием завуалированных техник сканирования вроде «стелс». исходя из этого, применение scanlogd в одиночку не даст однозначно положительных результатов.
Если вас не устраивают скромные возможности scanlogd, существует более продвинутый анализатор попыток сканирования — PortSentry. Эта программа позволяет не только зафиксировать сканирование вашего компьютера по сети. Она также дает возможность адекватно отреагировать на данный процесс (не сканировать в ответ, конечно, а просто заблокировать доступ хосту-нарушителю к вашему серверу). Вы можете анализировать процесс сканирования вашего хоста и запускать при этом внешние программы (вроде iptables).
В AltLinux установка утилиты PortSentry выполняется с помощью Synaptic и является рутинной процедурой. PortSentry, так же как и scanlogd, запускается в режиме демона. После завершения процесса установки (в любом дистрибутиве Linux) следует проверить правильность функционирования скрипта автозапуска демона. Для этого следует проверить наличие символической ссылки в каталоге /etc/rc5.d/ на файл /etc/init.d/portsentry, например, с помощью следующей команды : # ls -l /etc/rc5.d/*portsentry* Конечно же, если такой ссылки нет, ее следует создать (как это делать применительно к scanlogd, описано выше).
Установка PortSentry
Основные возможности PortSentry:
возможность широкой настройки политики поведения по умолчанию. Демон PortSentry можно запустить в одном из трех режимов работы. Таким образом, вы можете выбрать, что для вас важнее — остановить нарушителя вашего сетевого периметра или зафиксировать попытку проникновения (возможность регулируется указанием определенных параметров командной строки, для чего следует отредактировать инит-скрипт (/etc/init.d/portsentry) запуска демона PortSentry);
способность выполнения ответных действий (автор программы чрезвычайно рекомендует ограничиться блокированием хоста взломщика, а не принимать адекватных мер вроде ответного сканирования) по отношению к нарушителю ваших сетевых границ. Например, вы можете добавить в таблицу вашего файрвола такое правило, которое будет исключать возможность обмена информацией с хостом-нарушителем (также можно добавлять строку в файл /etc/hosts.deny);
тонкая настройка диапазонов прослушиваемых и игнорируемых портов и возможность создания списка игнорируемых хостов. Возможность необходима для исключения ложных срабатываний системы защиты, построенной на PortSentry. Таким образом, например, можно исключить 53-й порт, чтобы в дальнейшем не получать предупреждений про сканирование этого порта игровыми программами, которые несколько фривольно используют сетевые возможности (параметры ADVANCED_EXCLUDE_TCP или ADVANCED_EXCLUDE_UDP, которые используются в «продвинутом» режиме запуска демона PortSentry). Игнорируемые хосты перечисляются в файле, который описывается в конфигурационном параметре IGNORE_FILE.
Основные возможности PortSentry
Демон PortSentry может быть запущен в следующих режимах:
классический (ключ запуска демона -tcp или -udp ). В этом режиме демон PortSentry ожидае