The OpenNET Project / Index page

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

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

"опять о спаме. Методы блокировки..."  
Сообщение от konst email(ok) on 31-Май-08, 05:38 
Приветствую...
Общий момент: я получатель всей рутовой почты.

Последнее время кол-во спама начало раздражать... Ранее сделал самописные правила для spamassassin (autolearn у меня не используется)- кол-во спама упало до приемлемых размеров (1-2 письма в сутки). Я был счастлив. Но последние недели/месяцы ситуация изменилась в худшую сторону. По этому поводу написал скриптик, анализирующий maillog - выявил все сети класса B и C, рассылающие спам (бразильцы, азиаты, африканцы). Мой скриптик кидает эти "нехорошие" ip с соответствующей маской (/16, /24) в файлик, который я решил скармливать iptables'ам.
Принцип такой:
анализирую maillog. Выбираю все ip, откуда приходит ОДНОЗНАЧНЫЙ спам (т.е. score просто ужасающий, в моем случае > 9)
Если из сети класса B пришло более 5 спам-писем, смотрю на сеть класса C.
Если кол-во разных ip (класса C) для ip (класса B) > 3 - использую маску /16. Else - /24.
Эти ip/mask кидаю в файл.
----
Пояснительный пример:
из сети 10.10.0.0 пришло > 5 спам-писем.
Если количество сетей, 10.10.X. > 2 -> для сети 10.10.0.0 использую маску /16. Т.е. Игнорирую все почтовые запросы из сети 10.10.0.0/16.
Если кол-во сетей <=2, то использую маски: 10.10.X1.0/24, 10.10.X2.0/24...

Все эти ip/mask складываю в файлик. Кол-во строк получается ок. 1000... (Так мало - потому, что я для некоторых "бразильских" и т.п. сетей сразу ввожу правило с маской /8. Напр.: 189.0.0.0/8)


Потом напускаю на этот файлик iptables:
for i in `cat <file>`;do iptables -I... 10 .... -s $i --dport 25 -j REJECT;done

Вот у меня вопросы: Насколько такое решение "нормальное" - блокировать целые сети? Не загнется ли iptables при кол-ве правил > 5000?

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

 Оглавление

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


1. "опять о спаме. Методы блокировки..."  
Сообщение от sproot (ok) on 31-Май-08, 07:20 
>[оверквотинг удален]
>
>Все эти ip/mask складываю в файлик. Кол-во строк получается ок. 1000... (Так
>мало - потому, что я для некоторых "бразильских" и т.п. сетей
>сразу ввожу правило с маской /8. Напр.: 189.0.0.0/8)
>
>
>Потом напускаю на этот файлик iptables:
>for i in `cat <file>`;do iptables -I... 10 .... -s $i --dport 25 -j REJECT;done
>
>Вот у меня вопросы: Насколько такое решение "нормальное" - блокировать целые сети? Не загнется ли iptables при кол-ве правил > 5000?

Загнется, однозначно :) Тогда уж лучше юзать iptables-{save|restore} :) Сетки добавлять в bl, это скажем так, немного сурово :) Я некоторое время назад юзал для этих целей ipset и "скармливал" ему ip адреса спамеров, которые получал парсером maillog. ipset работает в kernel-space, поэтому если в нем содержатся программные ошибки, то это очень плохо может сказаться на системе в целом. Если интересно, вот мой старый пост: https://www.opennet.ru/openforum/vsluhforumID1/79530.html. Сейчас у меня стоит фильтрующий мост между почтовый сервером и его гейтом, на котором я фильтрую спамеров по ip адресам через iplist (user-space) (http://sourceforge.net/projects/iplist).

#Bridge UP
/sbin/brctl addbr br0
/sbin/brctl addif br0 eth0
/sbin/brctl addif br0 eth1
/sbin/ifconfig eth0 0.0.0.0
/sbin/ifconfig eth1 0.0.0.0
/sbin/ifconfig br0 x.x.x.248 netmask 255.255.255.240 broadcast x.x.x.255
/sbin/route add default gw x.x.x.241 dev br0


Конфигурация сервера:

uname -a
Linux s03 2.6.20.21-smp #3 SMP Wed Apr 16 16:24:27 VLAST 2008 i686 Pentium II (Deschutes) GenuineIntel GNU/Linux


cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 5
model name      : Pentium II (Deschutes)
stepping        : 2
cpu MHz         : 397.353
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr
bogomips        : 795.45
clflush size    : 32

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 5
model name      : Pentium II (Deschutes)
stepping        : 2
cpu MHz         : 397.353
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr
bogomips        : 794.75
clflush size    : 32


