Standard-Nutzernamen, die leicht erratbar sind, (z.B. "tuser", "admin") sollten vermieden werden.

Wenn Nutzerkonten nur für begrenzte Zeiträume benötigt werden, können diese zeitlich begrenzt angelegt werden.

useradd -e <Datum> <User>

Auch existierende Konten können mit einem Ablaufdatum versehen werden.

usermod -e <Datum> <User>

Eine Entropie-Messung in Form einer grafischen Darstellung ist auf der shell nicht vorgesehen. Beim Setzen von Passwörtern wird dem Nutzer allerdings Feedback in Form von Text gegeben.

Passwortwechsel können z.B. beim nächsten Login erzwungen werden.

# Passwortwechel beim nächsten login
chage -d 0 <User>

# Passwortwechel nach 180 Tagen
chage -M 180 <User>

Es soll kein direkter Root-Zugriff mittels SSH erlaubt werden, denn der Nutzer `root` ist Angreifern bekannt.

# file: /etc/ssh/sshd_config
PermitRootLogin no

Privilegierte Nutzer sollen der Gruppe `sudo` hinzugefügt werden und `sudo` verwenden, um Befehle mit `Superuser`-Rechten auszuführen.

usermod -aG sudo adminuser

Es sollten nur Nutzer zugelassen werden, die tatsächlich SSH Zugriff benötigen.

# file: /etc/ssh/sshd_config
AllowUsers {{adminusers}} {{users}}
AllowGroups sudo ssh-user

Zusätzlich kann man den Zugang auch auf bestimmte Client-Stationen beschränken. Aber Achtung: Will ein Nutzer Zugang von mehreren Stationen, so müssen diese explizit angegeben werden. Alternativ können auch IP-Bereiche freigeschaltet werden.

# file: /etc/ssh/sshd_config
AllowUsers admin1@ip.of.admin1.station admin2@ip.of.admin2.station ...

Privilegien der Nutzer prüfen und einschränken geht wie folgt:

# file: /etc/ssh/sshd_config
StrictModes yes    # default: yes
UsePrivilegeSeparation yes   # default: yes
PermitUserEnvironment no    # default: no
AcceptEnv LANG LC_*