Scriptimiz iki dosya üzerinden calisacaktir..
root dizinindeyken
pico banla.pl -w
yazip icine asağidaki perl scriptimizi kayit ediyoruz.
chmod 755 banla.pl yazarak chmod yetkisi veriyoruz.
Kod:
#!/usr/bin/perl
# RainmaN (Selahattin ERDEM) tarafindan 18.07.2006 tarihinde yazilmiþtir
#
$uptime = `uptime`;
$uptime =~ /: (.*?.)…,/;
$: = $1;
# Kac saniyede bir denetlemesini istiyorsaniz
$delay = 5
# Uptime maximun seviyeye geldiginde servislerin tekrar caliþtirilmasi
$restartsaniye = 50
# Banlanmasini istemediginiz ipi yazmalisiniz
$noban = 127.0.0.1
sub kapat {
system(”service mysql stop”);
system(”service httpd stop”);
sleep($restartsaniye);
system(”service httpd start”);
system(”service mysql start”);
system(”/root/banla”);
return;
}
if (fork) { exit(0); }
$SIG{ALRM} = ‘IGNORE’;
while (1) {
sleep $delay;
if($: > 15) {
system(”netstat -n –tcp –udp –numeric-hosts | grep -v 10.0.0.1 | grep -v 127.0.0.1 | awk ‘{if (/(tcp|udp)/) { print $5 }}’ | sed ’s/:.*//’ | sort | uniq -c | awk ‘{ if ($1 > 50) { if ($2 != “$noban”) { system(”iptables -I INPUT -s “$2″ -j DROP “) } } }’”);
open(FILE, ‘+\n”;
print FILE “Makinnin durumu kiritik gereken önlemler aliniyor\n”;
print FILE “Ipler banlandi.\n”;
close(FILE);
print “Uptime altiyi gecmiþ banla komutu devreye girdi.”;
}
elsif ($: > 50) {
&kapat();
system(”netstat -n –tcp –udp –numeric-hosts | grep -v 10.0.0.1 | grep -v 127.0.0.1 | awk ‘{if (/(tcp|udp)/) { print $5 }}’ | sed ’s/:.*//’ | sort | uniq -c | awk ‘{ if ($1 > 50) { if ($2 != “$noban”) { system(”iptables -I INPUT -s “$2″ -j DROP “) } } }’”);
open(FILE, ‘+\n”;
print FILE “Durum $:
\n”;
print FILE “Mysql Acik
\n”;
print FILE “Httpd Acik
\n”;
print FILE “Makina durumu gayet güzel\n”;
close(FILE);
print “Uptime onu gecmiþ kapat ve banla modulleri caliþtirildi.”;
} else {
echo “gec”;
open(FILE, ‘+\n”;
print FILE “Durum $:
\n”;
print FILE “Mysql Acik
\n”;
print FILE “Httpd Acik
\n”;
print FILE “Makina durumu gayet güzel\n”;
close(FILE);
}
}
root dizinindeyken
pico banla.sh -w
yazip icine asağidaki bash scripti kaydediyoruz.
chmod 755 banla.sh yetki veriyoruz.
Kod:
#!/bin/sh
# by RainmaN
netstat -n –tcp –udp –numeric-hosts | grep -v 10.0.0.1 | grep -v 127.0.0.1 | awk ‘{if (/(tcp|udp)/) { print $5 }}’ | sed ’s/:.*//’ | sort | uniq -c | awk ‘{ if ($1 > 50) { system(”iptables -I INPUT -s “$2″ -j DROP “) } }’simdi ./banla.pl yaziyoruz scriptimiz arka planda calisacaktir. “Saldiri yok” diye ekranda devamli görüntüler alabilirsiniz. Bu yüzden ssh’i kapatip tekrar acin.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Post Navigation