Paar basics, die man bei Server mal testen kann.

General

Paar Schritte um einen Linux Server grob zu checken:

# liste alle Port die zurzeit offen sind (optional: interne können augeschlossen werden)
ss -tulpen | grep -v 127.0.0.1

# liste alle sockets, die unteranderem auch einen Port öffnen können
systemctl list-sockets

# ↬ unten paar typische Service, die noch aktiviert sein könnten.

ufw ...

# auto upgrades, mind. für Security patches
dpkg-reconfigure unattended-upgrades
systemctl edit apt-daily-upgrade.timer

SSH

PasswordAuthentication no
PermitRootLogin no
AllowGroups ssh-user

# disable
X11Forwarding no
AllowTcpForwarding no
PermitTunnel no

Image

Falls das zur Verfügung gestellt Image bereits upgrades durchgemacht hat:

# list configs die noch übrig sind
apt list | grep "\[residual-config\]"

Penetration Test

  • bei Bedarf das LinPeas ausführen.

Auswertung der offenen Ports / Sockets

chrony (0.0.0.0:123/udp)

Wenn der Server nur Zeitbeziehen will, aber nicht anderen Zeitsynchronisierung anbieten soll:

vi /etc/chrony/chrony.d/my.conf
# add
port 0

sudo systemctl restart chronyd

# to check
chronyc tracking
chronyc makestep
timedatectl

exim4 (127.0.0.1:25/tcp)

Wenn man sowieso externe Mail-Server braucht:

systemctl stop exim4
systemctl disable exim4
systemctl status exim4
sudo apt purge exim4 exim4-base exim4-config exim4-daemon-light

systemd resolved

(127.0.0.54:53/udp/tcp) / LLMNR (0.0.0.0:5355/udp/tcp)

DNS (127.0.0.54:53/udp/tcp)

Wird als interner DNS Cache verwendet, daher so lassen.

LLMNR (0.0.0.0:5355/udp/tcp)

LLMNR (Link-Local Multicast Name Resolution) ist bei normalen Netzwerken nicht nötig.

vi /etc/systemd/resolved.conf
[Resolve]
LLMNR=no

sudo systemctl restart systemd-resolved