↑ ↓ auswählen, Enter öffnen, Esc schließen

Sicherheit

Server absichern und Angriffe erkennen: Fail2ban, Firewall-Regeln, verdächtige Dateien, Login-Versuche und schnelle Prüfungen nach einem Vorfall.

18 Einzeiler: 16 harmlos, 2 vorsicht, 0 destruktiv

Alle hinterlegten SSH-Schlüssel auf dem Server auflisten

#find / -xdev -path '*/.ssh/authorized_keys' -type f -exec awk 'NF && !/^#/ {print FILENAME ": " $NF}' {} + 2>/dev/null
harmlos

Benutzerkonten mit Login-Shell auflisten

$awk -F: '$7 !~ /(nologin|false)$/ {print $1, $3, $6, $7}' /etc/passwd
harmlos

Einzelne IP-Adresse sofort per Firewall sperren

#iptables -I INPUT -s 203.0.113.25 -j DROP
vorsicht

Für alle beschreibbare Dateien und Verzeichnisse finden

$find /var/www/vhosts -xdev -perm -0002 ! -type l -ls 2>/dev/null
harmlos

Gesperrte IP-Adresse in Fail2Ban wieder freigeben

#fail2ban-client set sshd unbanip 203.0.113.25
vorsicht

IP-Adressen mit den meisten fehlgeschlagenen SSH-Logins

#journalctl -u ssh --since "24 hours ago" --no-pager | grep -oE 'Failed password for .* from [0-9a-f.:]+' | awk '{print $NF}' | sort | uniq -c | sort -rn | head -20
harmlos

Konten mit UID 0 und damit Root-Rechten finden

$awk -F: '$3 == 0 {print $1}' /etc/passwd
harmlos

Kürzlich geänderte PHP-Dateien finden

$find /var/www/vhosts/example.com/httpdocs -type f -name '*.php' -mtime -7 -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort -r
harmlos

Letzte Anmeldungen am Server mit IP-Adresse anzeigen

$last -i | head -30
harmlos

Mit sudo ausgeführte Befehle aus dem Journal anzeigen

#journalctl _COMM=sudo --since "7 days ago" --no-pager | grep 'COMMAND='
harmlos

Mitglieder der sudo-Gruppe anzeigen

$getent group sudo
harmlos

Passwortstatus aller Benutzerkonten anzeigen

#passwd -S -a
harmlos

PHP-Dateien im WordPress-Uploads-Ordner aufspüren

$find /var/www/vhosts/example.com/httpdocs/wp-content/uploads -type f \( -iname '*.php' -o -iname '*.phtml' -o -iname '*.php[0-9]' \) -ls
harmlos

Prozesse finden, deren Programmdatei gelöscht wurde

#ls -l /proc/*/exe 2>/dev/null | grep '(deleted)'
harmlos

Status eines Fail2Ban-Jails und gesperrte IPs anzeigen

#fail2ban-client status sshd
harmlos

Typische Malware-Muster in PHP-Dateien suchen

$grep -rlE --include='*.php' 'eval\((base64_decode|gzinflate|gzuncompress|str_rot13)\(' /var/www/vhosts/example.com/httpdocs
harmlos

Veränderte Dateien installierter Pakete erkennen

#dpkg --verify
harmlos

Versteckte PHP-Dateien im Webverzeichnis finden

$find /var/www/vhosts/example.com/httpdocs -type f -name '.*.php' -ls
harmlos

Erst lesen, dann ausführen.

Die Befehle auf myline.de greifen direkt in Server, Dateien und Datenbanken ein. Ein falscher Pfad oder Platzhalter kann Daten unwiderruflich löschen oder einen Server unerreichbar machen.

  • Alle Befehle werden ohne Gewähr bereitgestellt und sind nicht auf jedem System getestet.
  • Vor dem Ausführen verstehen, was ein Befehl tut, und jeden Platzhalter prüfen.
  • Vorher ein Backup anlegen und möglichst zuerst auf einem Testsystem ausprobieren.
  • Die Ausführung erfolgt auf eigene Verantwortung. Eine Haftung für Schäden ist ausgeschlossen, soweit gesetzlich zulässig.