lspci | grep Ethernet
00:0f.0 Ethernet controller: Intel Corporation 82557/8/9 Ethernet Pro 100 (rev 05)
00:10.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)

free -m
             total       used       free     shared    buffers     cached
Mem:           883        875          8          0        121        222
-/+ buffers/cache:        530        352
Swap:         1458          5       1453

В блек листе сейчас 6.950.831 ip адресов спамеров. Бывает в сутки прибавляется по 100.000 адресов. Учитывая что количество ящиков 20.000, это не удивительно..Работает все это без сбоев, проблем не замечено.

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

6. "опять о спаме. Методы блокировки..."  
Сообщение от konst email(ok) on 01-Июн-08, 01:24 
>Загнется, однозначно :) Тогда уж лучше юзать iptables-{save|restore} :) Сетки добавлять в
>bl, это скажем так, немного сурово :) Я некоторое время назад
>юзал для этих целей ipset и "скармливал" ему ip адреса спамеров,
>которые получал парсером maillog. ipset работает в kernel-space, поэтому если в
>нем содержатся программные ошибки, то это очень плохо может сказаться на
>системе в целом. Если интересно, вот мой старый пост: https://www.opennet.ru/openforum/vsluhforumID1/79530.html. Сейчас
>у меня стоит фильтрующий мост между почтовый сервером и его гейтом,
>на котором я фильтрую спамеров по ip адресам через iplist (user-space)
>(http://sourceforge.net/projects/iplist).

У меня простой корпоративный почтовый сервачок :). До 50 юзеров. Почта - исключительно для деловых нужд. Ставить доп. шлюз - смысла не имеет, а геморроя прибавит. Блокировать "миллионы" ip - тоже нужды особой нет. Все-таки не все так плохо...
Вопросы можно переформулировать так:
1. Какое кол-во правил "выдержит" iptables (напр. 1000 он съел и не подавился)?
2. Кто-нибудь пытался блокировать именно целые сети? Где может быть засада...?
Логика блокировки сетей такова:
СОБИРАЕМ список ip рассылающих спам. Анализ:
Если некая сеть класса C (mask=/24) представлена Более чем Двумя разными ip, делается вывод, что вся эта сеть "недостойна" доверия. Делаем mask=/24.
PS. Как правило сеть класса C принадлежит 1-му провайдеру. И в его силах/интересах обеспечить отсутствие спама из его сети. Напр. мой пров не дают простым юзерам доступ к 25-му порту. И это правильно.
...
Если некая сеть класса B имеет > чем N (число можно регулировать) спамерских подсетей - то, вероятно, вся эта сеть (класса B) отдана на откуп "безответственным" товарищам. Блокируем всю сеть- mask=/16.
Это, конечно, натяжка большая. Подобного (mask=/16) можно и не делать, а блокировать только сети класса C, - но тогда резко возрастает кол-во правил для iptables...

PPS. тетушке из бразилии отвечу след. постом...


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

8. "опять о спаме. Методы блокировки..."  
Сообщение от sproot (ok) on 01-Июн-08, 06:12 
>[оверквотинг удален]
>PS. Как правило сеть класса C принадлежит 1-му провайдеру. И в его
>силах/интересах обеспечить отсутствие спама из его сети. Напр. мой пров не
>дают простым юзерам доступ к 25-му порту. И это правильно.
>...
>Если некая сеть класса B имеет > чем N (число можно регулировать) спамерских подсетей - то, вероятно, вся эта сеть (класса B) отдана на откуп "безответственным" товарищам. Блокируем всю сеть- mask=/16.
>Это, конечно, натяжка большая. Подобного (mask=/16) можно и не делать, а блокировать
>только сети класса C, - но тогда резко возрастает кол-во правил
>для iptables...
>
>PPS. тетушке из бразилии отвечу след. постом...

Все Ваши рассуждения основаны на "классовости" сети, провайдеры уже давно применяют VLSM. Блокировать целые сети это заблуждение. К примеру, есть сеть класса C: 88.225.114.0/24, эта сеть разбита на 64 подсети с префиксом /30. Если допустить, что у каждого клиента этого провайдера в этих подсетях есть свой почтовый сервер, тогда Вы принимая решение о блокировании данной сети класса С, будете блокировать 64 почтовых сервера, которые может быть ничего плохого вам и не сделали. :)

[root@sproot tmp]# iptables -L -n | wc -l
59
[root@sproot tmp]# iptables-save -c -t filter | grep -v ^COMMIT > ipt.save
[root@sproot tmp]# for idx in `seq 1000 1 30000`; do
> echo "[0:0] -A RH-Firewall-1-INPUT -s 1.1.1.1 -p tcp -m tcp --dport $idx -j DROP" >> ipt.save
> done;

