PSAD — представляет собой набор из трех легких системных демонов, которые работают на Linux и анализируют логи iptables для обнаружения сканирования портов и наличие подозрительного трафика.
Кроме того, PASD может взаимодействовать с Snort – системой обнаружения вторжения.
Сканирование портов не вредит системе, но само по себе является первым и обязательный шагом атаки на целевую систему. Злоумышленник может использовать nmap или любые другие аналогичные инструменты для сканирования сети. Результатом данного сканирования будут возможные, более конкретные векторы атаки (информации о сети, сервисах, хотах, и т.д).
Настройка IPTables
Главное требование для политики iptables, чтобы быть совместимым с psad — нужно, чтобы iptables логировал пакеты. Это достигается путем включения правил INPUT и FORWARD
iptables -A INPUT -j LOG iptables -A FORWARD -j LOG
Чтобы посмотреть, какие правила сейчас включены, нужно ввести команду
iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT
Теперь мы можем начать добавлять наши правила, в основном, на INPUT цепи. Нам нужно добавить правил, чтобы явно разрешить наши авторизованные соединения перед добавлением ограничения.
Для того, чтобы сделать наши сервисы открытыми, можно использовать следующий синтакс
iptables -A INPUT -p protocol --dport port_number -j ACCEPT
Настройка psad на обнаружение атак
Отрываем конфигурационный файл psad’a
nano /etc/psad/psad.conf
Первое, что нужно изменить — это верхняя часть конфига. Изменяем параметр EMAIL_ADDRESSES, на тот куда вы хотите получать уведомления от psad. Также стоит изменить HOSTNAME, чтобы psad ссылался на правильную машину.
EMAIL_ADDRESSES first_address@domain.com, second_address@other.com; HOSTNAME domain.com;
Еще один из важных разделов, на который стоит взглянуть «уровни опасности». Эти уровни используются psad’ом, чтобы классифицировать угрозу. Они определяют пороговые значения количества пакетов, участвующих в событии. По умолчанию они задаются так
DANGER_LEVEL1 5; DANGER_LEVEL2 15; DANGER_LEVEL3 150; DANGER_LEVEL4 1500; DANGER_LEVEL5 10000;
Если вы используете определенные порты для таких вещей, как port knocking, то можно указать psad’у игнорировать их при мониторинге.
IGNORE_PORTS ports_or_range_to_ignore;
Можно настроить белый/черный список адресов
nano /etc/psad/auto_dl
Чтобы добавить в черный список ip-адрес нужно присвоить ему значение на «5»
attacker_ip 5;
Для белого списка — присвоить «0»
local_computer_ip 0;
Чтобы включить блокировку фаерволлом определенных адресов нужно изменить в файле psad.conf значение ENABLE_AUTO_IDS
на
Y
ENABLE_AUTO_IDS Y;
И установим пороговое значение уровня опасности, по которому фаерволл будет блокировать ip-адрес
AUTO_IDS_DANGER_LEVEL 5;
Так же установим время блока
AUTO_BLOCK_TIMEOUT 3600;
После всех изменений перезагружаем psad
service psad restart
Полезные команды
Чтобы посмотреть активность psad, а так же его статистику
service psad status
Будет показана информация о топ атакующих, о топ сигнатурах и др.
Удалить автоматически заблокированный ip
psad --fw-rm-block-ip <ip>
Удалить все автоматически заблокированные ip
psad -F
Обновление сигнатур
psad --sig-update && psad -H
Более подробную информацию о командах можно посмотреть на официальной станице PSAD man
Тестирование PSAD
Используем сканирование с помощью Nmap
nmap -sX <test ip>
IP-адрес тестовой машины будет заблокирован.
Почти сразу же вы получите электронное письмо:
[psad-status] added iptables auto-block against <test IP> for 3600 seconds
Заключение
Путем правильной настройки такого инструмента для обнаружения сетевых атак, как psad Вы увеличиваете свои шансы на своевременное предупреждение об атаках. Так же psad может в автоматическом режиме применять меры для устранения этих атак.