Первая статистика по заблокированным письмам

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Первая статистика по заблокированным письмам

Непрочитанное сообщение dikens3 » 2007-06-10 13:32:05

Код: Выделить всё

Пользователь не найден (root, mailer-daemon и т.п.) 297
Запрещённые символы в адресе                        4
Relay у нас запрещён, а письмо не для нашего домена 6
Отправитель не существует (подделан)                143
IP-Адрес в HELO/EHLO                                15
В HELO/EHLO нет точки (.)                           172
В HELO/EHLO находится localhost или мой_домен       175
Заблокирован по нашему списку HELO/EHLO             23
Заблокированый нами хост (wanadoo и т.п.)           12
SPF проверка отрицательна (fail)                    54
SPF проверка отрицательна (softfail)                152
Хост находится в списках рассылающих спам. (RBL) 	306
Некорректные заголовки в письме. (header_syntax) 	9
Поле от содержит E-Mail:<>                          4
Заблокированый нами E-Mail отправителя              3

Всего: 	1379
Так это я к чему? Просто делюсь своей статистикой и косвенно принципами блокировки.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-12 14:37:13

Оч интересно.. не подскажите чем вы собираете статистику.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-12 18:17:34

Exim складывает в mysql. Потом на PHP смотрю.

На данный момент 2521 заблокировано и 756 принято.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-12 18:22:53

Хотел бы прикрутить такое себе на postfix для борьбы со спамом и т.д. Не могли бы вы привести пример скрипта и как его настроить.(Если конечно не тяжело).

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-12 18:26:28

kunaksergey писал(а):Хотел бы прикрутить такое себе на postfix для борьбы со спамом и т.д. Не могли бы вы привести пример скрипта и как его настроить.(Если конечно не тяжело).
Завтра на работу приду, скину что есть по postfix.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-12 18:27:47

буду ждать.Спасиб.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-13 11:16:24

statdbl.sh

Код: Выделить всё

#!/usr/local/bin/bash

cd /root/scripts/postfix/statdbl

outfile="mystatdbl"
cat /dev/null > $outfile

logfile="/var/log/postfix.log"
#logfile="/mnt/inbound/postfix/postfix.log"

filters=" ix.dnsbl.manitu.net relays.ordb.org list.dsbl.org dnsbl.njabl.org dynablock.njabl.org combined.njabl.org sbl-xbl.spamhaus.org cbl.abuseat.org dnsbl.ahbl.org bl.spamcop.net block.rhs.mailpolice.com "
filters_sender=" blackhole.securitysage.com spf.pobox.com "

echo "------ Postfix filters ------" >> $outfile

for dbl in ${filters}
do
#echo $dbl
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "$dbl" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile
done

for dbl in ${filters_sender}
do
#echo $dbl
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "$dbl" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile
done

echo >> $outfile
echo "--------- My filters ---------" >> $outfile

# Наши несуществующие E-Mail'ы
dbl="Is not present such a"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/8 | bc)
echo -n "bad_dest_emails" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile

# С каких E-Mail'ов из внешнего мира мы не принимаем почту
dbl="You are blocked"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "bad_emails" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile

# Блокировка helo
dbl="You not"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/3 | bc)
echo -n "helo_access" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile

# Заблокированные мной лично
dbl="sent me spam"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "sender_bad" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile

echo >> $outfile
echo "------------------------------" >> $outfile

all=$(cat $outfile | awk '{s+=$3} END {print s}')
echo "Total: $all" >> $outfile

echo >> $outfile
echo "---- Total accepted mail ----" >> $outfile

# Всего принятых писем
dbl="delivered to maildir"
kol=$(cat $logfile | grep "$dbl" | wc -l | awk '{print $1}')
mylen=$(echo "${#dbl}"/6 | bc)
echo -n "Total accepted mail" >> $outfile
while [ $mylen -lt 7 ]
do
echo -n "       " >> $outfile
let mylen=mylen+1
done
echo "--        $kol" >> $outfile
Статистика получалась примерно такая:

Код: Выделить всё

------ Postfix filters ------
ix.dnsbl.manitu.net                             --      158
relays.ordb.org                                 --      0
list.dsbl.org                                   --      590
dnsbl.njabl.org                                 --      37
dynablock.njabl.org                             --      653
combined.njabl.org                              --      0
sbl-xbl.spamhaus.org                            --      717
cbl.abuseat.org                                 --      5
dnsbl.ahbl.org                                  --      19
bl.spamcop.net                                  --      15
block.rhs.mailpolice.com                        --      0
rhsbl.ahbl.org                                  --      0
dsn.rfc-ignorant.org                            --      0
blackhole.securitysage.com                      --      0
spf.pobox.com                                   --      0

--------- My filters ---------
bad_dest_emails                                 --      2
bad_emails                                      --      0
helo_access                                     --      104
sender_bad                                      --      0

------------------------------
Total: 2300

---- Total accepted mail ----
Total accepted mail                             --      169
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-13 11:19:10

Статистика по входящему траффику, принятой и непринятой почте на определённый E-Mail:
В папке где лежит это файл нужно создать директорию tmp и в ней будут 3 файла

testone.sh

Код: Выделить всё

#!/usr/local/bin/bash

emails=" user@domain "
logfile="/var/log/postfix.log"

# Создаём цикл для почтовыйх ящиков в списке emails
for myemail in ${emails}
do
# Непринятая почта
cat $logfile | grep "$myemail" | grep "NOQUEUE" | awk '{ for (i=NF;i>0;--i) {{a=$i} if ( a~"from=" ) {print $1,$2,$3,a}}}' > ./tmp/noqueue.$myemail

# Кто присылал почту
cat /dev/null > ./tmp/who-is-send.$myemail
id=$(cat $logfile | grep "$myemail" | grep "postfix/virtual" | awk '{print $6}' | cut -d\: -f1)

for myid in ${id}
    do
    cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g >> ./tmp/who-is-send.$myemail
    done

# Кому посылали почту
cat /dev/null > ./tmp/$myemail.send-to
id=$(cat $logfile | grep "$myemail" | grep "postfix/qmgr" | awk '{print $6}' | cut -d\: -f1)
for myid in ${id}
    do
    kol=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $1,$2,$3,$7,$8}' | sed s/","/""/g | sed s/"size="/""/g | wc -l | awk '{print $1}')
    if [ $kol != 0 ]
        then
    firstlog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $1,$2,$3,$7}' | sed s/","/""/g)
    traflog=$(cat $logfile | grep "$myid" | grep "from" | awk '{print $8}' | sed s/","/""/g | sed s/"size="/""/g)
    secondlog=$(cat $logfile | grep "$myid" | grep "relay" | grep -v "127.0.0.1" | awk '{print $7}' | sed s/","/""/g)
    echo "$firstlog $secondlog $traflog" >> ./tmp/$myemail.send-to
    fi
    done
    traf=$(cat ./tmp/who-is-send.$myemail | awk '{s+=$5} END {print s}')
    echo "$myemail (Входящий траффик) -- $traf Байт"
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-13 19:01:16

спасиб..будут пробовать..
кстати в скриптах логи берутся с postfix.log; maillog он обработает?

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-13 21:40:15

kunaksergey писал(а):спасиб..будут пробовать..
кстати в скриптах логи берутся с postfix.log; maillog он обработает?
Я сделал логи в syslog.conf для постфикс, чтобы в отдельный файл ложил. Удобно.

Должен отработать.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-14 19:18:01

Не у меня млин неправильно обрабатывает.. вот статистика:
------ Postfix filters ------
ix.dnsbl.manitu.net -- 0
relays.ordb.org -- 0
list.dsbl.org -- 0
dnsbl.njabl.org -- 0
dynablock.njabl.org -- 0
combined.njabl.org -- 0
sbl-xbl.spamhaus.org -- 0
cbl.abuseat.org -- 1
dnsbl.ahbl.org -- 0
bl.spamcop.net -- 0
block.rhs.mailpolice.com -- 0
blackhole.securitysage.com -- 0
spf.pobox.com -- 0

--------- My filters ---------
bad_dest_emails -- 0
bad_emails-- 0
helo_access-- 0
sender_bad -- 0

------------------------------
Total: 1

---- Total accepted mail ----
Total accepted mail -- 129

а по файлам старым типа maillog.1.bz - ваще по нулям.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-14 19:36:46

Ну показывай вывод:

Код: Выделить всё

cat $logfile | grep "$dbl" | wc -l | awk '{print $1}'
в $dbl твой блэк лист напиши.
Попробуй понять что мои запросы делают. :-)
К примеру проверки HELO можешь убрать.

Код: Выделить всё

dbl="You not" 
У меня блокировка по HELO пишет в логи You not ... Я по ней и ориентировался.

Опиши задачу пока просто, к примеру нужен отчёт по определённому NOQUEUE(непринятым) от какого-нибудь блок листа.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-14 19:55:55

Ну вобщем "0"
Да думаю скрипт сделать или найти что бы- писем пересланных-стока-то. отложеных столько-то, удачно забранных-столько то. ну и т.д

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-14 20:04:42

Кстати в твоей первой статистике у тебя выпало 4 письма кудато.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 7:44:30

kunaksergey писал(а):Кстати в твоей первой статистике у тебя выпало 4 письма кудато.
Я уже на Exim и мне это не актуально.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 7:45:21

kunaksergey писал(а):Ну вобщем "0"
Да думаю скрипт сделать или найти что бы- писем пересланных-стока-то. отложеных столько-то, удачно забранных-столько то. ну и т.д
Ну тогда научись понимать логи. И выдирай из логов нужную инфу, как это делал я.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35026
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-15 10:11:17

поделись кстати, впечатлениями - плюсы/минусы/трудности...
как переходил - скакого конфига - на какой и т.п...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 10:58:17

lissyara писал(а):поделись кстати, впечатлениями - плюсы/минусы/трудности...
как переходил - скакого конфига - на какой и т.п...
Обосновался у тебя на сайте, никому помочь с exim не могу (postfix в работе стоял). Надумал изучить exim.
Сначала възжал что за зверь недели 2-е. Потом начал составлять аналогичный конфиг exim+postgresql. Создал, опробовал(в тест моде так сказать. Сам посылал письма и смотрел что будет и как что работает).
Решил делать новый сервер в Jail. Но так и не смог побороть проблему с несколькими postgresql. (При запуске в Jail падал в основной системе). Начал изучать плотнее mysql и попутно проектирование баз данных.(Конфиги составлял раньше по примерам из инета)
В итоге начал делать связку exim+mysql аналогичную postfix+postgresql(которая стояла в работе)
Вобщем время шло, конфиги дописывались, доки по exim читались и т.д. Dspam с mysql связывать не стал ибо почты у меня не так много и глюк mysql я не поборол.

В итоге сейчас exim+mysql+WEB(roundcube). Вся отправка или приём только аутентифицированным через TLS, логи отправки/приёма писем exim хранятся в mysql. Перехода как такового небыло, я создавал аналогичный конфиг.(усовершенствованный возможностями exim) 8 Июня всем пользователям изменил настройки в почтовых клиентах и всё. Все рады и счастливы. Пока ни одного обращения пользователей о проблемах с почтой.

Через WEB сделал(доделываю еще) админискую статистику, а так же для каждого пользователя(чтобы они мне не говорили что им что-то не пришло, т.к. есть логи и пусть сами смотрят)

P.S. Статистика приведённая выше отборажается у меня через www, я её просто скопировал. :-)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35026
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-15 11:02:26

8 Июня всем пользователям изменил настройки в почтовых клиентах и всё.
это зачем? прозрчно не получилось?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 11:03:55

это зачем? прозрчно не получилось?
IP-Адрес почтового сервера изменился. А старый мне пока ещё нужен. Там ещё много для чего он используется. Пользователей у меня не много, так что заняло пару часов.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-15 11:12:22

>dikens3
Замечательно.. по ходу возникло куча вопросов Ж)-но уже немного не по скриптам- а к твоей проведенной работе. Конекретно меня интересует часть конфига postfix+postgresql
в которой разрешается работа только по TLS. У мну стоит такая связка, стоит TLS, но сделать чтобы было возможно отправлять только через него не получалось. Если не сложно приведи часть конфига main.cf относительно данного вопроса. А насчет понимания maillog- то опыта пока у мну не много, а инфу приходится собирать по крупицам. Вот щас пытаюсь вкурить.. что же значит "Envelope-to" в письме, а то там стоит адрес моего лок. пользователя, а отправитель и получатель вообще левые.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Непрочитанное сообщение dikens3 » 2007-06-15 11:15:53

Код: Выделить всё

smtpd_recipient_restrictions =
            reject_unknown_recipient_domain,
            permit_sasl_authenticated,
            reject_unauth_pipelining,
            reject_unauth_destination,
            reject_non_fqdn_recipient,
            reject_unlisted_recipient,
            reject_non_fqdn_hostname,
            reject_invalid_hostname,
            reject_multi_recipient_bounce,
            check_policy_service unix:private/policy
            check_policy_service inet:127.0.0.1:10023
Envelope-to - это скрытые копии(рассылки короче)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

kunaksergey
рядовой
Сообщения: 28
Зарегистрирован: 2007-06-18 8:39:15

Непрочитанное сообщение kunaksergey » 2007-06-15 11:46:53

Вот часть моего конфига:


smtpd_recipient_restrictions =reject_unauth_pipelining,permit_sasl_authenticated,permit_mynetworks,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unlisted_recipient,check_recipient_access regexp:/etc/postfix/recipient_access,reject_unauth_destination,reject_non_fqdn_hostname,reject_invalid_hostname,reject_multi_recipient_bounce,permit


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

ps.lissyara удали плыз. мое прев. сообщение от имени(гость.)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35026
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-06-15 11:48:35

не удалю.
ты же автоответчик не можешь отключить :)
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Непрочитанное сообщение Гость » 2007-06-15 11:54:53

>lissyara - ну е-мое. изменил почтовый ящик. "Ваш профиль не активный, активируйте через письмо ушедшее на е-mail" А ящика такого не существует. Ааа... Можно вернуть его обратно.. Я отключу оповещение о новых сообщениях- если это возможно.