Detekcia skenovania portov má zvláštnosť, kvôli ktorej vypadáva z obvyklej sady nástrojov. Fail2ban číta logy aplikácií — lenže pri skenovaní zatvoreného portu žiadna aplikácia nie je, teda ani záznam v logu. Skenovanie je vidieť len na úrovni firewallu a práve tam pracuje PSAD: číta správy, ktoré iptables zapisuje o zahodených paketoch.

Povinná podmienka: logovanie musí byť zapnuté

To je hlavná príčina toho, prečo PSAD „stojí a nič neukazuje“. Bez pravidiel logovania vo firewalle nemá čo čítať a žiadna chyba pritom nevznikne.

Ak máte UFW:

sudo ufw logging low
sudo ufw status verbose

Overte, že sa správy skutočne objavujú:

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

Nuly v oboch príkazoch znamenajú, že PSAD fungovať nebude. A zvlášť k Debianu 12 a Ubuntu 24.04: bez rsyslog súbor /var/log/ufw.log neexistuje, všetko ide do žurnálu systemd — cestu k logu v nastavení PSAD treba uviesť s ohľadom na to.

Inštalácia

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

Posledný príkaz je hlavný. Ukazuje, koľko paketov bolo rozobraných, aké adresy boli zaznamenané a s akou úrovňou nebezpečenstva. Ak je počítadlo rozobraných paketov nulové, vráťte sa k predchádzajúcej sekcii: ide o logovanie, nie o neprítomnosť skenovania.

Nastavenie je v /etc/psad/psad.conf. Prakticky významných parametrov je málo: adresa pre listy, cesta k logu a prahy úrovní nebezpečenstva.

Úrovne nebezpečenstva

PSAD hodnotí každý zdroj na škále od 1 do 5 podľa toho, koľko rôznych portov bolo zasiahnutých a nakoľko správanie pripomína známe techniky skenovania.

  • 1–2 — ojedinelé spojenia na zatvorené porty. To je stále pozadie internetu, reagovať netreba;
  • 3 — systematický prechod portmi. Obvykle výskumné skenery, ktorých je v sieti niekoľko desiatok;
  • 4–5 — cielený prechod veľkým počtom portov z jednej adresy, často so snahou skryť povahu spojení.

Prah pre listy nastavuje parameter EMAIL_ALERT_DANGER_LEVEL. Hodnota 3 obvykle znamená niekoľko listov denne, čo pomerne rýchlo vedie k pravidlu v poštovom klientovi. Rozumnejšie je nastaviť 4 a zvyšok sledovať na súhrnnej stránke.

Automatické blokovanie: netreba

PSAD vie sám pridávať pravidlá firewallu (ENABLE_AUTO_IDS). Na jedinom prevádzkovom serveri to nemá cenu zapínať a dôvod je konkrétny: adresu odosielateľa v pakete možno podvrhnúť. Stačí poslať vaším smerom pakety s podstrčenou adresou — a zablokujete adresu, ktorú vybral niekto iný. Môže to byť adresa vášho zákazníka, platobnej brány alebo monitorovacej služby.

Ak je blokovanie napriek tomu potrebné, zapínajte ho s vysokým prahom nebezpečenstva a vždy s časovým obmedzením (AUTO_BLOCK_TIMEOUT), aby chybný záznam nezostal navždy.

Čo s tým prakticky robiť

Samo skenovanie je neškodné: nič nerozbíja a prebieha nepretržite u všetkých. Hodnota dát PSAD nie je v samotnom fakte, ale v zmenách povahy.

Užitočné pozorovania:

  • Cielený záujem. Bežný skener prejde tisíce adries a desiatku populárnych portov. Ak však niekto metodicky prechádza porty práve vášho servera vrátane neštandardných — to už nie je pozadie;
  • Skenovanie konkrétneho portu. Spojenia na port databázy alebo ovládacieho panela znamenajú, že niekto hľadá práve túto službu — obvykle po zverejnení informácií o ďalšej zraniteľnosti v nej;
  • Prieskum pred pokusom. Nárast skenovania a o pár hodín hádanie hesiel z rovnakého rozsahu — typická postupnosť, ktorej prvá časť dáva trochu času.

Praktický záver z ktoréhokoľvek z týchto pozorovaní je rovnaký: overiť, že zoznam von otvorených portov zodpovedá očakávanému a že na každom z nich beží niečo, čo ste tento rok aktualizovali.

Miesto v celkovej sade

PSAD nenahrádza ani firewall, ani Fail2ban, ani systém detekcie prienikov. Zatvára jednu úzku škáru — pokusy, ktoré nikde inde nezanechávajú stopy, lebo sa nedostali k žiadnej aplikácii. Stojí málo, po prvom spustení funguje bez nastavovania a jeho súhrn odpovedá na otázku, ktorú si inak nikto nekladie: zaujíma sa niekto o váš server oddelene od všeobecného pozadia. Ako tento súhrn vyzerá, ukazuje ukážková stránka nižšie.