zed.0xff.me
спамеры научились подбирать SASL пароли
Что-то стал почтовик туго работать..
Смотрю – loadavg около 3.8 .. что-то тут неладно..
Смотрю tail -f /var/log/maillog – там жуть полнейшая.. всё скачет и мелькает сотнями строк в секунду..
Причем чаще всего строчки вида:
host mailin-03.mx.aol.com[205.188.109.56] refused to talk to me: 554 IP:y.y.y.y – A problem occurred. (Ask your postmaster for help or to contact tosa@rx.t-online.de to clarify.)
или такие:
host c.mx.mail.yahoo.com[209.191.88.254] refused to talk to me: 421 4.7.1 [TS03] All messages from y.y.y.y will be permanently deferred; Retrying will NOT succeed. See http://postmaster.yahoo.com/421-ts03.html
или такие:
status=bounced (host mxs.mail.ru[94.100.176.20] said: 550 spam message discarded. Please visit http://mail.ru/notspam/ or report details to abuse@corp.mail.ru. Error code: 0F9B7FC84BF25CB6A821A57C9B6112E28F9CA260D04BD65B (in reply to end of DATA command))
в /var/spool/postfix – 180тыс сообщений.. O_o
В итоге оказалось что спамеры подобрали пароль на акк вида test:test (явно кто-то из админов заводил для теста..) и вовсю спамили с него везде куда их черная душа пожелала..
В сухом остатке:
- сменил пароль юзера на непотребство вида “gbplf[eq” :)
- жестко забанил спамеров:
1 2 3 4 |
ipfw table 10 add 82.127.122.36 ipfw table 10 add 203.161.99.96 ipfw table 10 add 165.228.2.249 ipfw add deny ip from "table(10)" to me |
- ограничил количество одновременных SMTP-коннектов 5-ю штуками:
1 |
ipfw add allow ip from any to me 25 setup limit src-addr 5 |
- запустил чистилку на /var/spool/postfix:
1 2 |
cd /var/spool/postfix grep -rlF "sender: test" . | xargs -L 100 rm |
работает небыстро, зато надежно :) уже вычистила около 30K сообщений.
ключик “-L 100” нужен для того чтобы rm вызывался не в самом-самом конце поиска, а на каждые N найденных файлов.
защищаем блог от спама: honeypot
(warning! статья не содержит чего-то принципиально нового или доселе неизвестного)
Не люблю всякие капчи.. иногда, конечно, это неизбежное зло, и без них не обойтись..
Но в некоторых случаях – можно.
В частности – если надо защитить от спама комментарии в каком-нибудь маленьком бложике, типа моего :)
И тут на помощь нам приходит волшебный горшочек с мёдом !! т.е. honeypot
Суть технологии в том, что мы специально “мажем мёдом” некоторое место на сайте, и все спамботы дружным строем летят на.. вобщем как раз на намазанное и летят.
Для начала разберем логику действия спамбота: Что бы я сделал, если бы был спамботом?..
Я бы бегал по сайтам, и искал бы места куда бы приткнуть что? Правильно, спамерский текст с кучей ссылок на левитру и прочую гадость. (а последнее время стало модно спамить вообще на не знаю каком языке – “qlqatttxqw, mtwpfuoykqqd и даже ddpledldefkf!”)
Но что-то я отвлекся.. Так вот, суть бота – напихать в чужие бложики кучу ссылок на важный хозяину бота контент. В частности в поля с именем comment или post[text], но не факт что в этих полях ссылки парсятся движком бложика. А особенно вкусными для бота являются поля website, url и т.п. Потому что ясно, что урл всё-таки не просто так поле, а, с достаточной вероятностью, будет оформлено ссылкой..
Ну и бот радостно бросается заполнять эти поля.. :)
А мы:
- поля эти простым человеческим юзерам не показываем (CSS в помощь)
- от особо умных ботов слега жонглируем CSS-стилями у себя в server-side
- особо-преособо умные боты пока не приходили. ждем в гости! :)
Ну и еще одна небольшая хитрость. Если бот не совсем-совсем туп, то он после поста страничку попытается GET-нуть, чтобы посмотреть отложилась там его хм.. вобщем его продукт жизнедеятельности.
Но и тут мы его радостно обманем, запомнив предварительно у себя в обработчике POST-а всё то что он хотел нагадить – запоминаем в для него созданную персональную сессию. И потом на его GET это дело в каком-нибудь укромном месте странички вываливаем. Бот видит что оставил след, и, довольный, идет дальше своей дорогой продолжать делать своё грязное дело..
А сессия с его данными через некоторое время успешно протухает, и, собственно, всё что от визита бота остается – это несколько строчек в access.log.
Подводя итог:
Человек невидимые поля не видит, и заполнять их не будет. Браузерное автозаполнение тоже особо не замечено в попытках в невидимые поля что-то записать. А боты в основном рассчитаны на количество, а не на качество. Но если уж кто-то пишет специального бота именно под ваш бложик – значит ваш бложик уже достаточно вырос, и пора применять более серьезные методы защиты..
За примером далеко ходить не надо – желающие могут заглянуть в код этой страницы, пониже, там где комментарии.