Nur eine IP zum einloggen erlauben
Nur eine IP zum einloggen erlauben
Guten Abend,
ich befasse mich aktuell mit der Absicherung meiner Server, und dadurch das ich eine feste IP habe, würde ich gerne nur dieser erlauben sich via SSH einzuloggen.
Ganz gleich ob root (ist eh verboten) oder einem anderen User. Alles andere soll natürlich mit jeder IP erreichbar sein (80/443 z.B.)
Wie gehe ich hier am besten vor?
spruce
ich befasse mich aktuell mit der Absicherung meiner Server, und dadurch das ich eine feste IP habe, würde ich gerne nur dieser erlauben sich via SSH einzuloggen.
Ganz gleich ob root (ist eh verboten) oder einem anderen User. Alles andere soll natürlich mit jeder IP erreichbar sein (80/443 z.B.)
Wie gehe ich hier am besten vor?
spruce
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Nur eine IP zum einloggen erlauben
Möglichkeit 1) Paketfilter (iptables/nftables) konfigurieren, dass der Zugriff auf den SSH-Port nur für die eine Quelladresse erlaubt.
Möglichkeit 2) SSHD über einen Match-Block so konfigurieren, dass nur die gewünschte Quell-IP sich anmelden darf.
/etc/ssh/sshd_config
Möglichkeit 2) SSHD über einen Match-Block so konfigurieren, dass nur die gewünschte Quell-IP sich anmelden darf.
/etc/ssh/sshd_config
Code: Alles auswählen
...
DenyUsers *
Match Address 1.2.3.4
AllowUsers *
Zuletzt geändert von heisenberg am 03.06.2024 19:55:43, insgesamt 2-mal geändert.
Re: Nur eine IP zum einloggen erlauben
Geht Möglichkeit 1 auch mit ufw?
Edit: Bereits gefunden - denke ich. Wenn ich es richtig verstehe, dann erlaube ich mit
sudo ufw allow from IP.IP.IP.IP to any port 22
den Zugriff auf SSH. Sind dann alle anderen IP´s automatisch geblockt?
Bzw. muss ich dann 22/tcp deaktiveren?
Edit: Bereits gefunden - denke ich. Wenn ich es richtig verstehe, dann erlaube ich mit
sudo ufw allow from IP.IP.IP.IP to any port 22
den Zugriff auf SSH. Sind dann alle anderen IP´s automatisch geblockt?
Bzw. muss ich dann 22/tcp deaktiveren?
Zuletzt geändert von spruce am 03.06.2024 19:57:08, insgesamt 1-mal geändert.
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Nur eine IP zum einloggen erlauben
Hatte meinen Beitrag editiert, ich bin so frei und zitiere ihn damit ihr eine Benachrichtigung bekommt
spruce hat geschrieben:03.06.2024 19:53:44Wenn ich es richtig verstehe, dann erlaube ich mit
sudo ufw allow from IP.IP.IP.IP to any port 22
der IP den Zugriff auf SSH. Sind dann alle anderen IP´s automatisch geblockt?
Bzw. muss ich dann 22/tcp deaktivieren?
Re: Nur eine IP zum einloggen erlauben
Du kannst zusätzlich auch in der .ssh/authorized_keys, from="<erlaubte-IP-Adresse>" und/oder in der ssh.service-unit:spruce hat geschrieben:03.06.2024 19:33:15ich befasse mich aktuell mit der Absicherung meiner Server, und dadurch das ich eine feste IP habe, würde ich gerne nur dieser erlauben sich via SSH einzuloggen.
Ganz gleich ob root (ist eh verboten) oder einem anderen User. Alles andere soll natürlich mit jeder IP erreichbar sein (80/443 z.B.)
Wie gehe ich hier am besten vor?
Code: Alles auswählen
IPAddressDeny=any
IPAddressAllow=<erlaubte-IP-Adresse>
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Nur eine IP zum einloggen erlauben
Ich nutze ufw selbst nicht.
Ich würde 4 Regeln empfehlen wollen:
Möglichkeiten zur Abhilfe:
Ich würde 4 Regeln empfehlen wollen:
- state=new + dest port 22 + source-ip 1.2.3.4 + eingehend auf public interface: allow
- state=related+established + dest port 22 + source-ip 1.2.3.4 -> eingehend auf public interface: allow
- state=related+established + source port 22 -> ausgehend auf public interface: allow
- default: drop
Möglichkeiten zur Abhilfe:
- Regeln nicht gleich persistent + rebootfest eintragen und dann eine Möglichkeit zum reboot des Systems haben
- Eine Konsole haben, um auch abseits der Netzwerkkonfiguration ein Terminal öffnen zu können.
- Script haben, dass einen Reboot durchführt, wenn nach X Minuten kein Login erfolgt ist.
Re: Nur eine IP zum einloggen erlauben
Also in der sshd_config? @mat6937
Denn dann wäre das ja die einfachste Lösung?
Denn dann wäre das ja die einfachste Lösung?
Re: Nur eine IP zum einloggen erlauben
Das wäre auch eine Möglichkeit.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: Nur eine IP zum einloggen erlauben
EDIT:
Z. B. so:
Code: Alles auswählen
AllowUsers <erlaubter-user>@<erlaubte-source-IP_Adresse>
DenyUsers !<erlaubter-user>@<erlaubte-source-IP_Adresse>
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: Nur eine IP zum einloggen erlauben
Noch besser so:mat6937 hat geschrieben:05.06.2024 08:42:39Z. B. so:Achte darauf, dass Du dich nicht aussperrst.Code: Alles auswählen
AllowUsers <erlaubter-user>@<erlaubte-source-IP_Adresse> DenyUsers !<erlaubter-user>@<erlaubte-source-IP_Adresse>
Code: Alles auswählen
Match Address <erlaubte-IP>
AllowUsers <erlaubter-user>
DenyUsers !<erlaubter-user>
Aber Achtung, der Login geht dann wirklich nur noch von der erlaubten IP. Bevor man sich damit aussperrt, sollte man zwei Terminals aufhaben, eines, über das man eingelogt ist und bleibt.
Das zweite, mit dem man nsch dem Restart des sshd den Loginversuch starten kann. Bei Nichtfunktion hat man noch das erste zut Korrektur. Ein
Code: Alles auswählen
systemctl restart ssh
Re: Nur eine IP zum einloggen erlauben
<erlaubte-IP> ist aber in diesem Fall, die IP-Adresse auf der der sshd lauscht, oder?MSfree hat geschrieben:05.06.2024 09:52:37Noch besser so:Code: Alles auswählen
Match Address <erlaubte-IP> AllowUsers <erlaubter-user> DenyUsers !<erlaubter-user>
Weiß der sshd zu diesem Zeitpunkt (... denn es ist ja noch vor der authentication auf dem Server) schon, für welchen user (erlaubt oder nicht erlaubt) das "packet type 50", vom ssh-Client kommt?
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: Nur eine IP zum einloggen erlauben
Nein, das ist die Quell-IP, also die Seite, von der du deinen SSH-Client startest.mat6937 hat geschrieben:05.06.2024 12:31:46<erlaubte-IP> ist aber in diesem Fall, die IP-Adresse auf der der sshd lauscht, oder?
ACHTUNG, private IP-Adressen kannst du nicht verwenden!
Re: Nur eine IP zum einloggen erlauben
Aber das mit Match ist doch ein Bedingungsblock. D. h. wenn die tatsächliche Quell-IP nicht der entspricht, die bei "Match Address ..." eingetragen ist, ist die Bedingung bzw. das Kriterium nicht erfüllt und es gelten die globalen Einstellungen der sshd_config, oder?MSfree hat geschrieben:05.06.2024 12:47:12Nein, das ist die Quell-IP, also die Seite, von der du deinen SSH-Client startest.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
Re: Nur eine IP zum einloggen erlauben
Richtig, aber die kann/muß man dann auch ändern. oder andere IPs durch einen weiteren MATCH-Block, der alle sosntigen IPs negiert, blockieren.mat6937 hat geschrieben:05.06.2024 12:52:36Aber das mit Match ist doch ein Bedingungsblock. D. h. wenn die tatsächliche Quell-IP nicht der entspricht, die bei "Match Address ..." eingetragen ist, ist die Bedingung bzw. das Kriterium nicht erfüllt und es gelten die globalen Einstellungen der sshd_config, oder?
Re: Nur eine IP zum einloggen erlauben
Ich habe es erfolgreich, mit einem einzigen Match-Block getestet. Z. B. so:MSfree hat geschrieben:05.06.2024 13:05:37.... oder andere IPs durch einen weiteren MATCH-Block, der alle sosntigen IPs negiert, blockieren.
Code: Alles auswählen
Match Address *,!<erlaubte-IP>
ForceCommand /usr/bin/false
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce