Posts tagged ‘postfix’

Postfix Postgrey и очистка очереди

Не дают покоя спаммеры факультетской почте. После настройки Яндекс.Спамооборона 1024 спам в ящики практически перестал приходить, но пошла новая тема - вдувать за день в очередь около миллиона корявых сообщений, которые системе приходится обрабатывать и получается, фактически, отказ в обслуживании.

Пришлось подключить к postfix релею policy server Postgrey. Смысл её работы:

When a request for delivery of a mail is received by Postfix via SMTP, the triplet CLIENT_IP / SENDER / RECIPIENT is built. If it is the first time that this triplet is seen, or if the triplet was first seen, less than 5 minutes ago, then the mail gets rejected with a temporary error. Hopefully spammers or viruses will not try again later, as it is however required per RFC.

Тем самым отсекается основной поток одинаковых писем.

Настроить на Ubuntu очень просто:

apt-get install postgrey

И потом добавить нужную директиву к smtpd_recipient_restrictions, например:

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023

И перезапустить postfix:

/etc/init.d/postfix reload

После этого не помешает очистить очередь от скопившихся там баунсов. Что бы найти и удалить все письма в очереди от MAILER-DAEMON, я воспользовался скриптом, найденным тут:

#!/bin/bash
mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($7 == "MAILER-DAEMON" )
    print $1 }
' | tr -d '*!' | postsuper -d -

Postfix Gmail Smarthost

Если вы пользуетесь Gmail и у вас есть свой выделенный сервер, то достаточно просто заставить postfix на этом сервере отправлять почту через ваш Gmail аккаунт. Для ubuntu все, что нужно сделать, это:

Файл /etc/postfix/main.cf:

relayhost = smtp.gmail.com:587
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

Создать файл /etc/postfix/sasl_passwd с параметрами авторизации Gmail:

smtp.gmail.com:587 user@gmail.com:PASSWORD

Выполнить комманды:

postmap /etc/postfix/sasl_passwd
chmod 640 /etc/postfix/sasl_passwd*
chown postfix.postfix /etc/postfix/sasl_passwd*
/etc/init.d/postfix restart

Ну и убедиться, что почта правильно уходит.

DNS-323 - продолжение

После небольшой оплошности с коммандой find -exec chmod ;-) сегодня пришлось перенастраивать заново коробочку.

Прошивка обновилась до версии 1.06. Обновление прошло без сюрпризов и потери данных.

Transmission обновился до 1.51 версии и я открыл для себя клиента под Windows Transmission Remote. Теперь можно удобно выставлять приоритеты файлов, и, главное, выбирать файлы для закачки внутри одного торрента.

Домашнюю папку пользователю root я изменил на /mnt/HD_a2/root - стало гораздо удобнее.

Cleanboot, lighttpd не ставил за ненадобностью.

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

Включаем syslogd (без логов понимать, что творится с почтой проблематично) и переместим логи на жесткий диск:

mkdir /ffp/var/log
cp -r /var/log/samba /ffp/var/log
cp -r /var/log/cores /ffp/var/log
cp /var/log/lastlog /ffp/var/log
cp /var/log/wtmp /ffp/var/log
cp /var/log/btmp /ffp/var/log
vim /ffp/start/syslogd.sh
syslogd_start()
{
    rm -r /var/log
    ln -s /ffp/var/log /var/log
    proc_start /ffp/sbin/syslogd /ffp/sbin/klogd
}
chmod +x /ffp/start/syslogd.sh
/ffp/start/syslogd.sh start

Устанавливаем postfix:

ipkg install postfix
vim /opt/etc/postfix/main.cf
mail_owner = admin
setgid_group = maildrop
myhostname = nas.domain.com
mynetworks_style = subnet

В интерфейсе управления коробочкой нужно создать группу maildrop.

Далее удаляем все строки, содержащие manpage_directory, sample_directory, readme_directory, html_directory из файла /opt/etc/postfix/postfix-files.

Поправляем привилегии на файлах, запускаемся, отправляем тест и смотрим лог:

postfix set-permissions
/opt/etc/init.d/S69postfix start
tail -f /ffp/var/log/messages
sendmail user@domain.com
TEST