Auto SSH Login Blocker

Hallo Gemeinde,

ich wuerde das Script auch gern einsetzen, aber irgendwie funzt es nicht so recht :(
Nach dem Starten wird eine /var/log/security angelegt und auch "vollgeschrieben" einen /tmp/.ipblocker Pfad gibt's auch, aber keine /tmp/.ipblocker.log und geblockt wird auch nichts :(
Leider bin ich nicht der große Auskenner hat jemand einen heissen Tip wo's noch klemmen könnte?
Der Pfad zu iptables stimmt laut which iptables stimmt.


Danke für eure hoffentlich zahlreichen Tip. Obwohl DER EINE ja schon reicht ;)
 
Hallo,

hab's selbst hingekriegt.
Mit

system("$iptables -t nat -I PREROUTING -p tcp -s $ip --dport 22 -j REDIRECT --to-ports $server_port");

statt

system("$iptables -t nat -I PREROUTING -p tcp -s $ip --dport 22 -j DNAT --to :$server_port");​

hat's hingehauen...:)
 
Sicherheitsrelevante Skriptbestandteile?

Hallo.
Ich hab mir mal oberflächlich das hier so gepriesene, von der Funktionalität her sehr praktische Skript durchgelesen. Und zu folgendem Abschnitt hab ich denn doch eine Frage:
sub remotelog {
#
# Log blocking / reblocking
#
my $ip = $_[0];
my $userid = $rlog_uid;
my $pwd = $rlog_pwd;
if ($userid and $pwd) {
eval {
my $ua = LWP::UserAgent->new;
$ua->timeout(2);
my $response = $ua->get("http://www.newald.de/cgi-bin/blocked_ips?action=block&userid=$userid&pwd=$pwd&ip=$ip");
exit 0;
}
}
}

Da verbindet sich das Skript mit der Seite des Herstellers. Ist anscheinend dafür gedacht, Zugriffe zu melden für eine Datenbank (wenn man einen Account hat). Aber was das Skript macht auf dem Rechner des Skript-Autoren, weiß ja keiner. In jedem Fall wird die eigene IP-Adresse übermittelt.
Ich würde diesen Block unschädlich machen. Zum Beispiel so:

sub remotelog {
#
# Log blocking / reblocking
#
}

Find ich schon einen nicht unerheblichen Zugriff auf eigene Daten. Wenn ich mich irren sollte, freu ich mich über Aufklärung.
 
Falsch in dem BLOCK holt er sich IPs aus einer Liste sendet aber keine! Und auch wenn die Funktion wird nirgends im Skript aufgerufen ;-)
 
Last edited by a moderator:
Denyhosts

Hi,

bei wem das vorgestellte Script nicht funktioniert, z.b. weil er keinen Zugriff auf iptables hat, sollte DenyHosts ausprobieren. Es baut auf logs auf, z.b. unter Debian auf auth.log. Bin damit voll auf zufrieden und freue mich jeden Morgen über die gemeldeten geblockten IPs. DenyHosts
Auspacken, config-file anpassen und vi hosts.deny launchen lassen:

Code:
ALL:/etc/hosts.blocked
sshd:ALL:spawn /usr/bin/python2.4 /etc/DenyHosts/denyhosts.py --purge -c /etc/DenyHosts/denyhosts.cfg: allow

Vorsicht, wenn so eingestellt, blockt es die in hosts.blocked eingetragenen IPs für alle services die durch inetd hochgezogen werden, also evtl. auch pop3 etc.

Viel Spass,
Joel
 
Mit Plesk macht es Probleme

Hallo.

Mein Rooty läuft im Moment relativ sauber.

Plesk ist mit meinen Domains eingerichtet und auch mein Thawte-SSL-Cert ist bei Mail und Domain aktiv.

Selbst ein Board läuft, habe zuletzt mit dem RPMS hier, auf meinem SuSE 9.3 die PHP-Geschichte geupdatet.

Nun viel mir ebenfalls auf wie vielen anderen, das laufend Scans auf den SSH in den Logs zu verzeichnen sind.

Also hier diese tolle AUTO SSH-Login-Blocker rausgesucht und schon scheiterts.

Mit den Info konnte ich es auch zum Laufen bringen, aber hier hakkt es:

1) Eine echte SYSLOG.CONF ist bei SUSE ja nicht wirklich vorhanden, wo also die Zeile "Add something like 'auth.*;authpriv.* /var/log/security' to your syslog.conf" eintragen ?

2) Da die Suse-Firewall ja nicht läuft, ist wohl die PSA-FIREWALL aktiv. Sollte zumindest so sein. Aber, der Dienst sagt immer aus: SERVICE IS DISABLED.


Macht es Sinn, hier mittels INSSERV -r PSA-FIREWALL und INSSERV -R PSA-FIREWALL-FORWARD rauszunehmen und dann mit INSSERV SuSEFirewall-SETUP und INSSERV SuSEFirewall-INIT zu arbeiten ?

Für Hilfe für einen Plesk-Geschädigten wäre ich sehr dankbar.

Ach ja. Ist Plesk 7.5.4 Reloaded auf dem aktuellen Stand

Gruß
Tekknix
 
@tekknix

Hallo,

dein Problem hat sicher nichts mit Plesk zu tun.
Der syslogd ist bei SUSE 9.3 erheblich anders zu konfigurieren, die config-Datei ist syslog-ng.conf in /etc/syslog-ng.

Bei
# Filter definitions

folgendes definieren:

filter f_ipblocker { facility(auth, authpriv); };

und z.B. am Ende der Datei flogendes:

# ipblocker
destination security { file("/var/log/security"); };
log { source(src); filter(f_ipblocker); destination(security); };

Die Meldungen, die der syslogd "ausspuckt" sind auch etwas anders, also solltest Du noch

my $reasons = "(Illegal user )|(identification string )|(Failed password )";

in sowas, wie

my $reasons = "(illegal user )|(invalid user )|(Invalid user )|(identification string )|(Failed password )|(Authentication failure )";

in der ipblocker.pl ändern.

Viel Erfolg, Heiko...
 
DummiMan said:
Gibt es auch eine kleine Kurzanleitung wie das erst genannte Skript zu verwenden ist ?
Einfachste Methode:
Nach /etc/init.d/ip_blocker schreiben, ausführbar machen und starten.

huschi.
 
hat das alles auch was mit diesen fehlermeldungen in warn zu tun?
Code:
Apr 22 01:17:51 p******* postfix/smtpd[26363]: warning: smtpd_peer_init: 88.121.82.2: hostname dyn-88-121-82-2.ppp.tiscali.fr verification failed: Name or se
rvice not known


edit: auf was für ideen die kommen, auszug aus meiner security:
Code:
May  5 14:34:40 p******* sshd[6171]: Invalid user deutch from 218.249.147.226
May  5 14:34:40 p******* sshd[6171]: Failed password for invalid user deutch from 218.249.147.226 port 35356 ssh2
May  5 14:34:44 p******* sshd[6173]: Invalid user german from 218.249.147.226
May  5 14:34:44 p******* sshd[6173]: Failed password for invalid user german from 218.249.147.226 port 35424 ssh2
May  5 14:34:49 p******* sshd[6175]: Invalid user hitler from 218.249.147.226
May  5 14:34:49 p******* sshd[6175]: Failed password for invalid user hitler from 218.249.147.226 port 35507 ssh2
May  5 14:34:54 p******* sshd[6179]: Invalid user deutchland from 218.249.147.226
May  5 14:34:54 p******* sshd[6179]: Failed password for invalid user deutchland from 218.249.147.226 port 35574 ssh2
 
Last edited by a moderator:
Interessant wäre ja mal eine Schritt für Schritt Anleitung SSH Blocker, für Suse 9.3 z.B.
Also wohin muß dieses Script gepackt werden, was tun und was lassen usw.
Ich blicke da nicht durch.
Aber das ist bei Linux auch das Hauptproblem.
Da gibt es irre viel Sachen, bestimmt auch richtig gutes Material dabei.
Aber eine Schritt für Schritt Installationsanleitung ist meistens nicht zu finden.
Darum installiere ich nichts, auch wenn es gut klingt oder vielleicht nötig wäre, aus Sicherheitsgründen.
Einfach zu gefährlich ohne Anleitung, wenn der Server läuft fasse ich ihn am liebsten überhaupt nicht an.:)
Letztens habe ich über yast mal ein Kernel update gemacht, für die Entscheidung habe ich 4 Monate gebraucht.
Wegen der Warnmeldung, könnte auch schief gehen.
Und yast ist noch einfach, macht ja alles alleine.:)
 
