PortSentry для обнаружения скана портов и перехвата трафика
  • Категории
  • Подписка
  • Разместить статью
16/06/10 12 6961 Детекторы атак
-

PortSentry для обнаружения скана портов и перехвата трафика

Вступление

Программа, предназначенная для защиты систем. С ее помо­щью выявляются попытки сканирования системы и доступа к различным портам. Можно сконфигурировать программу так, чтобы при обнаружении сканера она выполняла опре­деленные действия, например заносила адрес сканера в файл hosts.deny или блоки­ровала маршрут к нему в таблице маршрутизации. Помимо этого программа генерирует журнальные сообщения с указанием типа атаки и адреса узла-сканера.

Информация о продукте:

Программа разработана компанией Psionic Software. Она превратилась в коммер­ческий продукт (версии 1.х и 2.х), но версия 1.0.11 (и ряд более старых версий в форматах rpm и tar.gz) по-прежнему доступна на многих FTP-серверах, включая ftp.redhat.com.

Инсталяция и конфигурирование

В случае RPM-дистрибутива воспользуйтесь ко­мандой rpm, а в случае tar-архива — командами make linux и make install. Рассмотрим первый вариант, так как с ним проще работать.

При инсталляции RPM-дистрибутива программа PortSentry регистрируется в файле /etc/services, а в каталоге /etc/rc.d/init.d создается сценарий portsen-try. Дополнительная конфигурация не требуется, но есть ряд моментов, которые следует учесть.

Программа PortSentry способна работать в трех разных режимах по отношению как к UDP-, так и к TCP-портам. Другими словами, можно одновременно запустить 6 эк­земпляров программы, решающих разные задачи. По умолчанию используется базовый режим. В этом режиме программа подключается к заранее заданным портам, делая вид, будто является некой сетевой службой. В невидимом режиме порты выбранные прослу­шиваются на уровне сокетов, что позволяет выявлять различные варианты невидимого сканирования (TCP SYN, TCP FIN, TCP NULL, TCP Xmas Tree). В усовершенствованном невидимом режиме контролируются все порты в диапазоне 1-1023 (верхнюю границу можно расширить, хотя это не рекомендуется). Нужно заметить, что в невидимых режимах про­грамма часто объявляет «ложную тревогу».

В процессе инсталляции создаются списки контролируемых TCP- и UDP-портов. По умолчанию это ТСР-порты 1, 11, 15, 143, 540, 635, 1080, 1524, 2000, 5742, 6667, 12345, 12346, 20034, 31337, 32771, 32772, 32773, 32774, 40421, 49724, 54320 и UDP-порты 1, 513, 635, 640, 641, 700, 32770, 32771, 32772, 32773, 32774, 31337, 54321. Программа конфигурируется на автоматическое блокирование последующих попыток подключиться к компьютеру с атакующего узла.

Многих администраторов не устраивают установки по умолчанию. В конфигураци­онных файлах, находящихся в каталоге /etc/portsentry, содержится ряд парамет­ров, которые можно изменить для повышения эффективности программы и адаптации ее к конкретным условиям. Таких файлов три: portsentry.conf, portsentry.modes и portsentry. ignore. В файле portsentry. conf хранятся наиболее важные уста­новки, включая списки портов, параметры игнорирования, определения удаляемых марш­рутов и внешних команд, пороговые значения и др. Файл portsentry.modes опре­деляет, в каких режимах следует запускать программу, а файл portsentry. ignore содержит IP-адреса систем, которые не нужно блокировать.

Файл portsentry.conf

Первый раздел в нем — это раздел конфигурирования портов, где определяются TCP- и UDP-порты, контролируемые в ба­зовом режиме. Установки по умолчанию выглядят так:

TCP_PORTS="1, 11, 15, 143, 540, 635, 1080, 1524, 2000, 5742, 6667, 12345, 12346, 20034, 31337, 32771, 32772, 32773, 32774, 40421, 49724, 54320" UDP_PORTS="1, 513, 635, 640, 641, 700, 32770, 32771, 32772, 32773, 32774, 31337, 54321"

В виде комментариев в файле содержится еще несколько готовых списков. Второй раздел содержит параметры усовершенствованного невидимого режима. Сна­чала задается число контролируемых портов:

ADVANCED_PORTS_TCP="1023"
ADVANCED_PORTS_UDP="1023"

Затем указываются порты, которые программа должна игнорировать. Обычно это пор­ты, по которым часто выдается «ложная тревога»:

# RPC,   TCP  ident  ~NetBIOS
ADVANCED_EXCLUDE_TCP="111, 113, 139"
# RIP, NetBIOS ~ВООТР
ADVANCED_EXCLUDE_UDP="520, 138, 137, 67"