[root@sproot tmp]# echo "COMMIT" >> ipt.save
[root@sproot tmp]# cat ipt.save | wc -l
29057
[root@sproot tmp]# time iptables-restore -c -n < ipt.save

real    0m0.921s
user    0m0.530s
sys     0m0.391s

[root@sproot tmp]# iptables -L -n | wc -l
29062

29062 правил за 1 секунду.

Да, для вас iptables-{save|restore} вполне подойдет, раз 50 юзеров :) Для enterprise уровня - нет. Народ не даст соврать, насколько я знаю iptables-restore не может обрабатывать больше 65536 правил

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

10. "опять о спаме. Методы блокировки..."  
Сообщение от konst email(ok) on 01-Июн-08, 14:12 
>Все Ваши рассуждения основаны на "классовости" сети, провайдеры уже давно применяют VLSM.
>Блокировать целые сети это заблуждение. К примеру, есть сеть класса C:
>88.225.114.0/24, эта сеть разбита на 64 подсети с префиксом /30. Если
>допустить, что у каждого клиента этого провайдера в этих подсетях есть
>свой почтовый сервер, тогда Вы принимая решение о блокировании данной сети
>класса С, будете блокировать 64 почтовых сервера, которые может быть ничего
>плохого вам и не сделали. :)

Вот именно это момент ключевой. Здесь я рассуждаю так:
Такие провайдеры (которые раздают диапазоны /30), раздают их, как правило, корпоративным клиентам (небольшим компаниям). Спам из этих сетей возможен лишь в том случае, если кто-то схватит определенную вирусяку и местный сисадмин вовремя не отреагирует на ситуацию. А в моем случае, запретные правила на 25 порт будут не постоянными, а время от времени (раз в неделю, например) iptables будут перегружаться, а динамически подгружаться УЖЕ НОВЫЕ запреты...
Кстати, из сетей в маской /30 спама практически не бывает. Анализ ip показывает, что спам идет из сетей с маской минимум /24...

----
ПО поводу гео-расизма...
Ну не нужна нам почта из Бразилии :)

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

11. "опять о спаме. Методы блокировки..."  
Сообщение от sproot (ok) on 01-Июн-08, 15:14 
>[оверквотинг удален]
>если кто-то схватит определенную вирусяку и местный сисадмин вовремя не отреагирует
>на ситуацию. А в моем случае, запретные правила на 25 порт
>будут не постоянными, а время от времени (раз в неделю, например)
>iptables будут перегружаться, а динамически подгружаться УЖЕ НОВЫЕ запреты...
>Кстати, из сетей в маской /30 спама практически не бывает. Анализ ip
>показывает, что спам идет из сетей с маской минимум /24...
>
>----
>ПО поводу гео-расизма...
>Ну не нужна нам почта из Бразилии :)

А как Вы узнали что из сетей с маской /30 спама практически не бывает ? :) В почтовых логах нет маски ip адреса. А в whois сервисе, объект inetnum предоставляет общую информацию о подсети принадлежащей провайдеру.

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

12. "опять о спаме. Методы блокировки..."  
Сообщение от konst email(ok) on 01-Июн-08, 17:48 
>А как Вы узнали что из сетей с маской /30 спама практически
>не бывает ? :) В почтовых логах нет маски ip адреса.
>А в whois сервисе, объект inetnum предоставляет общую информацию о подсети
>принадлежащей провайдеру.

Тут я был не прав... Действительно inetnum покажет лишь провайдерские данные...
Буду думать дальше.
PS. За последние 2 суток, с тех пор как начали работать эти правила, только 2 письма-спама до меня дошли (и то помеченные)... Это ли не счастье :)

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

13. "опять о спаме. Методы блокировки..."  
Сообщение от sproot (ok) on 02-Июн-08, 02:13 
>>А как Вы узнали что из сетей с маской /30 спама практически
>>не бывает ? :) В почтовых логах нет маски ip адреса.
>>А в whois сервисе, объект inetnum предоставляет общую информацию о подсети
>>принадлежащей провайдеру.
>
>Тут я был не прав... Действительно inetnum покажет лишь провайдерские данные...
>Буду думать дальше.
>PS. За последние 2 суток, с тех пор как начали работать эти
>правила, только 2 письма-спама до меня дошли (и то помеченные)... Это
>ли не счастье :)

Счастье было бы абсолютным, если бы еще знать что все нормальные письма дошли :)

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

14. "опять о спаме. Методы блокировки..."  
Сообщение от Medlar email(ok) on 02-Июн-08, 11:35 
>У меня простой корпоративный почтовый сервачок :). До 50 юзеров. Почта -
>исключительно для деловых нужд.

