Portsentry : адекватная реакция. Настройка.

Сканирование портов является одним из самых распространенных и простых способов узнать, какая операционная система установлена на компьютере, какие службы запущены в данный момент и получить другую информацию о компьютере, подключенном к Internet , которая может быть использована для взлома и проникновения.

[Адлан Ерижоков]

Настройка

Теперь вы можете настроить работу Portsentry по своему усмотрению. Файл portsentry.conf содержит директивы конфигурации следующего формата:

--------------------------------------------------------------------------------
Параметр="значение"
--------------------------------------------------------------------------------

Параметры поддерживаются такие:

TCP_PORTS
Здесь через запятую перечисляются TCP-порты, которые проверяются Portsentry.
При подключении к ним, Portsentry записывает в информацию об этом в логи, затем выполняет команду, заданную пользователем, после этого блокирует хост посредством ipchains.

Опция используется при работе в режиме Classic и Enhanced Stealth Scan Detection Mode.
Желательно всегда оставлять порт 1 открытым, т.к. большинство сканировщиков портов начинают проверять с 1 и далее.
Это способствует более быстрому обнаружению сканирования. TCP-порты, открытые другими программами (25 при загруженном sendmail, 80 при загруженном httpd и т.д.) в этот список включатся не должны.

--------------------------------------------------------------------------------
TCP_PORTS="1,11,15,79,111,119,143,540,635"
--------------------------------------------------------------------------------

UDP_PORTS
То же что и TCP_PORTS, но для UDP-портов.

--------------------------------------------------------------------------------
UDP_PORTS="1,7,9,69,161,162,513,635,640,641"
--------------------------------------------------------------------------------

ADVANCED_PORTS_TCP
Значение этого параметра определяет верхнюю границу множества TCP-портов, которые проверяются Portsentry при работе в режиме Advanced Stealth Scan Detection Mode. Нижней границей является 1, т.е. при значении ADVANCED_PORTS_TCP равное 1024 проверяется подключение к любому порту в промежутке от 1 до 1024.

--------------------------------------------------------------------------------
ADVANCED_PORTS_TCP="1023"
--------------------------------------------------------------------------------

ADVANCED_PORTS_UDP
То же, что и ADVANCED_PORTS_TCP, но для UDP-портов.

--------------------------------------------------------------------------------
ADVANCED_PORTS_UDP="1023"
--------------------------------------------------------------------------------

ADVANCED_EXCLUDE_TCP
TCP-порты, которые исключаются из промежутка 1..ADVANCED_PORTS_TCP, т.е. из списка портов, предназначенных для проверки. Здесь обязательно нужно перечислить TCP-порты, открытые работающими программами.

--------------------------------------------------------------------------------
ADVANCED_EXCLUDE_TCP="23,25,80,110,113,139"
--------------------------------------------------------------------------------

ADVANCED_EXCLUDE_UDP
То же, что и ADVANCED_EXCLUDE_TCP, но для UDP-портов.

--------------------------------------------------------------------------------
ADVANCED_EXCLUDE_UDP="520,138,137,67"
--------------------------------------------------------------------------------

IGNORE_FILE
Имя и путь к файлу с IP-адресами хостов, которые не блокируются при подключении к порту, проверяемому Portsentry.

--------------------------------------------------------------------------------
IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"
--------------------------------------------------------------------------------

HISTORY_FILE
Имя и путь к файлу с историей работы Portsentry. В файл записывается время блокирования, имя и IP хоста, атакованный порт, протокол (TCP или UDP). Файл не создается заново при каждом запуске.

--------------------------------------------------------------------------------
HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history"
--------------------------------------------------------------------------------

BLOCKED_FILE
Строка, из которой формируется имя и путь к файлам, куда записывается информация о блокированных хостах.
Имя файла формируется так BLOCKED_FILE.РЕЖИМ_РАБОТЫ, где режим работы может быть tcp, udp, stcp, sudp, atcp, audp, т.е. если BLOCKED_FILE равен /usr/local/psionic/portsentry/portsentry.blocked, а режим работы audp, то имя файла будет /usr/local/psionic/portsentry/portsentry.blocked.audp.

