Hallo, On Sun, 08 Jun 2003, Daniel Lord wrote:
irgendwie bin ich mal wieder am Ende mit meinem "Latein" und hoffe auf die Skriptgurus *hint* *hint* David :D
*g*
ich habe eine Liste von IP Adressen die etwa wie folgt aussieht <LISTE> [...]belangloser Text[...]
Beschreibung:123.123.123.0-123.123.123.255 Andere Beschreibung:222.222.0.0-222.222.255.255 nocheine:124.0.0.0-124.0.0.0 nocheine:122.1.1.0-122.1.1.127 </LISTE>
Anmerkung zur den letzten: die fallen leider auch real aus dem Rahmen.
diese IP Adressen sollen nun der Grundstock für eine dynamische ipchains Blacklist sein. D.h. ich mache ersteinmal folgende:
[..]
{ printf "/sbin/ipchains -A input -j DENY -l -p all\ -s %s/24 -d 192.168.10.10\n", $1 } '
==== #!/usr/bin/gawk -f BEGIN { FS=":"; } /[0-9]-[0-9]/ { split($2, a, "-"); # $2 in untere (a[1]) und obere (a[2]) IP teilen split(a[1], l, "\."); # IP a[1] an den '.' nach l[1] - l[4] teilen split(a[2], h, "\."); # IP a[2] an den '.' nach h[1] - h[4] teilen x = l[1] * 2^24 + l[2] * 2^16 + l[3] * 2^8 + l[4]; # numerische IP y = h[1] * 2^24 + h[2] * 2^16 + h[3] * 2^8 + h[4]; # numerische IP m = y - x; # Differenz der IPs if(m < 0) { exit(1); } # Fehler, wenn 2te IP "kleiner" war mask = 32 - (log(m+1) / log(2)); # IPv4 Netzmaske berechnen print "/sbin/ipchains -A input -j DENY -l -p all -s "a[1]"/"mask; } ==== Das AWK-script passend benennen und ausfuehrbar machen... Eingabe: ==== Beschreibung:123.123.123.0-123.123.123.255 Andere Beschreibung:222.222.0.0-222.222.255.255 nocheine:124.0.0.0-124.0.0.0 nocheine:122.1.1.0-122.1.1.127 ==== Ausgabe (ist die richtig so???): ==== /sbin/ipchains -A input -j DENY -l -p all -s 123.123.123.0/24 /sbin/ipchains -A input -j DENY -l -p all -s 222.222.0.0/16 /sbin/ipchains -A input -j DENY -l -p all -s 124.0.0.0/32 /sbin/ipchains -A input -j DENY -l -p all -s 122.1.1.0/25 ==== Noch Fragen? Allerdings gebe ich zu bedenken, dass du mit der FW den falschen Ansatz verfolgst. Generell gilt IMO: Alles dicht machen, und dann nur das oeffnen, was benoetigt wird. HTH, -dnh --
Programmieren in C++ hält die grauen Zellen am Leben. Es schaerft alle fuenf Sinne: den Schwachsinn, den Bloedsinn, den Wahnsinn, den Unsinn und den Stumpfsinn. [Felix von Leitner und Holger Veit in doc]