Website-Icon .: blog cscholz.io :.

Überwachung von Domains auf blacklisting

Aus gegebenem Anlass habe ich ein script zur Überwachung von Domains – genauer gesagt deren IP Adressen geschrieben das prüft ob die hinterlegten Domains geblacklisted sind und das Ergebnis an eine eMail Adresse schickt. Das ganze besteht aus zwei scripten. Das erste sammelt allen notwendigen Informationen und erstellt daraus eine verwertbare Datei. Das zweite skript verschickt eben diese Datei per eMail.

Unter Umständen ist es notwendig, dass Sie ein Paket für Perl nachinstallieren

~# cpan -i MIME::Lite

script 1

#!/bin/bash
# Bereinigung um Probleme durch skript abbrüche zu umgehen
rm 127.0.0.2.html
rm check_blacklist_result.txt
rm check_blacklist_result
wget http://www.robtex.com/rbls/127.0.0.2.html
echo "<html>" >> check_blacklist_result.txt
cat 127.0.0.2.html | grep -A33 "style type" >> check_blacklist_result.txt
cat 127.0.0.2.html | grep -A6 "table border=1>" >> check_blacklist_result.txt
# dummy (127.0.0.2)
echo "====================== dummy (127.0.0.2) ====================== <br>" >> check_blacklist_result.txt
cat 127.0.0.2.html | grep -B4 -A2 BLACKLISTED >> check_blacklist_result.txt
echo "<br>" >> check_blacklist_result.txt
echo "<br>" >> check_blacklist_result.txt
# Zeilenumbrüche entfernen & Datei verschicken
cat check_blacklist_result.txt | sed 's/$/ /' | tr -d 'n' > check_blacklist_result
./check_blacklist_send.sh
# Bereinigung
rm 127.0.0.2.html
rm check_blacklist_result.txt
rm check_blacklist_result

script 2

#!/usr/bin/perl -w
#use strict;
use MIME::Lite;
#Datum ermitteln
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
$Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $CTIME_String = localtime(time);
$Monat+=1;
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
$Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
$Jahr+=1900;
# open html file
open (IN,"/root/scripts/check_blacklist_result");
@datei = <IN>;
# SendTo email id
my $email = 'user@domain.tld';
# create a new MIME Lite based email
my $msg = MIME::Lite->new
(
Subject => "[Blacklist check - $Monatstag.$Monat.$Jahr]",
From => 'root@domain.tld',
To => $email,
Type => 'text/html',
Data => @datei
);
$msg->send();
close IN;
Die mobile Version verlassen