Откриването на сканиране на портове има особеност, заради която изпада от обичайния набор инструменти. Fail2ban чете журналите на приложенията — а при сканиране на затворен порт никакво приложение няма, значи няма и запис в журнала. Сканирането се вижда само на ниво защитна стена и точно там работи PSAD: той чете съобщенията, които iptables пише за отхвърлените пакети.

Задължително условие: журналирането трябва да е включено

Това е главната причина PSAD „да стои и да не показва нищо“. Без правила за журналиране в защитната стена няма какво да чете и никаква грешка при това не възниква.

Ако имате UFW:

sudo ufw logging low
sudo ufw status verbose

Проверете, че съобщенията наистина се появяват:

sudo journalctl -k | grep -c '\[UFW'
sudo grep -c 'UFW BLOCK' /var/log/ufw.log

Нули и в двете команди означават, че PSAD няма да работи. И отделно за Debian 12 и Ubuntu 24.04: без rsyslog файлът /var/log/ufw.log не съществува, всичко отива в журнала на systemd — пътят до журнала в настройките на PSAD трябва да се посочи с оглед на това.

Инсталиране

sudo apt install psad
sudo psad --sig-update
sudo psad -R
sudo psad --Status

Последната команда е основната. Тя показва колко пакета са разгледани, кои адреси са забелязани и с какво ниво на опасност. Ако броячът на разгледаните пакети е нула, върнете се към предишния раздел: работата е в журналирането, а не в липсата на сканирания.

Настройките са в /etc/psad/psad.conf. Практически значимите параметри са малко: адресът за писма, пътят до журнала и праговете на нивата на опасност.

Нива на опасност

PSAD оценява всеки източник по скала от 1 до 5 в зависимост от това колко различни порта са били засегнати и доколко поведението прилича на известни техники за сканиране.

  • 1–2 — единични обръщения към затворени портове. Това е постоянният фон на интернет, реакция не е нужна;
  • 3 — систематичен обход на портове. Обикновено изследователски скенери, каквито в мрежата има няколко десетки;
  • 4–5 — целенасочен обход на голям брой портове от един адрес, често с опит да се скрие характерът на обръщенията.

Прагът за писма се задава с параметъра EMAIL_ALERT_DANGER_LEVEL. Стойност 3 обикновено означава по няколко писма на ден, което доста бързо води до правило в пощенския клиент. По-разумно е да се сложи 4, а останалото да се гледа на обобщаваща страница.

Автоматично блокиране: не трябва

PSAD умее сам да добавя правила в защитната стена (ENABLE_AUTO_IDS). На единствен работещ сървър не си струва да се включва и причината е конкретна: адресът на подателя в пакета се подправя. Достатъчно е към вас да се изпратят пакети с подставен адрес — и ще блокирате адреса, избран не от вас. Може да се окаже адрес на ваш клиент, на платежен шлюз или на услуга за наблюдение.

Ако все пак блокирането е нужно, включвайте го с висок праг на опасност и задължително с ограничение по време (AUTO_BLOCK_TIMEOUT), за да не остане погрешен запис завинаги.

Какво да се прави с това на практика

Самото сканиране е безвредно: то нищо не чупи и се случва непрекъснато при всички. Стойността на данните на PSAD не е във факта, а в промените на характера.

Полезни наблюдения:

  • Насочен интерес. Обикновеният скенер минава по хиляди адреси и десетина популярни порта. Ако обаче някой методично обхожда портовете точно на вашия сървър, включително нестандартните — това вече не е фон;
  • Сканиране на конкретен порт. Обръщения към порта на базата данни или на контролния панел означават, че някой търси точно тази услуга — обикновено след публикуване на сведения за поредна уязвимост в нея;
  • Разузнаване преди опит. Скок на сканиранията, а след няколко часа налучкване на пароли от същия диапазон — типична последователност, чиято първа част дава малко време.

Практическият извод от всяко от тези наблюдения е един и същ: да се провери, че списъкът на отворените навън портове съответства на очакваното и че на всеки от тях работи нещо, което сте обновявали тази година.

Място в общия набор

PSAD не замества нито защитната стена, нито Fail2ban, нито система за откриване на пробиви. Той закрива една тясна пролука — опитите, които не оставят следи никъде другаде, защото не са стигнали до нито едно приложение. Струва малко, работи без настройка след първото стартиране, а обобщението му отговаря на въпрос, който иначе не се задава: интересува ли се някой конкретно от вашия сървър отделно от общия фон. Как изглежда това обобщение, показва демонстрационната страница по-долу.