PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 10Min Sperre nach SSH Login



Yaddi
20.04.2005, 09:18
Hallo, ist es möglich eine IP Adresse zu sperren, wenn sich diese auf den Server einloggen möchte ?
Im Prinzip soll das so aussehen, dass wenn man sich per SSH auf den Server einloggen möchte, und man das falsche Passwort eingibt, soll der User 10 Min gesperrt bleiben ...
Gleichzeitig sollte die IP auch gesperrt sein.
Gibt es da eine möglichkeit ?

Benni

tr0nix
26.04.2005, 21:47
Sali Benni

Ehrlichgesagt fällt mir da gerade nicht viel dazu ein.. was genau willst du denn erreichen bzw. verhindern? Ich denke es ist möglich bei teils Firewalls die syn-connections in einer bestimmten Zeitspanne zu begrenzen. Sprich wenn du "Angst" hast vor Bruteforceattacken, lässt du einfach nur 10 SYN Packete pro Minute auf Port 22 zu. Muss allerdings nochmals betonen, dass ich nur vermute, dass sich der Syn-Flood Verhinderer configurieren lässt.

Gruss
Joel

Yaddi
26.04.2005, 22:37
Also nur mal angenommen jemand versucht sich unter dem root User über SSH einzuloggen, versucht es -
er scheitert, wegen falschem passwort,
versucht es wieder, scheitert allerdings wieder weil er immer noch nicht das richtige passwort gefunden hat,
und er probiert es nocheinmal, und scheitert wieder ...

nun soll halt quasi ein schutz verhindern, das man sich jetzt wieder einloggen kann, quasi wenn man nun wieder eine ssh verbindung aufbaut, das diese IP Adresse von der die ganzen versuche gekommen sind, gesperrt werden.

devilz
26.04.2005, 22:46
Warum implentierst du nicht lieber Portknocking als Sicherheitslösung für ssh ?

http://www.portknocking.org/
http://www.linuxjournal.com/article/6811
http://en.wikipedia.org/wiki/Port_knocking

hex
27.04.2005, 07:27
Warum implentierst du nicht lieber Portknocking als Sicherheitslösung für ssh ?

http://www.portknocking.org/
http://www.linuxjournal.com/article/6811
http://en.wikipedia.org/wiki/Port_knockingWollte ich auch gerade Vorschlagen *g*
Hab darüber mal n Bericht gelesen. Soll recht gut funktionieren!
Wenn ich mal n bissel Zeit habe werd ich das auch mal bei mir daheim testen ;)


mfg hex

tr0nix
27.04.2005, 07:59
Naja, root-Login via SSH würde ich sowieso verhindern. In dem Fall braucht man 2 Passwörter.

Andere Lösung wäre auch, nur Clients mit korrekten Keys connecten zu lassen. Dann müsstest du jedoch egal wo du bist den ssh Key bei dir haben.

Havoc][
27.04.2005, 09:30
Könnte man das ganze nicht mit snort/(Inline) und nem Batchscript mit AT realisieren?

Hätte zwar auch Portknocking vorgeschlagen, aber mit Snort kannste da bestimmt auch irgendwie was reissen. Der Aufwand wäre aber bestimmt etwas höher.


Mit IPTables kannst du doch einzelne IPs sperren. Das müsste dann natürlich in das Batchscript :D.


Havoc][

Yaddi
27.04.2005, 10:07
Mh das Portknocking ist schon recht interessant.

Das mit dem Root Verhindern über SSH ist schon klar. Das ist auch ne Möglichkeit weil man dann eh zwei Passwörter brauch.

Naja ich schau mir das Portknocking mal genauer an.

bananenman
27.04.2005, 10:09
1. root login verbieten
2. password-login verbieten
3. pro person die root werden darf einen ausgewählten user (der ansonsten auf dem system nichts darf) anlegen und je ein key ausstellen. der user kann dann per su - zum root werden und wird dabei geloggt - d.h. es ist möglich nachzuvollziehen wer welchen mist verzapft hat.
4. ssh sollte nicht auf port 22 lauschen - nimm irgend einen port über 1024

mfg

bananenman

tr0nix
27.04.2005, 12:18
bananenman: sudo wär noch besser ^^.

Wieso sollte ssh nicht auf Port 22 sein? Security by obscurity ist eine ganz schlechte Idee! Ein guter Portscanner erkennt auch den Service, der auf dem Port läuft (mach mal ne Telnetverbindung auf den SSH Port deines Servers.. openssh ist da recht gesprächig mit dem Banner in den meisten Installationen).

bananenman
27.04.2005, 14:04
wird bei sudo geloggt, wer grade was machen will? (ich weiß das im moment echt nicht - ich kann sudo sowieso nicht leiden und reaktiviere auf distributionen die root offiziel nicht unterstützen immer erstmal den account). das ein portscanner den ssh auch auf 54398 entdeckt ist schon klar - aber wer hat soviel zeit und macht sich die mühe da oben nach ssh zu suchen? das problem teilt sich doch in mind. zwei kategorien auf: erstmal die, die eigentlich nur rumspielen wollen. die suchen nur nach den standardports und schauen mal ob es da nicht was zu holen gibt. die hättest du hier schon ausgeschaltet. die zweite kategorie hat es aus irgendeinem grund wirklich auf deinen server abgesehen (etwas, was otto-normal-admin wohl nie passieren wird). die schauen natürlich genauer hin und fallen auch nicht so einfach auf jeden honeypott rein (das währe das nächste: eine schöne leimrute auf 22 rumwedeln lassen - da kann man reichlich motten fangen, wetten?). aber wer heißt mit nachnamen schon nasa, debian.org oder siemens ... .

mfg

bananenman

token
03.05.2005, 17:50
Ist zwar nicht die Antwort nach der verlangt wurde, jedoch ist es sinnvoll in sshd_config folgendes einfliessen zu lassen

# Allow all members of guest group "sshlogins" to log via ssh
AllowGroups sshlogins
um von Anfang an "unerwünschte" Besucher, welche über Netzwerkdienste eingebrochen sind, auszuschliessen.
Natürlich ist gerade hier ein restriktives Firewallruleset mehr als "mandatory" :)


Mfg

tr0nix
04.05.2005, 08:54
@bananenman: Bei 08/15 Scannern ist es aber auch nicht üblich, per Bruteforce Passwörter knacken zu wollen da ja der direkte root-Login in 75% gesperrt ist und ein lokaler User nicht bekannt ist.

Zudem ist diese Konfigurationsänderung für Newbies schnell problematisch da Firewalls und weitere Netzsoftware sich auf die Angaben im /etc/services verlassen oder gar hardcodiert die Ports der üblichen Services gespeichert haben.

Honeypots sind natürlich eine lustige Sache. Ich würde jedoch mehr mit Windows-Viren-Backport-Fakes als SSH-Daemons experimentieren in dieser Hinsicht da Port 22 ein priviligierter Port ist und nur von root geöffnet werden kann. Viele dieser Fake-Software ist jedoch nicht so komplex und spawnt ein Child an welches die Verbindungsanfrage weitergegeben wird. Zudem ist die Software meist nicht sehr weit verbreitet und somit gut getestet.

@token: Gute Idee! Kannte diese Anweisung noch gar nicht. Ist wie "wheel" Gruppe für su auf root.

Wegen sudo: du kannst einstellen, dass User nur ganz bestimmte Kommandos unter root ausführen dürfen. In dem Fall siehst du ganz genau, wer was gemacht hat. Ansonsten siehst du einfach, welcher User den sudo auf "su -" gemacht hat. In diesem Fall hast du nicht mehr Informationen wie du auch im sulog findest.

TheReaper
19.06.2005, 15:43
@ Yaddi: Hast du dir schon SSHBlack (http://www.pettingers.org/code/sshblack.html) angesehen? Sollte doch deinen Wünschen entsprechen.

mfG