ArpO
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
Hallo Forum,
meine Firewall logt im Format:
103.231.139.142 # lfd:(smtpauth) Failed SMTP AUTH login from 103.231.139.142(IR/Iran/-) : 5 in the last 3600 secs - Fri May 10 17:39:08 2019
103.231.139.146 # lfd:(PERMBLOCK) 103.231.139.146 (NL/Netherlands/-) hash ad more than 4 tempblocks in the last 86400 secs - Sat Apr 13 01:41:41 2019 Daraus möchte ich jetzt eine Liste im Format
103.231.139.0/24
machen. Mit cat firewall.txt | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][09]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][09]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" > ip.liste.txt
habe ich es schonmal geschaft nur die IP Adressen auszuschneiden.
123.456.789.123
1.2.3.4
5.66.77.88 Wie kann ich den letzten Block jetzt durch ein 0/24 ersetzen lassen?
Das ich dann sowas habe wie:
123.456.789.0/24
1.2.3.0/24
5.66.77.0/24
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Ich würde das mit einer PCRE (Perl Compatible Regular Expression) machen (für IPv4-Addressen habe ich habe ich hier eine passende gefunden) - da könnte man mit einem Lookahead auf das vierte Oktett der IP-Addresse nutzen und dann stattdessen 0/24 anhängen:
| grep -Po "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?=[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" firewall.txt |
sed 's#$#0/24#' > ip.liste.txt
|
PS: Dein Beispiel verschluckt die erste Eins für beim ersten Oktett, 103.231.139.142 wird dann nur als 03.231.139.142 rausgeschrieben.
|
ArpO
(Themenstarter)
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
Ja das mit der ersten 1 habe ich auch beim Testen gerade gesehen *g* grep -Eo "([0-9]{1,3}[\.]){3}[0-9]{1,3}"
scheint zu funktionieren, wenn ich die Syntax auch nicht wirklich verstehe.
[0-9]{1,3} Null bis neun soll dreimal vorkommen
[\.] Punkt als Sonderzeichen aber die Klammern?
{3}[0-9]{1,3} dann soll das erste noch 3x kommen?
Wieso werden da jetzt die Punkte nicht mit berücksichtig?
|
ArpO
(Themenstarter)
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
Hab jetzt jetzt so gelöst: {#!/bin/bash
cat firewall.txt | grep -Eo "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > ip01
for i in $(cat ip01)
do
echo $i | sed 's/\.[0-9]*$/.0\/24/' >> ip02
done
cat ip02 | uniq >> ip03
cat ip03 | sort >> ip_cidr_sperren.txt
rm ip01
rm ip02
rm ip03 Teilweise doppelt gemoppelt,man hätte uniq und sort in einem Durchgang machen können, aber beim Testen lief das Aufgrund eines Fehlers in der Schleife nicht. Ich lasse es jetzt so. Ist halt Quick'n'Dirrrrrrrty.
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8554
Wohnort: Münster
|
ArpO schrieb: […] Wie kann ich den letzten Block jetzt durch ein 0/24 ersetzen lassen?
Warum willst Du das tun? Du weißt doch gar nicht, ob dann die richtige Netzwerkangabe entsteht. Es könnte doch auch /8, /10, /17, /27 lauten – im Grunde kommt jede Zahl von 8 bis 32 in Frage. Auch 24, aber dies ist bei Deinen Beispielen eher unwahrscheinlich.
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
ArpO schrieb:
Daraus möchte ich jetzt eine Liste im Format
103.231.139.0/24
machen.
Abgesehen davon, dass die Abfrage bei mir mit fehlenden Stellen fehlerhaft war, würde ich dazu auch erstmal die Statements gravierend einkürzen, weil Du keine Sachverhalte (nummernranges) prüfen musst, die technisch eh nicht passieren können. Hier mal 2 passende Statements, die das tun, was Du brauchst:
cat mein.log | grep -E -o "[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]"
cat mein.log | grep -E -o "[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]" | awk -F '.' '{ print $1"."$2"."$3".0/24" }' Und diese Variante sorgt dafür, dass jede IP nur einmal verwurstet wird:
cat mein.log | grep -E -o "[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]\.[012]?[0-9][0-9]" | sort -bg -u | awk -F '.' '{ print $1"."$2"."$3".0/24" }'
|
ArpO
(Themenstarter)
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
kB schrieb: Warum willst Du das tun?
Firewall... wenn die IPs 1.2.3.4, 1.2.3.6, 1.2.3.8 spammen, sperre ich halt alle 1.2.3.x.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13893
|
ArpO schrieb: ..., sperre ich halt alle 1.2.3.x.
Was benutzt Du als Firewall?
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8554
Wohnort: Münster
|
ArpO schrieb: […] wenn die IPs 1.2.3.4, 1.2.3.6, 1.2.3.8 spammen, sperre ich halt alle 1.2.3.x.
Mit welcher Begründung nimmst Du in der von Dir beschriebenen Situation z.B. 1.2.3.137 in Sippenhaft? Warum nimmst Du nicht gleich alle 1.x.x.x, also z.B. 1.4.12.240 in Sippenhaft?
|
ArpO
(Themenstarter)
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
CSF
aber hier gehts mir um die IPs die ich selbst aus Spam Mails ziehe die noch durch Postgrey kommen.
|
ArpO
(Themenstarter)
Anmeldungsdatum: 25. März 2006
Beiträge: 81
|
kB schrieb: ArpO schrieb: […] wenn die IPs 1.2.3.4, 1.2.3.6, 1.2.3.8 spammen, sperre ich halt alle 1.2.3.x.
Mit welcher Begründung nimmst Du in der von Dir beschriebenen Situation z.B. 1.2.3.137 in Sippenhaft? Warum nimmst Du nicht gleich alle 1.x.x.x, also z.B. 1.4.12.240 in Sippenhaft?
-Ich bin auf meinem System root, ich darf das!
-Mit welcher Begründung gibts Du Deinen Senf dazu?
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8554
Wohnort: Münster
|
ArpO schrieb: […] Mit welcher Begründung gibts Du Deinen Senf dazu?
Ich zeige die Sinnlosigkeit und die Fehler Deines Vorhabens auf und begründe es. Aber selbstverständlich darfst Du so sinnlos handeln. Alle andern Mitlesern soll aber schon klar werden, dass das, was Du vorhast, jedenfalls nicht empfehlenswert ist.
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
kB schrieb: Ich zeige die Sinnlosigkeit und die Fehler Deines Vorhabens auf und begründe es. Aber selbstverständlich darfst Du so sinnlos handeln. Alle andern Mitlesern soll aber schon klar werden, dass das, was Du vorhast, jedenfalls nicht empfehlenswert ist.
Ich verstehe Deine Vorbehalte im Moment auch nicht so recht. Ich sehe in seinem Log-Auszug "smtp", also gehts hier vermutlich um einen Mailserver. Nur mal angenommen, er hat für sich und seine Familie einen Port zum Internet für den Zugang zum rein privaten Mailserver geöffnet, warum sollte er irgendwelche fremden Kontakte annehmen...?... und dann noch aus China, Russland, Indien, USA, usw. (... das sind die, die regelmäßig bei mir anklopfen) Ich würde das genau so tun, also alles was aus dem Ausland kommt sperren, wenn ich selber (und die Familie) hier in DE bin. Warum sollte ich solche Pakete überhaupt bis zum Service selber durchkommen lassen? Das schlimmste, was passieren kann, wäre, dass er sich selber aussperrt, wenn er zufällig in diesem gesperrten IP-Range Urlaub machen würde.... pech gehabt... dann ist man Opfer der eigenen Paranoia... aber solange er doch hier ist ...?... was solls also? Ich werte meine täglichen Logs immer rückwirkend über mehrere Tage aus, und wenn ich da ständig wiederholt ein /24er Netz vom A...h der Welt finde, wirds kurzerhand geblacklistet.... fertig, Thema gelöst. Was spricht dagegen? Bei mir isses auch nur ein rein privater Zugang, in dem Fremde nix zu suchen haben. Mich würde Deine Begründung dagegen schon interessieren.
|
kB
Supporter, Wikiteam
Anmeldungsdatum: 4. Oktober 2007
Beiträge: 8554
Wohnort: Münster
|
TomLu schrieb: […] Ich werte meine täglichen Logs immer rückwirkend über mehrere Tage aus, und wenn ich da ständig wiederholt ein /24er Netz vom A...h der Welt finde, wirds kurzerhand geblacklistet
In Deinen Logs findet sich kein „/24er Netz“, das ist technisch nicht möglich. In den Logs findest Du einzelne Adressen, die sich auffällig oder unerwünscht benehmen. Es spricht nichts dagegen, diese einzelnen Adressen zu sperren. Dagegen ist es falsch, willkürlich aus einer einzelnen Adresse einen IP-Bereich, sei es /24 oder /was-auch-immer, abzuleiten und diesen zu sperren. Lediglich gegen diese Willkür argumentiere ich, da sie Unbeteiligte trifft und zu Fehlfunktionen führt.
|
TomLu
Anmeldungsdatum: 23. August 2014
Beiträge: 603
|
kB schrieb: In Deinen Logs findet sich kein „/24er Netz“, das ist technisch nicht möglich.
Ja, ich weiss, das es so ist... ich hatte nur gedacht, mit etwas goodwill würde man das als Ableitung verstehen.
In den Logs findest Du einzelne Adressen, die sich auffällig oder unerwünscht benehmen.
Korrekt, bei mir aus China, Russland, Indien, USA..... und genauso korrekt ist, dass die /24'er Ableitung aus einer solchen IP allenfalls "Absender" aus exakt dem gleichen Knoten treffen würde... und da sag ich doch "na prima, volltreffer".
Es spricht nichts dagegen, diese einzelnen Adressen zu sperren. Dagegen ist es falsch,
Nun ja, belassen wir es dabei, dass das Deine Meinung ist, denn falsch ist daran gar nichts... in einem privaten Netz entscheidet allein der Admin, was falsch und richtig ist. Und nach meiner Meinung und bezogen auf meine privaten Netzwerkszugänge sind 100% der Adressen aus den genannten Ländern falsch, völlig losgelöst davon, welche Absichten die haben.... und ich gehe sogar noch einen Schritt weiter, ich blocke bei solchen IPs nach einem /16er Subnet.
|