ubuntuusers.de

SSH nach dem Start für alle x Minuten möglich machen

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

Fohnbit

Anmeldungsdatum:
31. August 2013

Beiträge: 181

Hallo!

Ich möchte meine online Server besser absichern und möchte SSH nur von meiner IP zulassen. Damit ich mich aber nicht selber einmal aussperre, sollte nach einem Neustart SSH für alle IPs x Minuten möglich sein.

Wie würdet ihr das umsetzen?

Cronjob bei Serverstart startet ein Script, welches ich nach einem schnellen Login noch abbrechen kann? Das Script ermöglicht SSH für alle IPs nach dem Start und nach X Minuten sperrt er es wieder nur auf meine?

Danke!

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 845

Wohnort: Hamburg

Die erste Frage die mir dazu in den Sinn kommt. Hast du an deinem WAN eine Statische IP?

Fohnbit

(Themenstarter)

Anmeldungsdatum:
31. August 2013

Beiträge: 181

micneu schrieb:

Die erste Frage die mir dazu in den Sinn kommt. Hast du an deinem WAN eine Statische IP?

Ja natürlich. Sonst würde das nicht klappen ☺ Aber wenn sich nach Jahren die einmal ändert und ich "behirne" nicht das ich die Server auf die IP gesperrt habe, habe ich keinen Zugriff mehr.

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8960

Ich würde es "klassisch" lösen. ssh-Login nicht per Passwort sondern nur per passwortgesicherter Schlüsseldatei. Dann noch Root-Login verbieten. Das sollte reichen und keinen IP-Filter mehr benötigen.

Ansonsten Konfigurationsdatei per Cron-Job tauschen und ssh-Dienst neu laden. Ist aber mehr Security through obscurity.

Fohnbit

(Themenstarter)

Anmeldungsdatum:
31. August 2013

Beiträge: 181

Thomas_Do schrieb:

Ich würde es "klassisch" lösen. ssh-Login nicht per Passwort sondern nur per passwortgesicherter Schlüsseldatei. Dann noch Root-Login verbieten. Das sollte reichen und keinen IP-Filter mehr benötigen.

Ansonsten Konfigurationsdatei per Cron-Job tauschen und ssh-Dienst neu laden. Ist aber mehr Security through obscurity.

Danke. Aber bei Verlust der Datei würde ich mich auch aussperren. Das ist mir unsicher.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 6398

Systemd Timer Units. Die können beispielsweise OnBootSec als Auslöser nutzen. Oder auch die relative Zeit bezogen auf den Zeitpunkt, als die Service Unit zuletzt aktiviert wurde. Im Wiki:

Die jeweils dazu gehörige Service Unit lässt sich dann so beschalten wie man selbst will. Der Fantasie sind da kaum Grenzen gesetzt.

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8960

Fohnbit schrieb:

Danke. Aber bei Verlust der Datei würde ich mich auch aussperren. Das ist mir unsicher.

Passwörter sind unsicher, Absicherung über Schlüsselpaare ist Standard für sichere SSH-Verbindungen. Hat man physikalischen Zugriff auf den Server oder kann ein "Rescue-System" starten sperrt man sich auch nicht aus.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14790

Fohnbit schrieb:

Cronjob bei Serverstart startet ein Script, welches ich nach einem schnellen Login noch abbrechen kann? Das Script ermöglicht SSH für alle IPs nach dem Start und nach X Minuten sperrt er es wieder nur auf meine?

Du könntest mit dem cronjob oder besser mit einer timer-unit, X Minuten nach dem booten (oder nach aktiv werden der timer-unit) ein Script starten, dass eine iptables-Regel setzt die Zugriff auf dem lauschenden Port des sshd nur mit einer bestimmten source-IP-Adresse erlaubt.

RGB

Anmeldungsdatum:
15. Februar 2020

Beiträge: 14

Gleiches Problem habe ich derzeit mit dem VPN-Zugang ...

Gelöst habe ich das so ... Beispiel:

iptables -I WAN 1 -p udp --dport 1194 -m time --timestart 21:00 --timestop 8:00 -j DROP
iptables -I WAN 1 -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT

Alternativ / zusätzlich kannst du den SSH-Zugang nur über VPN zulassen und den Port anders konfigurieren.

Das Ganze dann per crontab mit @reboot sleep 60, falls der Rechner mal einen Neustart macht.

🙄

EDIT

Alternativ zu der MAC kannst du einen DynDNS Account nutzen und diese IP freigeben oder zusätzlich mit der MAC nutzen.

Allerdings muss hier noch ein zusätzliches Script den DynDNS Account abfragen, die aktuelle IP ermitteln und die Regel dann entsprechend ändern.

Antworten |