В следующем разделе задается местонахождение трех конфигурационных файлов про­граммы. Файл portsentry. ignore содержит список IP-адресов, которые не должны блокироваться. Файл portsentry.history содержит пополняющийся список адре­сов, которые были заблокированы. Файлы portsentry.blocked. * содержат списки адресов, заблокированных в данном сеансе. Один такой файл создается для протокола UDP, другой — для протокола TCP. Установки по умолчанию таковы:

# Блокируемые узлы
IGNORE_FILE="/etc/portsentry/portsentry.ignore"
# Узлы, которым перекрывался доступ (пополняющийся список)
HISTORY_FILE="/var/portsentry/portsentry.history"
# Узлы, заблокированные выданном сеансе (временный список
# до следующей перезагрузки)
BLOCKED_FILE="/var/portsentry/portsentry.blocked"

Далее задаются действия, предпринимаемые в ответ на атаку UDP- и TCP-портов. Они кодируются по номерам: 0, 1 и 2. Действие 0 означает, что факт сканирования регистри­руется, но узел не блокируется. Действие 1 означает блокирование любых сканеров UDP-и TCP-портов (активизируются установки KILL_ROUTE и KILL_HOSTS_DENY). Нако­нец, действие 2 (задано по умолчанию) заставляет программу временно (до окончания сеанса) заблокировать доступ к службе, зарегистрировать факт сканирования и выполнить действия, указанные в директивах KILL_RUN_CMD. Установки по умолчанию таковы:

BLOCK_UDP="2"
BLOCK_TCP="2"

В разделе удаляемых маршрутов содержатся директивы KILL_ROUTE. Установки по умолчанию вполне подходят для Linux:

KILL_ROUTE="/sbin/route add -host  $TARGET$  gw  127.0.0.1"

В следующем разделе определяется, какой текст добавляется в файл hosts.deny для блокирования узла, занимающегося сканированием. Установка по умолчанию такова:

KILL_HOSTS_DENY="ALL:   $TARGET$"

В последнем разделе задается порог сканирования: сколько подключений к порту должно произойти, прежде чем программа распознает сканер. Нулевое значение означает немедленное реагирование:

SCAN_TRIGGER="0"

Файл portsentry .modes

Здесь задаются режимы запуска программы PortSentry. Как уже говорилось, всего поддерживается 6 режимов: tcp (базовый режим TCP), udp (базо­вый режим UDP), step (невидимый режим TCP), sudp (невидимый режим UDP), atcp (усовершенствованный невидимый режим TCP) и audp (усовершенствованный невиди­мый режим UDP). По умолчанию используются следующие установки:

tcp
udp
#stcp
#sudp
#atcp
#audp

Но эффективнее запускать программу в одном из невидимых режимов:

#tcp
#udp
#stcp
#sudp
atcp
audp

Запуск PortSentry

После конфигурирования ее можно запустить с помощью команды:

# /etc/rc.d/init.d/portsentry start

или просто перезагрузить систему (сценарий portsentry будет вызван при переходе на уровень выполнения 3 или 5). Сообщения программы направляются в файл /var/log/ messages. Типичные сообщения показаны ниже:

Apr 13 13:43:23 maureen portsentry[25247]: adminalert: Psionic PortSentry 1.0 is starting.

Apr 13 13:43:23 maureen portsentryt25244]: adminalert: Advanced mode will monitor first 1023 ports

Apr 13 13:43:23 maureen portsentry: Starting portsentry -audp: succeeded Apr 13 13:43:23 maureen portsentry[25248]: adminalert: Advanced mode will manually exclude port: 520

Apr 13 13:43:23 maureen portsentry[25248]: adminalert: Advanced Stealth scan detection mode activated. Ignored UDP port: 111 Apr 13 13:43:23 maureen portsentry[25248]: adminalert: Advanced Stealth scan detection mode activated. Ignored UDP port: 818

Apr 13 13:43:58 maureen portsentry[25244]: attackalert: SYN/Normal scan from host: 192.168.1.15/192.168.1.15 to TCP port: 980 Apr 13 13:43:58 maureen portsentry[25244]: attackalert: Host: 192.168.1.15/192.168.1.15 is already blocked Ignoring

Apr 13 15:20:08 maureen portsentry[25248]: attackalert: UDP scan from host: drgnome/192.168.1.47 to UDP port: 525 Apr 13 15:20:08 maureen portsentry[25248]: attackalert: Host: drgnome/192.168.1.47 is already blocked Ignoring

При работе с программой PortSentry следует помнить о том, что можно легко забло­кировать доступ легальным пользователям из-за ложных предупреждений, посылаемых программой. Если это произошло, нужно перезапустить программу, чтобы очистить фай­лы сеансов, а также проверить файл /etc/hosts. deny. Можно также добавить прове­ренные узлы в файл /etc/portsentry/portsentry. ignore, чтобы программа их не блокировала.


12 комментариев на «“PortSentry для обнаружения скана портов и перехвата трафика”»

  1. Birma86:

    По-моему Rayzor дело говорит…

  2. Классная прога,думаю стоит попробовать…

Добавить комментарий

Яндекс.Метрика