Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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
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
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Wie sieht denn dein bisheriger Ansatz aus, beziehungsweise, an welcher Stelle kommst du nicht weiter?
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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
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.
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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
Da könnten ein paar Beispielzeilen aus "iptables -L | grep REJECT" und fail2ban.log helfen; hat ja nicht jeder herumliegen...
Grüße
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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
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
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Hast Du noch ein Beispiel für "iptables -L | grep REJECT" parat?
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Hab es hin bekommen.
So, habe das noch mit Tabelle versehen.
Falls Interesse besteht, poste ich das neue Script hier...
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
Falls Interesse besteht, poste ich das neue Script hier...
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Wie wäre es mit:
Code: Alles auswählen
sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 'select jail,ip,timeofban from bans;'
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Nein danke.
Mein Ergebniss sieht in Tabelle richtig gutaus....
Sortiert nach Alter...
Mein Ergebniss sieht in Tabelle richtig gutaus....
Sortiert nach Alter...
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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.
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
Um's abfragen ging es nicht.
Eher um die Auswertung.
Startdatum des Bans + ip
nach Alter sortiert
Anzahl bans
und das als html-datei
Eher um die Auswertung.
Startdatum des Bans + ip
nach Alter sortiert
Anzahl bans
und das als html-datei
Re: Script - "ip x.x.x.x banned seit dd.mm.yyyy"
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
ORDER BY timeofban DESC
Dann formartierst du den UNIX-Timestamp (timeofban) noch schön als menschenlesbares Datum