Тогда может стоит использовать sendmailacl
прописать все разрешенные (и запрещенные) адреса, и спама вы больше не увидите.

Но это. конечно, при условии , что ваши деловые нужды не требуют
засвечивания адресов в сети

хотя и для этого случая можно предусмотреть один-два-три выделенных адреса

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

15. "опять о спаме. Методы блокировки..."  
Сообщение от PavelR (??) on 02-Июн-08, 14:50 

>PS. Как правило сеть класса C принадлежит 1-му провайдеру. И в его
>силах/интересах обеспечить отсутствие спама из его сети. Напр. мой пров не
>дают простым юзерам доступ к 25-му порту. И это правильно.

Ошибочное мнение. Я например хочу пользоваться релеем почтовой службы. Сервис требует авторизации, почему же вы решаете себе позволить фильтровать 25 порт, по которому я соберусь соединяться с почтовой службой ?


Когда вы начнете мыслить не только о себе, а о других, вот тогда и сможете представлять на суд общественности мысли, которые общественность сможет широко применять. А пока - ваши решения несерьезны и однобоки.

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

2. "опять о спаме. Методы блокировки..."  
Сообщение от adews (ok) on 31-Май-08, 11:20 
А чем DNSBL не подходит? Поднимите собственную зону, заносите туда айпишники и используйте как чёрный список

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

3. "опять о спаме. Методы блокировки..."  
Сообщение от PavelR (??) on 31-Май-08, 12:36 
>А чем DNSBL не подходит? Поднимите собственную зону, заносите туда айпишники и
>используйте как чёрный список

да потому что долбятся они, долбятся, процессы занимают, траффик качают...
файрволлить надо.

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

4. "опять о спаме. Методы блокировки..."  
Сообщение от sproot (ok) on 31-Май-08, 13:01 
>>А чем DNSBL не подходит? Поднимите собственную зону, заносите туда айпишники и
>>используйте как чёрный список
>
>да потому что долбятся они, долбятся, процессы занимают, траффик качают...
>файрволлить надо.

Поддерживаю.. Единственное спасение от DDOS атак на сервисы, это фильтрация файерволом, т.к. сервис тогда не будет обрабатывать паразитный трафик. А DNSBL это еще и лишняя нагрузка на dns сервер.

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

5. "опять о спаме. Методы блокировки..."  
Сообщение от Ттушка Чарли из Бразилии on 31-Май-08, 21:13 
Если кто-нибудь скажет тебе, что знает человека, который блокирует сети всяких "бразильцев, азиатов и африканцев", то оставь всякое сомнение о том, что в мире не осталось идиотов.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "опять о спаме. Методы блокировки..."  
Сообщение от konst email(ok) on 01-Июн-08, 01:42 
>Если кто-нибудь скажет тебе, что знает человека, который блокирует сети всяких "бразильцев,
>азиатов и африканцев", то оставь всякое сомнение о том, что в
>мире не осталось идиотов.

Просьба не флудить, а если Ваше сообщение имеет смысл, то сделать его (смысл) доступным для простых смертных.
Специально для Вас потратил 3 с половиной часа и создал грандиозный скрипт, коим и делюсь с Вами:

# анализируем диапазон: 189.0.0.0 - 189.199.0.0
for z in 0 1;do for i in  0 1 2 3 4 5 6 7 8 9;do for y in 0 1 2 3 4 5 6 7 8 9;do echo -n 189.$z$i$y...;whois 189.$z$i$y.0.0 | grep "\[whois";done;done;done
# анализируем диапазон: 189.200.0.0 - 189.255.0.0
for z in 2;do for i in  0 1 2 3 4 5;do for y in 0 1 2 3 4 5 6 7 8 9;do echo -n 189.$z$i$y...;whois 189.$z$i$y.0.0 | grep "country";done;done;done

NB. эти скрипты все равно не отработают из-за "% Query rate limit exceeded."- но надеюсь сумеете разобраться сами...

Будет скучно: вместо 189. подставьте 41. Вам понравиться. Заодно идиотов в Вашем окружении поубавится.

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

9. "опять о спаме. Методы блокировки..."  
Сообщение от Чарли Brasil on 01-Июн-08, 12:38 
Не обижайся, друг. Просто не надо наказывать невиновных, и даже, если среди наказанных окажешься ты сам :)

Ну и, конечно, скрипт у тебя написан, скажем, не очень умно, зато польза от потраченных трёх часов на программирование несомненна.

Если хочешь определить какой стране принадлежит ip-адрес (это ведь была цель твоего скрипта, не так ли), то обрати внимание на geo-ip. Только меня очень расстраивает твой почтовый расизм.

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

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

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




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

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