Настройка системы обнаружения и блокирования попыток сканирования портов psad

Введение

Анализируя файлы событий системы любому системному администратору не раз приходилось сталкивается с фактами сканирования портов его системы.

В данной статье рассказывается о том, как с помощью psad (Port Scan Attack Detector) автоматически регистрировать и блокировать попытки сканирования портов вашего компьютера.

Сайт проекта psad находится по адресу http://www.cipherdyne.org/

Установка

На момент написания статьи последняя версия psad была 1.4.8.

Скачаем последнюю версию с сайта http://www.cipherdyne.org/psad/download/

соберем RPM пакет под ваш дистрибутив

Установим psad

Настройка

Перейдите в каталог /etc/sysconfig отредактируйте файл iptables вставив первой строкой правил:

Перезапустите iptables

Отредактируйте файл /etc/syslog.conf добавив строку:

Перезапустите демон syslog:

Перейдите в каталог /etc/psad.

На данный момент нас интересуют опции в файле psad.conf

Я постараюсь кратко описать их назначение.

Остальные параметры файла psad.conf существенным образом не влияют на поведение psad а задают стандартные пути файлов конфигурации. Я рекомендую оставить их без изменений.

В приведенном ниже примере файла psad.conf предполагается, что защищаемый компьютер:

  1. имеет один сетевой интерфейс,
  2. доменное имя example.ru,
  3. должен автоматически блокировать сканирующий хост средствами iptables на 1 час при достижении атакующим 3 уровня опасности(Danger level),
  4. посылать администратору на email admin@example.ru административные сообщения в случае блокирования атакующего хоста.

     EMAIL_ADDRESSES             admin@example.ru;
     HOSTNAME                    example.ru;
     HOME_NET                    NOT_USED;
     SYSLOG_DAEMON               syslogd;
     DANGER_LEVEL1               5;    ### Number of packets.
     DANGER_LEVEL2               15;
     DANGER_LEVEL3               150;
     DANGER_LEVEL4               1500;
     DANGER_LEVEL5               10000;
     CHECK_INTERVAL              5;
     SNORT_SID_STR               SID;
     PORT_RANGE_SCAN_THRESHOLD   20;
     ENABLE_PERSISTENCE          Y;
     SCAN_TIMEOUT                3600;
     SHOW_ALL_SIGNATURES         Y;
     MAX_HOPS                    20;
     IGNORE_CONNTRACK_BUG_PKTS   Y;
     IGNORE_PORTS                NONE;
     IGNORE_PROTOCOLS            NONE;
     IGNORE_INTERFACES           NONE;
     IGNORE_LOG_PREFIXES         NONE;
     EMAIL_ALERT_DANGER_LEVEL    3;
     ENABLE_MAC_ADDR_REPORTING   Y;
     ENABLE_FW_LOGGING_CHECK     Y;
     EMAIL_LIMIT                 0;
     EMAIL_LIMIT_STATUS_MSG      Y;
     ALERT_ALL                   Y;
     IMPORT_OLD_SCANS            N;
     ENABLE_DSHIELD_ALERTS       N;
     DSHIELD_ALERT_EMAIL         reports@dshield.org;
     DSHIELD_ALERT_INTERVAL      6;
     DSHIELD_USER_ID             0;
     DSHIELD_USER_EMAIL          NONE;
     DSHIELD_DL_THRESHOLD        0;
     ENABLE_AUTO_IDS             Y;
     AUTO_IDS_DANGER_LEVEL       3;
     AUTO_BLOCK_TIMEOUT          3600;
     ENABLE_AUTO_IDS_REGEX       N;
     AUTO_BLOCK_REGEX            ESTABLISHED;
     ENABLE_RENEW_BLOCK_EMAILS   N;
     ENABLE_AUTO_IDS_EMAILS      Y;
     IPTABLES_BLOCK_METHOD       Y;
     IPT_AUTO_CHAIN1             DROP, src, filter, INPUT, 1, PSAD_BLOCK_INPUT, 1;
     IPT_AUTO_CHAIN2             DROP, dst, filter, OUTPUT, 1, PSAD_BLOCK_OUTPUT, 1;
     IPT_AUTO_CHAIN3             DROP, both, filter, FORWARD, 1, PSAD_BLOCK_FORWARD, 1;
     FLUSH_IPT_AT_INIT           Y;
     IPTABLES_PREREQ_CHECK       1;
     TCPWRAPPERS_BLOCK_METHOD    N;
     WHOIS_TIMEOUT               60;
     WHOIS_LOOKUP_THRESHOLD      20;
     DNS_LOOKUP_THRESHOLD        20;
     ENABLE_EXT_SCRIPT_EXEC      N;
     EXTERNAL_SCRIPT             /bin/true;
     EXEC_EXT_SCRIPT_PER_ALERT   N;
     DISK_CHECK_INTERVAL         300;
     DISK_MAX_PERCENTAGE         95;
     DISK_MAX_RM_RETRIES         10;
     ENABLE_SCAN_ARCHIVE         N;
     TRUNCATE_FWDATA             Y;
     MIN_ARCHIVE_DANGER_LEVEL    1;
     MAIL_ALERT_PREFIX           [psad-alert];
     MAIL_STATUS_PREFIX          [psad-status];
     MAIL_ERROR_PREFIX           [psad-error];
     MAIL_FATAL_PREFIX           [psad-fatal];
     PSAD_DIR                    /var/log/psad;
     PSAD_RUN_DIR                /var/run/psad;
     PSAD_LIB_DIR                /var/lib/psad;
     SCAN_DATA_ARCHIVE_DIR       /var/log/psad/scan_archive;
     ERROR_DIR                   /var/log/psad/errs;
     ANALYSIS_MODE_DIR           /var/log/psad/ipt_analysis;
     SNORT_RULES_DIR             /etc/psad/snort_rules;
     FW_DATA_FILE                /var/log/psad/fwdata;
     ULOG_DATA_FILE              /var/log/psad/ulogd.log;
     FW_CHECK_FILE               /var/log/psad/fw_check;
     DSHIELD_LATEST_EMAIL        /var/log/psad/dshield.email;
     PID_FILE                    /var/run/psad/psad.pid;
     CMDLINE_FILE                /var/run/psad/psad.cmd;
     SIGS_FILE                   /etc/psad/signatures;
     ICMP_TYPES_FILE             /etc/psad/icmp_types;
     AUTO_DL_FILE                /etc/psad/auto_dl;
     SNORT_RULE_DL_FILE          /etc/psad/snort_rule_dl;
     POSF_FILE                   /etc/psad/posf;
     P0F_FILE                    /etc/psad/pf.os;
     PSAD_FIFO                   /var/lib/psad/psadfifo;
     ETC_HOSTS_DENY              /etc/hosts.deny;
     ETC_SYSLOG_CONF             /etc/syslog.conf;
     ETC_SYSLOGNG_CONF           /etc/syslog-ng/syslog-ng.conf;
     ETC_METALOG_CONF            /etc/metalog/metalog.conf;
     KMSGSD_PID_FILE             /var/run/psad/kmsgsd.pid;
     PSADWATCHD_PID_FILE         /var/run/psad/psadwatchd.pid;
     AUTO_BLOCK_IPT_FILE         /var/log/psad/auto_blocked_iptables;
     AUTO_BLOCK_TCPWR_FILE       /var/log/psad/auto_blocked_tcpwr;
     AUTO_IPT_SOCK               /var/run/psad/auto_ipt.sock;
     FW_ERROR_LOG                /var/log/psad/errs/fwerrorlog;
     PRINT_SCAN_HASH             /var/log/psad/scan_hash;
     PROC_FORWARD_FILE           /proc/sys/net/ipv4/ip_forward;
     PACKET_COUNTER_FILE         /var/log/psad/packet_ctr;
     DSHIELD_COUNTER_FILE        /var/log/psad/dshield_ctr;
     IPT_PREFIX_COUNTER_FILE     /var/log/psad/ipt_prefix_ctr;
     IPT_OUTPUT_FILE             /var/log/psad/psad.iptout;
     IPT_ERROR_FILE              /var/log/psad/psad.ipterr;
     iptablesCmd      /sbin/iptables;
     mknodCmd         /bin/mknod;
     psCmd            /bin/ps;
     mailCmd          /bin/mail;
     sendmailCmd      /usr/sbin/sendmail;
     ifconfigCmd      /sbin/ifconfig;
     killallCmd       /usr/bin/killall;
     netstatCmd       /bin/netstat;
     unameCmd         /bin/uname;
     whoisCmd         /usr/bin/whois_psad;
     dfCmd            /bin/df;
     fwcheck_psadCmd  /usr/sbin/fwcheck_psad;
     psadwatchdCmd    /usr/sbin/psadwatchd;
     kmsgsdCmd        /usr/sbin/kmsgsd;
     psadCmd          /usr/sbin/psad;
    

Запустите сервис psad

Для проверки правильности настройки psad просканируйте порты защищаемого вами компьютера при помощи nmap или nessus.

Более подробно о настройках psad можно прочитать на http://www.cipherdyne.org/psad/docs/config.html .

Информацию о том, чем psad отличается от аналогичных продуктов читайте http://www.cipherdyne.org/psad/docs/faq.html.

Может распространяться свободно при указании авторства.

Автор: Фролов Денис

Articles/DenisFrolov/PsadConfiguration (last edited 2008-05-18 11:11:13 by NikolayUlyanitsky)