--------------------------------------------------------------------------------
BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"
--------------------------------------------------------------------------------

BLOCK_TCP
Этот параметр в зависимости от значения, задает ответную реакцию Portsentry на сканирование портов: 0 - не блокировать хост, не запускать заданную пользователем команду, 1 - блокировать хост и запустить команду, 2 - только запустить заданную команду. Команда задается при помощи параметра KILL_RUN_CMD.

--------------------------------------------------------------------------------
BLOCK_TCP="1"
--------------------------------------------------------------------------------

BLOCK_UDP
То же, что и BLOCK_TCP, но для UDP.

--------------------------------------------------------------------------------
BLOCK_UDP="1"
--------------------------------------------------------------------------------

KILL_ROUTE
Этот параметр задает команду, которую надо выполнить для блокирования атакующего хоста, установив на него firewall или удалив его сетку из таблицы роутинга.
Для указания IP-адреса используется переменная $TARGET$. Переменная $PORT$ используется для указания порта, к которому было подключение.

--------------------------------------------------------------------------------
KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
--------------------------------------------------------------------------------

KILL_HOSTS_DENY
Этот параметр задает строку, которая вписывается в /etc/hosts.deny, для блокирования доступа к сервисам, запускаемым через inetd.

--------------------------------------------------------------------------------
KILL_HOSTS_DENY="ALL: $TARGET$"
--------------------------------------------------------------------------------

KILL_RUN_CMD
С помощью этого параметра можно определить команду, запускаемую до блокирования хоста. Можно поставить туда отправку e-mail'а администратору или запуск нюка в сторону сканировщика.

--------------------------------------------------------------------------------
KILL_RUN_CMD="teardrop 192.168.0.1 $TARGET$ -s $PORT$ -t 139 -n 5000"
--------------------------------------------------------------------------------

SCAN_TRIGGER
Данный параметр задает количество разрешенных подключений к проверяемым Portsentry портам одного и того же хоста, прежде, чем Portsentry начнет действовать. 0 определяет немедленную реакцию.

--------------------------------------------------------------------------------
SCAN_TRIGGER="0"
--------------------------------------------------------------------------------

PORT_BANNER Задает сообщение, которое будет выводится при подключении к проверяемому Portsentry порту. Автор Portsentry Craig H. Rowland в инструкции по установке пишет, что не рекомендует вставлять туда какое либо сообщение, т.к. это может разозлить или раззадорить сканировщика и подтолкнуть его к дальнейшим действиям. Решать вам...

--------------------------------------------------------------------------------
PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY."
--------------------------------------------------------------------------------

Пример portsentry.conf:

--------------------------------------------------------------------------------
TCP_PORTS="1,11,15,79,111,119,143,540,635,1080, 1524,2000,5742,6667,12345,12346"
UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700, 32770,32771,32772,32773,32774"
ADVANCED_PORTS_TCP="1023"
ADVANCED_PORTS_UDP="1023"
ADVANCED_EXCLUDE_TCP="23,25,80,110,113,139"
ADVANCED_EXCLUDE_UDP="520,138,137,67"

IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"
HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history"
BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"
BLOCK_UDP="1"
BLOCK_TCP="1"
KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
KILL_HOSTS_DENY="ALL: $TARGET$"
KILL_RUN_CMD="echo Ports Scaning from $TARGET$ on $PORT$ | mail root"
SCAN_TRIGGER="0"

--------------------------------------------------------------------------------

В файле portsentry.ignore вы должны перечислить IP-адреса компьютеров, которые не должны быть блокированы программой при подключении к проверяемому порту.
По умолчанию, там содержится два IP-адреса: 127.0.0.1 и 0.0.0.0.

Предыдущая  дальше

[ опубликовано 29/09/2000 ]

Адлан Ерижоков - Portsentry : адекватная реакция. Настройка.   Версия для печати