Ga naar inhoud

Portsentry

In deze handleiding leer je hoe je Portsentry kunt installeren, configureren en beheren op een Linux-systeem.
We gebruiken Debian/Ubuntu als voorbeeld, maar de stappen zijn grotendeels gelijk op RHEL/CentOS/Fedora en openSUSE.

Achtergrondinformatie

  • Portsentry maakt deel uit van het PSAD/Secure Shell Intrusion Detection System en werd oorspronkelijk ontwikkeld door Craig Rowland.
  • Het is ontworpen om portscans en andere ongewenste netwerkactiviteit te detecteren.
  • Bij detectie kan Portsentry automatisch IP-adressen blokkeren via tcpwrappers, hosts.deny, of een firewall (iptables/nftables).

1. Controleren of Portsentry aanwezig is

portsentry -version

Voorbeeld output:

Portsentry 1.2

2. Installatie

sudo apt update
sudo apt install -y portsentry
Voorbeeld output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  portsentry
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
After this operation, 250 kB of additional disk space will be used.
Setting up portsentry (1.2-14) ...
Created symlink /etc/systemd/system/multi-user.target.wants/portsentry.service β†’ /lib/systemd/system/portsentry.service.
sudo yum install -y epel-release   # alleen nodig op CentOS/RHEL
sudo yum install -y portsentry
Voorbeeld output
Dependencies resolved.
======================================================================
 Package        Arch   Version             Repository          Size
======================================================================
Installing:
 portsentry     x86_64 1.2-1.el8           epel                100 k

Transaction Summary
======================================================================
Install  1 Package

Installed:
  portsentry-1.2-1.el8.x86_64

Complete!
sudo zypper install portsentry
Voorbeeld output
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  portsentry

1 new package to install.
Overall download size: 120.0 KiB. Already cached: 0 B. After the operation, additional 300.0 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package portsentry-1.2-14.x86_64
Installing: portsentry-1.2-14.x86_64 [done]

3. Configuratie

De configuratiebestanden staan meestal op:

/etc/portsentry/portsentry.conf
/etc/default/portsentry    # Debian/Ubuntu specifieke instellingen

Belangrijkste opties (portsentry.conf)

# Detectiemodus
TCP_MODE="atcp"
UDP_MODE="audp"

# Blokkeren inschakelen
BLOCK_UDP="1"
BLOCK_TCP="1"

# Actie bij detectie
KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
Optie Betekenis
TCP_MODE / UDP_MODE Detectiemethode (bijv. atcp en audp = advanced detection).
BLOCK_UDP / BLOCK_TCP Zet blokkeren van verdachte verbindingen aan (1) of uit (0).
KILL_ROUTE Uit te voeren actie bij detectie (hier: het IP blokkeren via iptables).

Tip

In Debian/Ubuntu kun je in /etc/default/portsentry de startparameters aanpassen
(bijv. alleen TCP of alleen UDP activeren).


4. Portsentry beheren

Service inschakelen en starten

sudo systemctl enable --now portsentry
Voorbeeld output
Created symlink /etc/systemd/system/multi-user.target.wants/portsentry.service β†’ /lib/systemd/system/portsentry.service.

Service uitschakelen en stoppen

sudo systemctl disable --now portsentry
Voorbeeld output
Removed /etc/systemd/system/multi-user.target.wants/portsentry.service.

Status controleren

sudo systemctl status portsentry
Voorbeeld output
● portsentry.service - LSB: Start/stop portsentry
     Loaded: loaded (/etc/init.d/portsentry; generated)
     Active: active (running) since Tue 2023-04-11 12:34:56 UTC; 15s ago
   Main PID: 1234 (portsentry)
      Tasks: 1 (limit: 1111)
     Memory: 5.0M

Herstarten

sudo systemctl restart portsentry
Voorbeeld output
Job for portsentry.service restarted successfully.

5. Logging & rapportage

/var/log/syslog
/var/log/auth.log
- Afhankelijk van distributie logt Portsentry naar syslog of auth.log.

sudo tail -f /var/log/syslog | grep portsentry
  • Toont in real-time welke IP’s worden gedetecteerd en geblokkeerd.
sudo grep "attackalert" /var/log/syslog
  • Toont alle historische detecties.

6. Extra nuttige commando’s

sudo iptables -L -n
- Toont geblokkeerde IP’s (bij gebruik van iptables als blokkademethode).

sudo iptables -D INPUT -s 203.0.113.50 -j DROP
- Haalt een IP uit de banlijst.

Voeg veilige IP’s toe aan:

/etc/portsentry/portsentry.ignore
  • Handig om eigen beheerders-IP te whitelisten.

Verwijderen

sudo apt remove portsentry
sudo yum remove portsentry

Let op

  • Na verwijderen ben je niet meer beschermd tegen portscans.
  • Overweeg alternatieven zoals PSAD of een IDS/IPS (Snort, Suricata).

Hardening Tips

Aanbevelingen voor extra veiligheid

  • Gebruik advanced detection modes (atcp, audp) voor betere scan-detectie.
  • Voeg je beheernetwerken toe aan portsentry.ignore om false positives te voorkomen.
  • Combineer Portsentry met Fail2Ban of een SIEM voor uitgebreidere monitoring.
  • Overweeg integratie met nftables in plaats van iptables voor modernere firewalling.

βœ… Met Portsentry kan je snel en effectief portscans detecteren en blokkeren, waardoor je server minder aantrekkelijk wordt voor aanvallers!