• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SSH angepasste Regel für Benutzer mit IPV6

Moin,

ich wollte für einen priviligierten Benutzer "ADMIN" auf meinem NAS Server den SSH Dienst anpassen und zwar wie folgt, weiß aber nicht ob die Syntax richtig ist:
Code:
#/etc/ssh/sshd_config

Match User ADMIN
AllowUsers ADMIN@192.168.178.59/16 ADMIN@fe80::/16

Mir geht es hierbei speziell um die Syntax von dem IPV6 Zusatz. Ist dies so richtig?

Also der Benutzer ADMIN mit der IPV6 fe80::/16 darf sich verbinden.

Danke
 
In meiner aktuellen "ssh_config" gibt es leider keine Direktive "AllowUsers". Gab es diese mal und wurde dann später raus genommen? Warum finde ich dazu nichts?
 

Sauerland

Ultimate Guru
/etc/ssh/sshd_config?

man sshd_config:

Code:
AllowUsers
             Diesem Schlüsselwort kann eine Liste von Benutzernamenmustern, getrennt durch Leerzeichen, folgen. Falls festgelegt, ist die Anmeldung nur für Benutzer erlaubt, deren Namen auf eines der Mu-
             ster passen. Nur Benutzernamen sind gültig; eine numerische Benutzerkennung wird nicht erkannt. Standardmäßig ist die Anmeldung für alle Benutzer erlaubt. Falls das Muster dem Aufbau BENUT-
             ZER@RECHNER folgt, dann werden BENUTZER und RECHNER getrennt überprüft und schränken die Anmeldungen für bestimmte Benutzer von bestimmten Rechnern ein. RECHNER-Kriterien können zusätzlich
             Adressen enthalten, die auf das CIDR-Adressen/Maskenlängen-Format passen. Die Benutzerdirektiven »allow/deny« werden in folgender Reihenfolge verarbeitet: DenyUsers, AllowUsers.

             Siehe MUSTER in ssh_config(5) für weitere Informationen über Muster. Dieses Schlüsselwort darf in sshd_config mehrfach auftauchen, wobei jede Instanz an die Liste anhängt wird.
 
Ich wollte den Zugriff für Benutzer mit root Rechten einschränken. Also root-Benutzer nur über das lokale Netzwerk zu lassen. Und alle nicht-root Benutzer können übers Internet wie auch lokales Netzwerk verbinden. Wobei diese, übers Internet, nur auf bestimmte Befehle zurückgreifen dürfen.
 

Sauerland

Ultimate Guru
Du kannst den root login verbieten:
PermitRootLogin

D.h.
Jeder kann sich als User verbinden und dann auf dem NAS mit su oder sudo oder wie auch immer root Rechte erlangen.....
Ist bei mir Standard.

Ebenso ist die Passwortabfrage deaktiviert einloggen nur per key.
 
Ich will ja den root-Login nicht komplett verbieten. Da ich ab und zu am System per ssh was ändere, aber nur im lokalen Netz. Als Konfiguration wollte ich ssh nutzen. Ist ja ein Veteranen-Programm.
 

Sauerland

Ultimate Guru
Noch einmal:
Ich verbiete grundsätzlich den login zum Root auf meinen Server, in deinem Fall verbietest du das in der /etc/ssh/sshd_config des NAS.
Dann kannst du dich nur als User einloggen und wenn du dann auf dem Server dich als User eingeloggt hast, kannst du mit su oder wie auch immer dich zum root hochschwingen.
 

Sauerland

Ultimate Guru
Hier einmal die Verbindung zu einer virtuellen Maschine:
Als User verbinden, mit su zum root werden:
Code:
stephan@linux64:~> ssh -p 22122 stephan@qemu-debian12
Linux qemu-debian12 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Mar 26 21:13:38 2024 from 192.168.0.2
stephan@qemu-debian12:~$ su
Passwort:
root@qemu-debian12:/home/stephan#
exit
stephan@qemu-debian12:~$
Abgemeldet
Connection to qemu-debian12 closed.

Jetzt dasselbe als root Verbindung:
Code:
stephan@linux64:~> ssh -p 22122 root@qemu-debian12
root@qemu-debian12: Permission denied (publickey).
stephan@linux64:~>

Das ist die Änderung:
Code:
grep -i permitroot /etc/ssh/sshd_config
PermitRootLogin no
 
Verstanden. Aber sudo will ich nicht für normale Benutzer freigeben. Also gar nicht. Und das ist auch gut so.

Interessant wäre für mich noch, wenn ich den Pool der verfügbaren Befehle der Benutzer über die sshd_config einschränken könnte. Ich würde gerne die Übersicht, meiner Einstellungen, über meinen Server, konzentriert behalten.
 
Zuletzt bearbeitet:

Sauerland

Ultimate Guru
Und ich hoffe, du hast die PasswortAuthentication ausgeschaltet und benutzt keys:

Code:
grep -i password /etc/ssh/sshd_config
# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
 

/dev/null

Moderator
Teammitglied
Guten Abend!

@Schnickischnacki!
Verbiete generell jeglichen Zugang nur mit Benutzername/Passwort und erzwinge den Zugang nur mit PubkeyAuthentication. Also genau so, wie es @Sauerland beschrieben hat.
Alles andere ist "Bastelei" und bringt nur Sicherheiteslücken.

Sollten sich Änderungen ergeben, brauchst du nur die jeweiligen .pub der betreffenden Nutzer auf dem Server löschen. Den sshd neu starten und fertig ist.

BTW:
Ich habe auf meinen drei Rechnern und sogar auf dem Smartphone (ja, auch da gibt es ssh-Apps) je ein Schlüsselpaar erzeugt. Einfach deswegen, damit ich im Bedarfsfall schnell mal von unterwegs … - und natürlich auch, damit ich im Notfall (Laptop oder Schlau-Fernsprechapparat geklaut) die .pub, die zu diesem Gerät gehören, auf den Servern herauslöschen kann. Bei derartigem mobilen Einsatz ist auch der Schutz der privaten Schlüssel mit einem Passwort zu empfehlen.
Und noch der Hinweis, dass es gut und richtig ist, den direkten root-Zugriff per ssh zu verbieten. Aber zum Beispiel bei Synology-NAS oder auch bei den RasPi und bei den Freifunk- oder unter OpenWRT laufenden WireGuard-Routern kommt man kaum darum herum. Klar, alles ist irgendwie möglich, hier muss man zwischen Aufwand und Nutzen unterscheiden. Und nach dem nächsten Firmware-Upgrade fängt man wieder an … .

vy 73 de Peter
 
Vielen Dank Euch.

meine aktuellen Favoriten:
Code:
PasswortAuthentication no
ChallengeResponseAuthentication no
UsePam no

Wie gesagt innnerhalb meines HOME-Netzwerks benötige ich ja gelegentlich den administrativen Login. Daher ja auch meine Idee mit:
Code:
Match User ADMIN
    AllowUsers ADMIN@192.168.178.59/16 ADMIN@fe80::/64

Mit den Schlüsseln muss ich mehr spielen. Also vielleicht Verfallsdatum aktivieren. Wobei ich nicht weiß ob das sicher funktioniert.

Zusätzlich würde ich gerne den Pool an verfügbaren Befehlen einschränken. Habe aber keine Option in der "sshd_config" gefunden. Oder geht es doch?
 

marce

Guru
Den administrativen Zugang hast Du ja dann mit sudo / su - und welcher User das darf kannst Du auch einschränken.

Eingeschränkte Befehle - geht, z.B. via Restrict Commands for SSH Users | Baeldung on Linux oder Ubuntu Manpage: restricted-ssh-commands - Restrict SSH users to a predefined set of commands

... eine saubere sudo-Konfig ist aber besser.

Zudem - wer hat denn SSH-Zugang auf Dein NAS? Wenn Du da solchen "Geschütze" aufahren willst / musst, um Dich sicher zu fühlen hast Du eigentlich schon ein ganz anderes Problem.
 

Sauerland

Ultimate Guru
Zu den Schlüsseln gibt es auch noch 2 ssh Befehle:
ssh-keygen
und
ssh-copy-id

Wobei bei letzterem die PasswortAuthentication vorübergehend eingeschaltet sein muss.
 
Vielen Dank.

Bei der Erstellung der SSH Schlüssel wird nach einem optionalen Passwort gefragt, dieser dient der Verschlüsselung dieses Schlüssels.
Was empfehlt Ihr als Passwort zu nutzen?
Benutzer-Passwort?
Zufällig-generiertes Passwort?

Habt Ihr Anregungen zu der Verwaltung dieser Passwörter und der zugehörigen Schlüssel?
 
Oben