The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Блокировка отброшенных SMTP серверо..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Блокировка отброшенных SMTP серверо..."  
Сообщение от auto_tips on 20-Дек-07, 10:48 
#!/bin/sh
#
#REJECTSPAMMERS v0.1b Lev Zabudkin. zabudkin@mail.ru
#
#Описание:
#   Данный скрипт аккумулирует (создаёт/пополняет) уникальный список IP адресов,
#   которые были отброшены SMTP сервером.
#   Скрипт создан с той целью, чтобы REJECT'ить в дальнейшем все пакеты с таких адресов.
#
#Действие:
#   После выполнения будут созданы файлы в папке указанной в SCRIPTDIR (см. ниже):
#   rejectspammers.run.iptables.block.byip.add             - Блокировать IP адреса
#   rejectspammers.run.iptables.block.byip.delete          - Убрать прежнюю блокировку IP адресов
#   rejectspammers.run.iptables.block.byip.subnet24.add    - Блокировать всю подсеть 255.255.255.0 IP адресов
#   rejectspammers.run.iptables.block.byip.subnet24.delete - Убрать прежнюю блокировку подсети 255.255.0.0
#   rejectspammers.run.iptables.block.byip.subnet16.add    - Блокировать всю подсеть 255.255.0.0 IP адресов
#   rejectspammers.run.iptables.block.byip.subnet16.delete - Убрать прежнюю блокировку подсети 255.0.0.0
#   rejectspammers.run.iptables.block.byip.subnet8.add     - Блокировать всю подсеть 255.0.0.0 IP адресов
#   rejectspammers.run.iptables.block.byip.subnet8.delete  - Убрать прежнюю блокировку подсети 255.0.0.0
#
# Соответственно для нужной блокировки запустите нужный файл.
#

#Создавать ли файлы с цепочками DELETE
MAKEDELETEOLD=yes

#Файл с логами SMTP сервера
MAILLOG=/var/log/maillog

#Каталог, в котором создавать скрипты iptables
SCRIPTDIR=/

#Временный каталог
TEMPDIR=/tmp


cat $MAILLOG | grep rejected >$TEMPDIR/rejectedspammers
awk '{user[tolower($10)]=$10} END {for(i in user) {print i}}' $TEMPDIR/rejectedspammers >$TEMPDIR/rejectedspammers.list
cat $TEMPDIR/rejectedspammers.list |cut -d '[' -f2|cut -d ']' -f1 | uniq >$TEMPDIR/rejectspammers.ips
awk --field-separator=. '{print "iptables -A INPUT -s "$1"."$2"."$3"."$4" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.byip.add
awk --field-separator=. '{print "iptables -A INPUT -s "$1"."$2"."$3".".0/24" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.add
awk --field-separator=. '{print "iptables -A INPUT -s "$1"."$2".".0/16" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.add
awk --field-separator=. '{print "iptables -A INPUT -s "$1".".0/8" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.add
cat $SCRIPTDIR/rejectspammers.run.iptables.block.byip.add | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.byip.add.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.byip.add.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.byip.add
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.add | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet24.add.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet24.add.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.add
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.add | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet16.add.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet16.add.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.add
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.add | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet8.add.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet8.add.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.add


if [ "$MAKEDELETEOLD" == "yes" ]; then
awk --field-separator=. '{print "iptables -D INPUT -s "$1"."$2"."$3"."$4" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.byip.delete
awk --field-separator=. '{print "iptables -D INPUT -s "$1"."$2"."$3".".0/24" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.delete
awk --field-separator=. '{print "iptables -D INPUT -s "$1"."$2".".0/16" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.delete
awk --field-separator=. '{print "iptables -D INPUT -s "$1".".0/8" -p tcp --dport 25 -j REJECT";}' \
   $TEMPDIR/rejectspammers.ips>>$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.delete
cat $SCRIPTDIR/rejectspammers.run.iptables.block.byip.delete | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.byip.delete.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.byip.delete.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.byip.delete
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.delete | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet24.delete.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet24.delete.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet24.delete
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.delete | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet16.delete.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet16.delete.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet16.delete
cat $SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.delete | sort | uniq \
   >$TEMPDIR/rejectspammers.run.iptables.block.bysubnet8.delete.temp
cat $TEMPDIR/rejectspammers.run.iptables.block.bysubnet8.delete.temp >$SCRIPTDIR/rejectspammers.run.iptables.block.bysubnet8.delete
fi

chmod +0755 $SCRIPTDIR/rejectspammers.run.iptables.block.*


URL:
Обсуждается: http://www.opennet.ru/tips/info/1525.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от Аноним on 20-Дек-07, 10:48 
хм... скрипт плох тем что много раз зовёт iptables, вместо того чтобы пользоваться iptables-save/iptables-restore.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от andrey (??) on 20-Дек-07, 11:43 
>хм... скрипт плох тем что много раз зовёт iptables, вместо того чтобы
>пользоваться iptables-save/iptables-restore.

согласен, еще бы приделать статистику, чтобы оставлять к примеру адреса которые засветились только определенный промежуток времени

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от Аноним on 21-Дек-07, 11:08 
а по каким критериям у вас почтовик отбрасыват эти айпи?
спамлисты?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от greg (??) on 23-Дек-07, 12:18 
Чего только люди не придумают, чтобы нормальными решениями не пользоваться...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от lizard email(??) on 23-Дек-07, 15:32 
greg, а какими решениями советуете пользоваться вы? например postfix рвет сессию по причине отсутствия DNS-записей для конкретного ip, но письма с этого ip регулярно идут, как с этим бороться сократив количество проверок?   помнится в mdaemon был механизм ip screening когда после определенного числа regect'ов ip заносился в базу на определенное время, но для постфикса я не могу найти такого решения..
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от КУКУ on 26-Дек-07, 21:05 
нормальным это каким?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от Andrey Y. Ostanovsky email on 27-Дек-07, 16:48 
Ну, хотя бы с помощью вот такой оценки активности:
http://home.nuug.no/~peter/pf/en/long-firewall.html#BRUTEFORCE
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от lizard email(??) on 28-Дек-07, 12:51 
а есть порты PF под linux? или решение только под bsd?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Блокировка отброшенных SMTP сервером IP адресов/подсетей."  
Сообщение от Евгений email(??) on 13-Дек-08, 12:59 
Зачем PF под Linux? Вот смотри...
http://kevin.vanzonneveld.net/techblog/article/block_brute_f.../
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру