Hallo,
um die Sicherheit zu erhöhen, möchte ich auf meinem Server nach außen hin keinen root-Zugriff per (Open-)SSH zulassen. Zur (automatisierten) Systemwartung brauche ich aber manchmal root-Rechte per SSH von zu Hause aus.
Daher würde ich gerne den root-Zugang per SSH nur über localhost zulassen und sonst generell verbieten. Leider scheint es in der /etc/ssh/sshd_config bei OpenSSH nur ein "PermitRootLogin no" zu geben und keine Einstellmöglichkeiten, für welche Hosts das gelten soll. Gibt es da eine Möglichkeit?
Auch für Alternativ-Vorschläge wäre ich dankbar. Wichtige Randbedingungen: Sichere Verschlüsselung, keine Passworte oder private keys auf dem Server, automatisiertes Login muss per Skript ohne Passworteingabe möglich sein. Die Skripte werden bei mir zu Hause gestartet und sollen dann ihre Arbeit auf dem Server verrichten, remote-Zugang über das Netz ist also Pflicht. Außerdem soll die Ausführung beliebiger Skripte sowie Datentransfer zum Server hin möglich sein, sudo scheidet also imho aus.
vielen Dank für eure Hilfe
fs
SSH - root-Zugriff nur über localhost?
Re: SSH - root-Zugriff nur über localhost?
Alternative:
- Zugang nur normalen User erlauben, nicht root (PermitRootLogin no)
- Einloggen als ein normaler Benutzer
- su
Das is ja dann quasi wie "eingeloggt unter localhost"... oder hab ich Dich falsch verstanden?
- Zugang nur normalen User erlauben, nicht root (PermitRootLogin no)
- Einloggen als ein normaler Benutzer
- su
Das is ja dann quasi wie "eingeloggt unter localhost"... oder hab ich Dich falsch verstanden?
Re: SSH - root-Zugriff nur über localhost?
na ja, su hat den Nachteil, dass interaktiv Passwörter eingegeben werden müssen (wenn ich da nichts übersehen habe), was natürlich bei der Automatisierung sehr hinderlich ist (ich verwende selbstverständlich ausschließlich SSH-Keys).GameCrash wrote:Alternative:
- Zugang nur normalen User erlauben, nicht root (PermitRootLogin no)
- Einloggen als ein normaler Benutzer
- su
Das is ja dann quasi wie "eingeloggt unter localhost"... oder hab ich Dich falsch verstanden?
Die SSH-Lösung hat für mich deswegen solchen Charme, weil auf dem Server nie irgendwelche Passwörter oder äquivalente Dateien wie private keys abgelegt werden müssen. Ich verwende SSH-Agent und agent forwarding per SSH. Folglich kann sich ein Skript von zu Hause als user einloggen, ein ssh auf root@localhost machen und dann Root-Rechte bekommen, ohne dass ich extern einen Root-Zugriff freigeben müsste. Per SSH agent könnte ich auf die private keys zu Hause zugreifen und trotzdem eine sichere Verbindung herstellen.
Wenn ich per "su" Passwörter automatisch mit übergeben könnte, wäre das schon mal eine Notlösung, auch wenn ich dann die ~/.bash_history ggf. manuell vom Passwort befreien müsste.
fs
Re: SSH - root-Zugriff nur über localhost?
And again... komme ich mit meinem PAM: ;)na ja, su hat den Nachteil, dass interaktiv Passwörter eingegeben werden müssen (wenn ich da nichts übersehen habe)
Du hast PAM-Wheel übersehen.
Eventuell könnte man mit PAM auch das erreichen, was du ursprünglich wolltest, dass root nur von localhost per ssh einloggen kann. Aber da müsste ich jetzt länger nachlesen, ob und wie das geht...
Re: SSH - root-Zugriff nur über localhost?
hi
also ich weiß ja nicht.
aber wenn ich ein su root mache
dann wird das passwort nicht in der history gespeichert!
so sollte das ja auch sein. Sonst ist das ganze ja schon schwachsinnig.
hmmm du kannst doch für den user mit dem du dich anmeldst einen rsa schlüssel erstellen. in der sshd config lässt du permitrootlogin off
und machst dann von dem user aus ein su root
es muss ja wohl möglich sein das passwort über ein script bei dir zu hause dann einzugeben.
oder einfach selbst eingeben
ich finde das ganze eine ganz gute lösung.
mit PAM kenn ich mich nicht aus
also ich weiß ja nicht.
aber wenn ich ein su root mache
dann wird das passwort nicht in der history gespeichert!
so sollte das ja auch sein. Sonst ist das ganze ja schon schwachsinnig.
hmmm du kannst doch für den user mit dem du dich anmeldst einen rsa schlüssel erstellen. in der sshd config lässt du permitrootlogin off
und machst dann von dem user aus ein su root
es muss ja wohl möglich sein das passwort über ein script bei dir zu hause dann einzugeben.
oder einfach selbst eingeben
ich finde das ganze eine ganz gute lösung.
mit PAM kenn ich mich nicht aus
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: SSH - root-Zugriff nur über localhost?
Passworte werden von /bin/login intern gehandhabt und sind in keiner History gespeichert (außer natürlich, es läuft ein Keylogger ;) ).aber wenn ich ein su root mache
dann wird das passwort nicht in der history gespeichert!
so sollte das ja auch sein. Sonst ist das ganze ja schon schwachsinnig.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: SSH - root-Zugriff nur über localhost?
PAM und PK-Authentisierung - dis hilft :)
Nichtsdestotrotz würde ich mich nie als root auf eine Kiste verbinden. Nicht wegen der Gefahr, ausgespäht/belauscht zu werden (die ist latent und unabhängig vom Login) sondern vielmehr wegen der Gefahr von "Flüchtigkeitsfehlern". Es ist ein wirklich guter Grundsatz in der UNIX-Welt, so weit wie irgend möglich als unprivilegierter Benutzer zu arbeiten und nur wenn es unumgänglich ist, auf den root-Acccount zu wechseln (s.a. rootmasters Anmerkung zu absoluten Pfaden als root).
Nichtsdestotrotz würde ich mich nie als root auf eine Kiste verbinden. Nicht wegen der Gefahr, ausgespäht/belauscht zu werden (die ist latent und unabhängig vom Login) sondern vielmehr wegen der Gefahr von "Flüchtigkeitsfehlern". Es ist ein wirklich guter Grundsatz in der UNIX-Welt, so weit wie irgend möglich als unprivilegierter Benutzer zu arbeiten und nur wenn es unumgänglich ist, auf den root-Acccount zu wechseln (s.a. rootmasters Anmerkung zu absoluten Pfaden als root).
Re: SSH - root-Zugriff nur über localhost?
Was mir gerade noch einfällt. Wie wäre es wenn du den sshd 2x startest? Den öffentlichen bindest du an eth0 und setzt "PermitRootLogin" auf "no". Den zweiten bindest du an localhost und setzt "PermitRootLogin" auf "yes". Ich weiss jetzt nicht ob das klappt aber ich denke im Prinzip spricht nichts gegen diese Lösung.felixs wrote:Daher würde ich gerne den root-Zugang per SSH nur über localhost zulassen und sonst generell verbieten. Leider scheint es in der /etc/ssh/sshd_config bei OpenSSH nur ein "PermitRootLogin no" zu geben und keine Einstellmöglichkeiten, für welche Hosts das gelten soll. Gibt es da eine Möglichkeit?