Nur eine IP zum einloggen erlauben

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
spruce
Beiträge: 12
Registriert: 16.08.2023 07:55:16

Nur eine IP zum einloggen erlauben

Beitrag von spruce » 03.06.2024 19:33:15

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

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Nur eine IP zum einloggen erlauben

Beitrag von heisenberg » 03.06.2024 19:42:14

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

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.

spruce
Beiträge: 12
Registriert: 16.08.2023 07:55:16

Re: Nur eine IP zum einloggen erlauben

Beitrag von spruce » 03.06.2024 19:53:44

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?
Zuletzt geändert von spruce am 03.06.2024 19:57:08, insgesamt 1-mal geändert.

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Nur eine IP zum einloggen erlauben

Beitrag von heisenberg » 03.06.2024 19:54:25

Ja.

spruce
Beiträge: 12
Registriert: 16.08.2023 07:55:16

Re: Nur eine IP zum einloggen erlauben

Beitrag von spruce » 03.06.2024 19:58:13

Hatte meinen Beitrag editiert, ich bin so frei und zitiere ihn damit ihr eine Benachrichtigung bekommt :)
spruce hat geschrieben: ↑ zum Beitrag ↑
03.06.2024 19:53:44
Wenn 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?

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 03.06.2024 20:00:10

spruce hat geschrieben: ↑ zum Beitrag ↑
03.06.2024 19:33:15
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?
Du kannst zusätzlich auch in der .ssh/authorized_keys, from="<erlaubte-IP-Adresse>" und/oder in der ssh.service-unit:

Code: Alles auswählen

IPAddressDeny=any
IPAddressAllow=<erlaubte-IP-Adresse>
benutzen.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

Benutzeravatar
heisenberg
Beiträge: 4123
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Nur eine IP zum einloggen erlauben

Beitrag von heisenberg » 03.06.2024 20:06:26

Ich nutze ufw selbst nicht.

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
Man schießt sich üblicherweise recht schnell den SSH-Zugang bei so etwas weg, wenn man nicht aufpasst.

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.

spruce
Beiträge: 12
Registriert: 16.08.2023 07:55:16

Re: Nur eine IP zum einloggen erlauben

Beitrag von spruce » 04.06.2024 21:23:39

Also in der sshd_config? @mat6937

Denn dann wäre das ja die einfachste Lösung?

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 04.06.2024 21:35:07

spruce hat geschrieben: ↑ zum Beitrag ↑
04.06.2024 21:23:39
Also in der sshd_config?
Das wäre auch eine Möglichkeit.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 05.06.2024 08:42:39

mat6937 hat geschrieben: ↑ zum Beitrag ↑
04.06.2024 21:35:07
spruce hat geschrieben: ↑ zum Beitrag ↑
04.06.2024 21:23:39
Also in der sshd_config?
Das wäre auch eine Möglichkeit.
EDIT:

Z. B. so:

Code: Alles auswählen

AllowUsers <erlaubter-user>@<erlaubte-source-IP_Adresse>
DenyUsers !<erlaubter-user>@<erlaubte-source-IP_Adresse>
Achte darauf, dass Du dich nicht aussperrst.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: Nur eine IP zum einloggen erlauben

Beitrag von MSfree » 05.06.2024 09:52:37

mat6937 hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 08:42:39
Z. B. so:

Code: Alles auswählen

AllowUsers <erlaubter-user>@<erlaubte-source-IP_Adresse>
DenyUsers !<erlaubter-user>@<erlaubte-source-IP_Adresse>
Achte darauf, dass Du dich nicht aussperrst.
Noch besser so:

Code: Alles auswählen

Match Address <erlaubte-IP>
   AllowUsers <erlaubter-user>
   DenyUsers !<erlaubter-user>
Das fängt jeden Verbindungsversuch schon ab, bevor er in den Loginprozeß geht.

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
vom ersten Terminal logt einen nicht aus.

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 05.06.2024 12:31:46

MSfree hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 09:52:37
Noch besser so:

Code: Alles auswählen

Match Address <erlaubte-IP>
   AllowUsers <erlaubter-user>
   DenyUsers !<erlaubter-user>
<erlaubte-IP> ist aber in diesem Fall, die IP-Adresse auf der der sshd lauscht, oder?
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

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: Nur eine IP zum einloggen erlauben

Beitrag von MSfree » 05.06.2024 12:47:12

mat6937 hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 12:31:46
<erlaubte-IP> ist aber in diesem Fall, die IP-Adresse auf der der sshd lauscht, oder?
Nein, das ist die Quell-IP, also die Seite, von der du deinen SSH-Client startest.

ACHTUNG, private IP-Adressen kannst du nicht verwenden!

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 05.06.2024 12:52:36

MSfree hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 12:47:12
Nein, das ist die Quell-IP, also die Seite, von der du deinen SSH-Client startest.
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?
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: Nur eine IP zum einloggen erlauben

Beitrag von MSfree » 05.06.2024 13:05:37

mat6937 hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 12:52:36
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?
Richtig, aber die kann/muß man dann auch ändern. oder andere IPs durch einen weiteren MATCH-Block, der alle sosntigen IPs negiert, blockieren.

mat6937
Beiträge: 3361
Registriert: 09.12.2014 10:44:00

Re: Nur eine IP zum einloggen erlauben

Beitrag von mat6937 » 05.06.2024 15:17:36

MSfree hat geschrieben: ↑ zum Beitrag ↑
05.06.2024 13:05:37
.... oder andere IPs durch einen weiteren MATCH-Block, der alle sosntigen IPs negiert, blockieren.
Ich habe es erfolgreich, mit einem einzigen Match-Block getestet. Z. B. so:

Code: Alles auswählen

Match Address *,!<erlaubte-IP>
        ForceCommand /usr/bin/false
Die Zeilen (hier nur ForceCommand) im Match-Block können/müssen optimiert/angepasst werden. Mir ging es hier nur um die erfolgreiche Negation (d. h. um eine Ausnahme nur für die erlaubte IP) für den Wert des Argumentes "Address" im Match-Block und deshalb nur die Zeile "ForceCommand /usr/bin/false".
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

Antworten