Sorry mein Post war vor deinem EDIT, diese Meldung:
Code:
Apr 22 01:17:51 p******* postfix/smtpd[26363]: warning: smtpd_peer_init: 88.121.82.2: hostname dyn-88-121-82-2.ppp.tiscali.fr verification failed: Name or se
rvice not known

Stammt von deinem Mail nicht von SSH und sie besagt dass dieser Hostname nicht gefunden wurde...einfach irgnorieren nichts ernstes solange das nicht 10x in der Minute im Log auftaucht.

Das was du im Edit hinzugefügt hast stammt sehr wohl vom SSH. Da empfiehlt sich dieses Blocking-Script wirklich.
 
djrick said:
Das was du im Edit hinzugefügt hast stammt sehr wohl vom
SSH. Da empfiehlt sich dieses Blocking-Script wirklich.
Ja, das Script läuft schon. Die Logs sind aus der security-Datei, die der
SSH-Login-Blocker erstellt. Die smtp_peer_init-Einträge hab ich übrigens ca.
jede 1/2 Stunde.

edit: aber in der security fand ich gerade was merkwürdiges:
Code:
May  5 04:15:34 p15144192 su: (to nobody) root on none
May  5 04:15:34 p15144192 su: pam_unix2: session started for user nobody, service su
May  5 04:15:50 p15144192 su: pam_unix2: session finished for user nobody, service su
Hat da jemand eine Erklärung?



@garfield:
Kopiere einfach das Script und gib in der Shell folgendes ein:
vi ipblocker - dann auf i klicken (damit der Insert-Modus von
vi eingeschaltet wird), jetzt mit der Maus ein Rechtsklick und schwupps
ist das Script eingefügt.

Jetzt noch ESC und :wq! eingeben und das Script wird
gespeichert.

Ausführen kannst Du das Script nun mit ./ipblocker.
Sollte jetzt die Meldung der vorherigen Posts kommen einfach mit
cpan force install IPC::Shareable nachinstallieren und das Script
anschließend nochmal neustarten.

Sollte ich was vergessen haben, bitte korrigieren. :)

Gruß,
snake
 
Last edited by a moderator:
Danke snake, werde ich umgehend ausprobieren.:)

Habe es probiert, folgender Fehler taucht auf.
t/35clean.t 11 6 54.55% 2 6-9 11
Failed 1/14 test scripts, 92.86% okay. 6/93 subtests failed, 93.55% okay.
make: *** [test_dynamic] Fehler 255
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force

Obwohl ich Huschis Rat befolgt habe und es so gemacht habe.

cpan force install IPC::Shareable

Das ist bestimmt wieder so ein Suse9.3 Problem, oder Plesk oder so.
Wie kann ich denn CPAN wieder loswerden? Das brauche ich ja eigentlich nicht, wo es sowieso nicht klappt.

Da werde ich besser die Finger von lassen, glaube ich. :-)
 
Last edited by a moderator:
Huschi said:
Einfachste Methode:
Nach /etc/init.d/ip_blocker schreiben, ausführbar machen und starten.

huschi.


Das geht auch leider nicht bei Suse 9.3, es wird immer irgendwas mit Perl bemängelt und es endet mit ipblocker on line 59.
Was auch immer da gemeint ist, Englisch ist nicht meine Stärke.
Auf jeden Fall gibt es auf alle erdenklichen Arten Fehlermeldungen massenweise.
Ob nun mit CPAN, CPAN force oder ohne installiert.
Nur die Länge der Fehlermeldungen variiert, man sollte an so einem Server nichts verändern.
Ich habe noch nie ein Skript zum Laufen gebracht bei meinem Highend Server,
was nicht über yast installierbar ist, geht gar nicht.
Damit muß man wohl leben.:)
 
garfield said:
Ich habe noch nie ein Skript zum Laufen gebracht bei meinem Highend Server, was nicht über yast installierbar ist, geht gar nicht.
Damit muß man wohl leben.:)
hmm, mit der einstellung solltest du eventuell mal die tätigkeit als hoster (?)
überdenken. außerdem kannst du nicht alles über yast aktualisieren. z.b. confixx

was bekommst du denn für fehlermeldungen? da fehlen dir wahrscheinlich einfach
ein paar bibliotheken. die kann man schnell nachinstallieren.
 
Back
Top