Документация по ОС FreeBSD Пятница, 19.04.2024, 14:05
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
IPFW [58]

Главная » Статьи » FireWall » IPFW

Скрипт блокировки спамеров на www средствами ipfw table [2009]
задача: закрыть спам на сайтах.

есть черный список (black list) ip на сайте http://www.stopforumspam.com/ (есть и другие списки), список часто обновляется. В blacklist входя прокси-сервера, взломанные машины через которые боты пытаються спамить на все www сразу...

проще всего добаавить в ipfw таблицу, после блокировки максимум 1 спам сообщение за несколько суток или за неделю.

ipfw table:
add deny ip from table(1) to any

ee /root/spamstop.pl
#!/usr/bin/perl

# use Proc::Daemon;
# Proc::Daemon::Init;
# use Proc::PID::File;
# die "Already running!" if Proc::PID::File->running();
## можно раскомментировать, это для того чтобы скрпит одновременно повторно не запустился

use LWP::Simple;

my $spam = get("http://www.stopforumspam.com/downloads/bannedips.csv");
my $hash;
$hash->{$1} ++ while $spam =~ /(\d+\.\d+\.\d+\.\d+)/smg xor grep {$_>255} split /\./,$1;

system("ipfw table 4 flush > /dev/null &") if (defined $spam);

while( my $key = each %$hash){
 system("ipfw table 4 add $key > /dev/null &");
}

exit;

crontab:
8 0 * * * root /root/spamstop.pl

можно при старте системы добавить этот скрипт в /usr/local/etc/rc.d/

скрипт выполняется не быстро, 4-10 минут, грузит процессор, можно добавить больше детей...
ipfw -a list | grep table
00150 1317 65171 deny ip from table(1) to any

Категория: IPFW | Добавил: oleg (02.04.2009) | Автор: ProFTP
Просмотров: 1247 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024