Perl скрипт, который считывает файл лога symantec endpoint protection и заносит в IPSET IPTABLES

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"