Почтовый сервер при работе генерирует много отладочной информации. В ней пишется обо всем, например куда ушло письмо, какой адрес получателя и т. д. Это и есть наши логи.
Так как сложно, что-то искать в километровых логах, придумали программы - анализаторы логов. Данные анализаторы наглядно показывают всю подноготную почтового сервера. Если ваш сервер начал рассылать спам или попал в черный список, вы непременно это узнаете если прочтете отчет анализатора логов.
В данной короткой записке написано как установить Isoqlog на Linux (CentOS 6.4 x64). Мы установим утилиту и кратко проанализируем лог файл почтового сервера на базе популярного MTA Exim.
А так же мы установим еще один анализатор под названием Eximstat. В отличии от Isoqlog, он выводит более детальную информацию, где можно найти все что вам нужно. Он похож на анализатор от MTA Postfix с именем Pflogsumm. Его отчеты проливают свет на узкие места вашего почтового сервера на основе Exim.
# wget http://ftp5.gwdg.de/pub/opensuse/repositories/home:/weberho:/qmailtoaster/CentOS_CentOS-6/x86_64/isoqlog-2.2.1-1.3.x86_64.rpm
# rpm -ivh isoqlog-2.2.1-1.3.x86_64.rpm --nodeps
Создаем каталог для веб страничек:
# mkdir /var/www/html/isoqlog
Указываем наши домены:
# vi /usr/local/etc/isoqlog.domains
company.kz
Настраиваем главный конфигурационный файл, указываем где хранятся логи Exim:
# vi /etc/isoqlog.conf
logtype = "exim"logstore = "/var/log/exim/main.log" # лог Exim
domainsfile = "/var/lib/qmailtools/isoqlog/isoqlog.domains" # Перечисляем наши домены
outputdir = "/var/lib/qmailtools/isoqlog/htdocs"
htmldir = "/usr/share/isoqlog/htmltemp" #html dir
langfile = "/usr/share/isoqlog/lang/english" # lang file
hostname = "mail.company.kz" #Имя хоста
maxsender = 100
maxreceiver = 100
maxtotal = 100
maxbyte = 100
# ln -s /var/lib/qmailtools/isoqlog/htdocs /var/www/html/isoqlog
Меняем каталог на - /var/www/html/isoqlog/htdocs
# vi /etc/httpd/conf.d/isoqlog.conf
# configuration to serve qmailmrtg
Alias /isoqlog /var/www/html/isoqlog/htdocs
<Directory /var/lib/qmailtools/isoqlog/htdocs>
AllowOverride All
Order allow,deny
Allow from all
AuthType Basic
AuthName Qmail_Toaster
AuthUserFile /etc/qmailtoaster-admin.htpasswd
require valid-user
</Directory>
Запускаем анализатор:
# /usr/bin/isoqlog -f /etc/isoqlog.conf
Теперь можно зайти через браузер:
http://ip вашего сервера/isoqlog
Скрины:
В отчетах можно увидеть, сколько писем было отправлено, сколько принято. Топ 17 самых активных пользователей по отправке/приему. Топ самых активных доменов.
Только вот полную картину он не дает, если спамер отправляет с вашего сервера письма с поддельными заголовками, Isoqlog их не сможет показать. Поэтому советую вам использовать EximStat, вот этот инструмент поможет более детально проанализировать лог файл.
Установка альтернативного анализатора логов eximstat:
# wget http://ftp5.gwdg.de/pub/opensuse/repositories/server:/mail/CentOS_6/i686/eximstats-html-4.80.1-40.1.i686.rpm
# yum install eximstats-html-4.80.1-40.1.i686.rpm
У EximStat есть полезные опции, посмотрите его help - /usr/sbin/eximstat --help
Откроем файл с отчетом и смотрим:
# mcedit /home/eximstat.log
Вот скрины:
На первом скрине мы видим две даты, период который был проанализирован и за который собственно выведен отчет. У нас это 6 дней, с 10 по 16 число.
Здесь мы видим сколько писем получено, сколько отправлено, сколько отклонено и сколько писем временно не принято.
Какие транспорты были задействованы, и сколько каждый транспорт отработал писем.
Здесь видно что наш почтовый сервер начал рассылать спам!
От localhost ушло 77296 писем с общим размером 425 Mb и это всего за 6 дней!
В отчете топ самых 50 хостов по количеству отправленных писем стоит "local", это значить что спамер взял в обороты ваш сервер.
Надо срочно предпринимать меры.
Здесь мы уже видим отчет в котором указываются топ самых 50 компьютеров которые отправили письма по количеству трафика, данный отчет подтверждает что ваш почтовый сервер стал не здоровым.
Ох уж эти спамеры..., и кривые руки админа :D
Вот еще один интересный раздел отчета, здесь написано под каким юзером были отправлены письма, видим юзера локалхост сервера Exim.
Плюс тут показано на какие почтовые сервера слались письма с вашего сервера по количеству писем. Наш сервер без нашего ведома атаковал почтовики с адресами - @ors.com.tr, @hotmail.com, @gmail.com, @charter.net и т.д. Эх, вот так вот бывает когда админ почтового сервера забрасывает его, думая что один раз настроенный почтовик будет жить вечно.
В нашем примере на почтовом сервере взломали учетную запись "admin@company.kz". Взлом осуществлен путем перебора паролей.
Так как спамер рассылает много писем, что аж, почтовик не успевает их отправить, они остаются в очереди и ждут своего момента. Да и если спамеру не закрыть доступ, IP адрес почтового сервера попадет в черные списки, и в очереди будут торчать письма с отлупом вида - "Мы не можем принять письма с вашего сервера, так как он рассылает спам".
Админ всегда может проверить почтовую очередь введя команды:
# exim –bpc
В ответ получите количество писем в очереди. Если количество писем большое - поздравляю, Вы спамер!
# exiqgrep -i
Выводим номера сообщений. По номеру сообщения мы можем просмотреть заголовки и тело сообщения.
# exim -Mvh <Вводим номер сообщения>
Смотрим конверт письма, от какой учетной записи отправлено письмо с вашего сервера, это очень важный момент. Так как мы узнаем от какой учетной записи было отправлено письмо и кому.
Обычно если взламывают учетную запись, мы ее видим тут...
# exim -Mvb <Вводим номер сообщения>
Смотрим тело сообщения, ну а здесь можно увидеть текст тела письма, обычно спамеры всякую чушь рассылают, например - продажа Виагры, нужна ли вам работа, Вы выиграли миллион и т.д.
Примечание: Обычно почтовое письмо состоит из двух частей, это:
1. Конверт
2. Тело сообщения
В конверте пишется от какой учетной записи отправлено письмо и кому. Эти данные используются MTA типа Postfix, Exim, Mdaemon и т.д. Почтовый сервер оперирует именно этими данными во время работы.
В теле письма содержится непосредственно само сообщение и заголовки. С этими данными работает почтовый клиент типа Outlook, Thunderbird, The Bat и т.д. Спамеры любят подделывать заголовки писем.