Grundeinstellung und Härtung
Grundeinstellung
Am Anfang wird sofort ein Update für das Betriebssystem ausgeführt. Danach wird SSH angepasst, dafür der Schutz fail2ban eingerichtet. Anschließend noch IPv6 abschalten und die Firewall aktivieren.
Update
apt update && apt upgrade -y
Nutzer für SSH anlegen und verrechten
adduser NAME
Mit dem Befehl wird auch ein Home-Verzeichnis angelegt. Ein sicheres Passwort wählen ( in Bitwarden speichern)
ggf. SUDO-Rechte vergeben
usermod -aG sudo BENUTZERNAME
jetzt
# Zum Nutzer wechseln
su NAME
# einen SSH key erstellen
ssh-keygen -t rsa
# die PC eintragen, die sich verbinden dürfen
# Hier: Alex-PC und Bettina-PC
nano ~/.ssh/authorized_keys
# wieder zurück zum root
exit
Dann noch die eigentlichen SSH-Einstellungen
nano /etc/ssh/sshd_config.d/config.conf
PasswordAuthentication no
PubkeyAuthentication yes
permitrootlogin no
AllowUsers ###
Port 33322
MaxAuthTries 2
MaxSessions 2
x11forwarding no
x11uselocalhost no
PermitEmptyPasswords no
Protocol 2
HostBasedAuthentication no
ClientAliveInterval 300
PermitUserEnvironment no
AllowTcpForwarding no
LogLevel VERBOSE
Abschließend dem root ein neues sicheres Passwort zuweisen und das sicher aufbewahren
passwd root
Härtung
Fail2Ban installieren, um den Zugriff auf ssh abzusichern
## install
apt install fail2ban
systemctl enable fail2ban
## copy config
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
## edit config
nano /etc/fail2ban/jail.local
Inhalt nach [sshd] suchen (2x)
[sshd]
maxretry = 3
findtime = 1d
bantime = 1w
port = 33322
logpath = %(sshd_log)s
backend = %(sshd_backend)s
und fail2ban neu starten und testen
## restart fail2ban
systemctl restart fail2ban
## check service
fail2ban-client ping
fail2ban-client status sshd
Weiter geht es mit der Deaktivierung von ipv6
nano /etc/sysctl.d/99-sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
## execute changes
sysctl -p
## check if disableing worked
cat /proc/sys/net/ipv6/conf/all/disable_ipv6