Лични: August 2005 Archives
От утре съм в отпуск. Търсете ме в Созопол и/или Карнобат, ще ги редувам. Към 7-ми септември пак на линия.
Реших да пробвам graylisting. Пуснах го, но се чудя - какъв е разумния период (най-добър баланс между защита и функционалност) за който да се graylist-ва изпращача? Някой с опит?
SPF е съкращение от Sender Policy Framework. Идеята е да се създаде механизъм, с който да се проверява дали пощата идваща от даден домейн е наистина е валидна за този домейн или е фалшифицирана. Пример - получаваме поща от tralala@yahoo.com с досаден SPAM а в тялото на писмото се вижда, че то е тръгнало от сървър 183abc.dsl.abv.co.jp с IP адрес(1.2.3.4). Това очевидно не е писмо от яху.
Как работи SPF:
За всеки домейн, за който искаме да декларираме от кои IP адреси излиза неговата поща създаваме DNS запис според съответнят документ (повечето имплементации са по по-старата версия на документа), в който указваме кои са сървърите и каква ни е политиката. По този начин все още не се предпазваме по какъвто и да е начин от СПАМ, а позволяваме на тези, които са имплементирали SPF проверка на входящата си поща да проверяват дали писмата които претендират да излизат от нашия домейн наистина са излезли от него или са фалшифицирани.
Най лесния начин за създаване на DNS записа е използването на този магьосник.
Защитата
За да ползваме SPF за филтриране на входящата поща е необходимо софтуера обслужващ пощата ни да поддържа SPF. Подобна поддръжка съществува за повечето MTA софтуер - sendmail, postfix, ... под една или друга форма. Конкретно при нас използвам sendmail+spfmilter. spfmilter е написан на C milter (mail filter) ползващ libspf2. За да се подкара тази комбинация е нужно да разполагате със изходния код на libspf2, spfmilter и sendmail. Ако sendmail е инсталиран от пакет, а не от изходния код просто инсталирайте и пакета sendmail-devel. Отбелязвам, че spfmilter към момента не поддържа последните версии на libspf2 (на сайта пише коя е последната поддържана) и поради това се знае, че се получава memory leak от около 10 МБ/седмица. Този проблем го решавам, като веднъж в денонощието рестартирам spfmilter. ползването на milter-a е като на всеки друг milter - стартира се като процес със съответните параметри (най-вече къде да си пише сокет-а) а на sendmail му се казва - ползвай този milter:
Стартираме spfmilter така(в друга конфигурация потребителя и пътя може да са други):
/usr/local/sbin/spfmilter -u sendmail unix:/var/run/spfmilter.sock
и добавяме следния ред в sendmail.mc:
INPUT_MAIL_FILTER(`spfmilter',`S=unix:/var/run/spfmilter.sock, T=S:4m;R:4m')
след това генерираме конфигурационния файл на sendmail:
cd /etc/mail
m4 sendmail.mc > sendmail.cf
и рестартираме sendmail.
Ако всичко е наред в логовете ще започнат да се появяват такива редове:
Aug 15 11:47:40 abv sendmail[2538]: j7F8lZjc002538: Milter add: header: Received-SPF: pass (abv: domain of hotmail.com designates 64.4.18.52 as permitted sender) receiver=abv; client-ip=64.4.18.52; helo=hotmail.com; envelope-from=xyz@hotmail.com; x-software=spfmilter 0.93 http://www.acme.com/software/spfmilter/;
Това е пример за адрес, който е валиден за домейн-а и резултата е Received-SPF: pass
spfmilter таг-ва пощата с резултата от проверката, който освен pass може да е none, softfail, hardfail. none означава, че домейна който се проверява не публикува SPF запис. За съжаление болшинството са такива. softfail означава, че изпращача най-вероятно е фалшив, но собственика на проверявания домейн е декларирал soft политика. Тоест - обявил е валидни изпращачи, но е казал "може да има и други". hardfail е ясно - фалшиф, да си ходи.
След като Весо ми обяснява преди време, че MD5 все още е сигурна функция, при чичко Шнаер намерих това. 8 часа на 1.6Гхц си е направо разбито. И е във възможностите на всеки в наши дни. MD5 е история.
Успях да подкарам Sender Policy Framework в пълен блясък - akit.biz си има SPF запис, а входящата поща бива тествана за произход :) Чудя се дали да напиша мини HOWTO.
Не знам кои са Кода, обаче на сайта им пише така:
"Не се притесняваме да признаем, че сме изключително компетентни ИТ специалисти, защото сме го доказали..."
А това ми го пише в лога на пощенския сървър от няколко дни:
Аug 9 13:06:40 nemesis sendmail[26467]: j75DEndt028887: to=<sofia@koda1.bg>, delay=3+20:51:51, xdelay=00:01:00, mailer=esmtp, pri=33780734, relay=mx2.koda1.bg. [195.24.43.162], dsn=4.0.0, stat=Deferred: Connection timed out with mx2.koda1.bg.
Хората имат 2 mx записа:
10 mx2.koda1.bg.
5 mail.koda1.bg.
telnet mail.koda1.bg. 25
Trying 212.95.166.139...
telnet: connect to address 212.95.166.139: Connection refused
telnet mx2.koda1.bg. 25
Trying 195.24.43.162...
И тука сме във вечноста...
Хора, по-полека го давайте със себеуважението, те това му се вика "на гол гъз - чифте пищови" :))
Колкото повече годинки минават, толкова по-трудно понасям жегата. Тези дни съм като парцал - в 8 вече ми е горещо, през деня ми е замаяно и съм напълно неизползваем... Вчера след работа студена бира в парка, сладолед и диня (постояла във фризера) и чак тогава се освестих. Искам на хладно. Мисля, че разбирам Детритъс (трол от Стражата, някой сеща ли се?), който при студ и мраз става забележително интелигентен. Поради ефекта на свръх-проводимост. Аз не ставам по-умен при студ, но определено изтъпявам от топлина.