IPTABLES - ssh für bestimmte dynamische IP zulassen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
heisenberg
Beiträge: 3541
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von heisenberg » 21.04.2017 14:39:30

MSfree hat geschrieben:
heisenberg hat geschrieben:Ich habe meinen PortKnocking-Client auf dem Handy. Dort schalte ich es frei und nutze von anderer Stelle. Ist natürlich temporäres Sicherheitsrisiko den SSH für alle zu öffnen. Ich halte das für mich für akzeptabel.
Das ist eine Idee, die mir so noch gar nicht gekommen ist. OK, SSH muß wohl oder übel für 1-2 Minuten für jeden geöffnet werden, aber das Risiko, ausgerechnet während dieses Zeitfensters gehackt zu werden, ist überschaubar. :THX:
Ok. Die Idee ist sogar noch besser. Im Moment mach' ich den Port für 2 Stunden auf. Aber nach erfolgreichem Login kann man natürlich für den betreffenden Client länger erlauben und die Regel für den für alle geöffneten SSH sofort wieder entfernen.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

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

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von MSfree » 21.04.2017 14:54:53

heisenberg hat geschrieben:Ok. Die Idee ist sogar noch besser. Im Moment mach' ich den Port für 2 Stunden auf. Aber nach erfolgreichem Login kann man natürlich für den betreffenden Client länger erlauben und die Regel für den für alle geöffneten SSH sofort wieder entfernen.
Mit iptables wäre das eigentlich ganz einfach mit folgender permanenten Regel:

Code: Alles auswählen

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
erlaubt grundsätzlich bestehende Verbindungen. Du müßtest Port 22 also gar nicht länger aufhalten, wenn die Verbindung steht, darum kümmert sich die ESTABLISHED,RELATED-Regel.

Die folgende Regel, die sich nur um den Neuaufbau von SSH-Verbindungen kümmert, mußt du dann nach 1-2 Minuten wieder löschen:

Code: Alles auswählen

IPTABLES -A INPUT --dport 22 -m state --state NEW -j ACCEPT

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

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von heisenberg » 21.04.2017 14:56:41

War/Bin mir nicht sicher ob die gleiche SSH-Sitzung unter allen Umständen auch die gleiche TCP-Sitzung ist. Ist das wirlich so?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

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

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von MSfree » 21.04.2017 15:06:11

heisenberg hat geschrieben:War/Bin mir nicht sicher ob die gleiche SSH-Sitzung unter allen Umständen auch die gleiche TCP-Sitzung ist. Ist das wirlich so?
Ja, das ist garantiert.

Allerdings habe ich mir über dieses dynamische IP-Problem auch meine Gedanken gemacht und einen Daemon geschrieben, der Clients mit Hostnamen, die per DynDNS auflösbar sind, Zugang gewährt. Mittlerweise ist dieser Daemon noch um Pingknocking erweitert worden, was aber einen speziellen Pingclient voraussetzt, der die Payload in die Pingpakete schreibt.

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

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von heisenberg » 21.04.2017 15:11:27

MSfree hat geschrieben:Allerdings habe ich mir über dieses dynamische IP-Problem auch meine Gedanken gemacht und einen Daemon geschrieben, der Clients mit Hostnamen, die per DynDNS auflösbar sind, Zugang gewährt. Mittlerweise ist dieser Daemon noch um Pingknocking erweitert worden, was aber einen speziellen Pingclient voraussetzt, der die Payload in die Pingpakete schreibt.
Das wäre dann also ein sehr komplexes Passwort, dass im Klartext über die Leitung geschickt wird?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

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

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von MSfree » 21.04.2017 15:29:54

heisenberg hat geschrieben:Das wäre dann also ein sehr komplexes Passwort, dass im Klartext über die Leitung geschickt wird?
Nein, das Paßwort wird durch einen Zeitfaktor verlängert und mit SHA256 gehasht und dann der Hash übertragen. Das ganze ist im Endeffekt so etwas ähnliches wie ein One-Time-Paßwort. Der Knockingdaemon nimmt das hinterlegte Paßwort und hasht es ebenfalls mit diesem Zeitfaktor und vergleicht die Hashes.

Durch den Zeitfaktor ist so ein Hash dann nur eine gewisse zeit gültig, und selbst, wenn ein Angreifer den mitliest, hätte er nicht lange Freude daran. Die Uhren in Client und Server müssen dazu allerdings halbwegs synchron laufen, was dank NTP ja eigentlich kein großes Problem ist. Dennoch erlaube ich hier noch 100s Tolleranz.

- ein Angreifer müßte also zunächst den Hash mitlesen
- dann müßte er das Pingpaket selbst von seinem Angriffsrechner abschicken
- dann müßte er wissen, was der Knockingdaemon mit dem Hash macht, er öffnet ja nicht unbedingt den SSH-Port, das funktioniert mit einem OpenVPN-Port auch.
- Sollte er herausbekommen haben, daß der verschickte Hash den SSH-Port für 2 Minuten öffnet, kann er in dieser Zeit versuchen, den SSH-Server zu kapern
Ich denke, das dürfte hinreichend abgesichert sein :mrgreen:

suleiman
Beiträge: 193
Registriert: 21.12.2016 04:09:41

Re: IPTABLES - ssh für bestimmte dynamische IP zulassen

Beitrag von suleiman » 23.04.2017 12:25:03

Wenn schon mit Passwort dann würde ich auch Debiansshguard installieren, funktioniert wie Debianfail2ban.

Antworten