Linux > Perl скрипт, который считывает файл лога symantec endpoint protection и заносит в IPSET IPTABLES
06.02.2015 20:58:16
Наиболее часто встречающиеся слова в статье:
[new_mai] [symantec] [iptables] [MYFILE2] [value\n"] [/bin/bash] [blacklist] [blacklist_mai] [который] [считывает]
Статья:
Perl скрипт, который считывает файл лога symantec endpoint protection , выбирает столбец с плохими IP , берёт подготовленный файл для импорта IPSET под iptables сливает их вместе и делает уникальными IP
Формат symantec файла
639 21.01.2015 16:41:14 Предотвращение вторжений Критический Входящие TCP 66.171.238.100 54330 / 192.168.88.241 80 / SYSTEM 27343 71524 Web Attack: PHP She
Формат файла под IPSET
192.168.20.10
194.12.10.10
PERL скрипт parsing.pl
#!/usr/bin/perl
#use strict;
#читаем новый файл логов
@array;
open(MYFILE, "io.log");
while (<MYFILE>) {
chop;
@F = split ' ';
push @array, $F[8];
# print "$F[8]\n";
}
#читаем старый iptables сформированный файл IPSET
@array2;
open(MYFILE2, "mai.txt");
while ($row =<MYFILE2>) {
chomp $row;
push @array2, $row;
# print "$F[8]\n";
}
#сливаем массивы в воедино
push @array, @array2 ;
#удаление повтор¤ющихс¤ значений
%hash = map { $_ => 1} @array;
@dst = keys %hash;
#вывод
while (($key, $value) = each(@dst)) {
#print("$key = $value\n");
if ($value!="нет") {print("$value\n");}
}
Скрипт вызова perl скрипта работы с массивами
#!/bin/bash
echo -n "PODGOTOVKA blacklist to IPSET..."
./parsing.pl > new_mai.txt
cp new_mai.txt mai.txt
rm new_mai.txt
Скрипт заполнения IPSET
#!/bin/bash
echo -n "Applying blacklist to IPSET..."
ipset -F blacklist_mai
xfile=$(cat /home/iocsha/blacklist/mai.txt)
for ipaddr in $xfile
do
ipset -A blacklist_mai $ipaddr
done
echo "...Done"
Скрипт создания IPSET списка
#!/bin/bash
echo -n "Applying blacklist to IPSET..."
ipset -N blacklist_mai iphash
xfile=$(cat /home/iocsha/blacklist/mai.txt)
for ipaddr in $xfile
do
ipset -A blacklist_mai $ipaddr
done
echo "...Done"
Скрипт добавления правила в Iptables
#!/bin/bash
iptables -v -I INPUT -m set --match-set blacklist_mai src -j DROP
iptables -v -I INPUT -m set --match-set blacklist_mai src -j LOG --log-prefix
"DROP_BL_M"
iptables -v -I OUTPUT -m set --match-set blacklist_mai dst -j DROP
iptables -v -I OUTPUT -m set --match-set blacklist_mai dst -j LOG --log-prefix
"DROP_BL_M"
iptables -v -I FORWARD -m set --match-set blacklist_mai src -j DROP
iptables -v -I FORWARD -m set --match-set blacklist_mai src -j LOG --log-prefix
"DROP_BL_M"
iptables -v -I FORWARD -m set --match-set blacklist_mai dst -j DROP
iptables -v -I FORWARD -m set --match-set blacklist_mai dst -j LOG --log-prefix
"DROP_BL_M"