Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 10:56:47

Hi,
mit "iptables -L |grep REJECT" bekomme ich eine liste der banned ips
In der fail2ban.log(.*) stehen die bans mit Datum.

ich würde gerne wissen, seit wann die aktuell geblockte IP geblockt ist.
Ich brauche ein Script, dass mir auflistet welche IP gesperrt ist und seit wann.

ip xy gesperrt seit
ip yz gesperrt seit

sortiert nach datum

Bekomme ich aber ohne Hilfe nicht hin.
pleasse help :hail:

DeletedUserReAsG

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von DeletedUserReAsG » 08.02.2019 12:06:30

Wie sieht denn dein bisheriger Ansatz aus, beziehungsweise, an welcher Stelle kommst du nicht weiter?

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 12:10:46

Ich habe bisher nur ein Script, dass mir die Fails als html-Datei bereit stellt.
Schön untereinander
Aber wie ich da das Datum zu den IPs rausfiltern soll... keine Ahnung

Alles noch etwas dünn

Code: Alles auswählen

#!/bin/bash
clear
dest=/var/www/html/f2b
file1=outfile
file2=index.html
eigene=$(curl -s ip.dnshome.de)

iptables -L |grep REJECT > $dest/$file1
banns=$(wc -l $dest/$file1)
echo "<META HTTP-EQUIV="refresh" CONTENT="15">" >$dest/$file2
echo "<h4> Datum:" `date +%d.%m.%Y-%H:%M` "+++ Eigene IP:" $eigene "+++ Banned IPs_:" $banns "</h4>" >>$dest/$file2

while read line
 do
 echo $line "<br>" >>$dest/$file2
done < $dest/$file1
chown www-data. $dest/$file2
rm $dest/$file1
Zuletzt geändert von Huck Fin am 08.02.2019 12:38:55, insgesamt 2-mal geändert.

k2
Beiträge: 132
Registriert: 14.08.2002 22:29:28
Lizenz eigener Beiträge: MIT Lizenz

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von k2 » 08.02.2019 12:32:35

Also, die Listen von iptables -L und fail2ban.log anhand der IPs miteinander verknüpfen und daraus eine Zeile wie "ip x.x.x.x banned seit dd.mm.yyyy" generieren.

Da könnten ein paar Beispielzeilen aus "iptables -L | grep REJECT" und fail2ban.log helfen; hat ja nicht jeder herumliegen...

Grüße

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 12:39:52

Code: Alles auswählen

#!/bin/bash
clear
dest=/var/www/html/f2b
file1=outfile

iptables -L |grep REJECT > $dest/$file1
# generiere liste mit ip adressen der banns
cat $dest/$file1 |awk '{print $4 }' >$dest/iplist

while read line
 do
 cat /var/log/fail2ban.log*|grep $line|grep Ban

done < $dest/iplist
Ergebniss

Code: Alles auswählen

2019-02-04 14:36:43,708 fail2ban.actions        [2075]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-05 08:32:33,625 fail2ban.actions        [1955]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 07:53:41,579 fail2ban.actions        [2007]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 11:45:52,565 fail2ban.actions        [1998]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 12:35:52,304 fail2ban.actions        [1692]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 12:41:13,454 fail2ban.actions        [1643]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 12:44:38,769 fail2ban.actions        [1646]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 12:52:02,941 fail2ban.actions        [1540]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-06 15:14:20,009 fail2ban.actions        [1631]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-07 16:58:16,138 fail2ban.actions        [1686]: NOTICE  [apache-noscript] Ban 59.111.58.159
2019-02-08 08:31:42,714 fail2ban.actions        [1786]: NOTICE  [apache-noscript] Ban 59.111.58.159
Ich hätte aber gerne nur jede IP 1 mal und zwar die Älteste

k2
Beiträge: 132
Registriert: 14.08.2002 22:29:28
Lizenz eigener Beiträge: MIT Lizenz

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von k2 » 08.02.2019 12:58:20

Hast Du noch ein Beispiel für "iptables -L | grep REJECT" parat?

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 14:10:47

Hab es hin bekommen.

Code: Alles auswählen

#!/bin/bash
# 08.02.2019 by RM-Netzwerke.de
clear
dest=/var/www/html/f2b
file1=$dest/outfile
file2=$dest/ipliste
file3=$dest/bann.txt
file4=$dest/liste.txt
file5=$dest/index.html
eigene=$(curl -s ip.dnshome.de)

# Aktuelle Bans in Datei schreiben
iptables -L |grep REJECT > $file1
banns=$(wc -l $file1|awk '{print $1}')
# HTML Datei vorbereiten
echo "<META HTTP-EQUIV="refresh" CONTENT="15">" >$file5
echo "<h4> Bannliste vom:" `date +%d.%m.%Y_%H:%M` "+ Eigene IP:" $eigene "+ Banned IPs:" $banns "</h4>" >>$file5
echo "Bannstart____Uhrzeit______IP___________Script <br>" >>$file5
# nur ip aus bann in file schreiben
cat $file1 |awk '{print $4 }' >$file2
# ips in den logs suchen
while read line; do cat /var/log/fail2ban.log*|grep $line|grep Ban|sort -r |tail -1 >>$file3; done < $file2
# Ausgabe formatieren
cat $file3 |awk '{print $1, "-", $2, "-", $8, "-", $6 }'|sort >$file4
# html zeilenumbruch einbauen
while read line2; do echo $line2 "<br>" >>$file5; done <$file4
# bereinigen
rm $file3; rm $file2; rm $file1; rm $file4
So, habe das noch mit Tabelle versehen.
Falls Interesse besteht, poste ich das neue Script hier...

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von bluestar » 08.02.2019 18:45:59

Wie wäre es mit:

Code: Alles auswählen

sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 'select jail,ip,timeofban from bans;'

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 19:53:06

Nein danke.
Mein Ergebniss sieht in Tabelle richtig gutaus....
Sortiert nach Alter...

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von bluestar » 08.02.2019 20:04:54

Meine Frage bezog sich darauf, warum du nicht einfach dir SQLite3 Datenbank von Fail2Ban abfragst, dort stehen alle Infos drin und du kannst sie bequem per SQL abfragen.

Benutzeravatar
Huck Fin
Beiträge: 1202
Registriert: 10.03.2008 17:10:30

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von Huck Fin » 08.02.2019 20:07:28

Um's abfragen ging es nicht.
Eher um die Auswertung.
Startdatum des Bans + ip
nach Alter sortiert
Anzahl bans
und das als html-datei

Bild

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"

Beitrag von bluestar » 08.02.2019 20:35:50

Die gleichen Ergebnisse bekommst du mit einem einzeiligen SQL-Statement.

ORDER BY timeofban DESC

Dann formartierst du den UNIX-Timestamp (timeofban) noch schön als menschenlesbares Datum

Antworten