Mail Server

Усе дуже просто: необхідно заблокувати певним адресатам писати нам листи 🙂
Встановлено postfix, створюємо файл /etc/postfix/sender_access, куди заносимо наших небежених друзів:

user@bad.com REJECT

Створюємо базу:

postmap hash:sender_access

Прописуємо у конфіг main.cf

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access

Та перезапускаємо! Тепер наш «товариш» отримає:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

me@it-sfera.com.ua
SMTP error from remote mail server after RCPT TO::
host postfix [192.168.22.13]: 554 5.7.1 :
Sender address rejected: Access denied

—— This is a copy of the message, including all the headers. ——

Сьогодні необхідно було надіслати Email з прикріпленим файлом на віддаленному сервері, доступ до якого я Ваю лише по SSH. Виявилося усе банально просто:

  1. Встановити mutt (у мене він вже був встановленний)
  2. Надсилаємо з консолі
 mutt -s "TEST mail" -a /home/samael/nazia.sql.bz sss@domain.org < /tmp/email_text

де,

  • sss@domain.org — одержувач
  • /tmp/email_text — тіло повідомлення (читається з приговленого файла «/tmp/email_text»)
  • /home/samael/nazia.sql.bz — додаток (опція -a)
  • «Test mail» — тема повідомлення (опція -s)

Доволі давно Google надає послугу хостингу пошти на своїх серверах. Існує комерційний пакет, а є цілком безкоштовний (до 50 поштових скринь)! Ви отримуєте якісний поштовий сервіс, спільну адресну книгу, документи, чат, календар та вебсайт! Цікавить? Давайте налаштовувати…

Переходимо до http://www.google.com/a/cpanel/domain/new?hl=uk та додаємо свій домен. Заповнюємо усі поля та приймаємо умови. Дальше, Вам необхідно підтвердити своє право власності на домен. Ви маєте створити CNAME запис у DNS, наприклад:

google24d71db4c2f2eed   IN      CNAME   google.com.

Активовуємо поштову службу, для цього в DNS додаємо записи:

IN MX 20 ALT1.ASPMX.L.GOOGLE.COM.
IN MX 20 ALT2.ASPMX.L.GOOGLE.COM.
IN MX 30 ASPMX2.GOOGLEMAIL.COM.
IN MX 30 ASPMX3.GOOGLEMAIL.COM.
IN MX 30 ASPMX4.GOOGLEMAIL.COM.
IN MX 30 ASPMX5.GOOGLEMAIL.COM.

Для зручності перевірки пошти (http://mail.MY_DOMAIN.ua/) прописуємо :

mail                    IN      CNAME   ghs.google.com.

Це базові зміни. Решта — самі все зрозумієте! 😉

В предыдущей записи я описал процесс установки OpenMeetings. Столкнулся с проблемой — не рассылает приглашения на запланированные в календаре конференции. Начал рыть в логах почтовика, a там такое:

Mar 9 00:14:17 web postfix/smtpd[29108]: connect from localhost[127.0.0.1]
Mar 9 00:14:19 web postfix/smtpd[29108]: SSL_accept error from localhost[127.0.0.1]: 0
Mar 9 00:14:19 web postfix/smtpd[29108]: warning: TLS library problem: 29108:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1053:SSL alert number 46:
Mar 9 00:14:19 web postfix/smtpd[29108]: lost connection after STARTTLS from localhost[127.0.0.1]
Mar 9 00:14:19 web postfix/smtpd[29108]: disconnect from localhost[127.0.0.1]

К чему здесь TLS? Пару дней переписывался с разработчиками и нашел следующие: в 86 строке одного файла в исходнике закомментировали использование TLS, а вот в 159 строке — забыли 🙁

Что бы не дожидаться, когда это изменят разработчики, решил все сам поправить. Вот все, что нужно установить и как это все самому собрать:

aptitude install subversion sun-java6-jdk ant
svn checkout http://openmeetings.googlecode.com/svn/trunk/
cd trunk/singlewebapp/
#правим файл src/app/org/openmeetings/utils/mail/MailHandler.java
ant -f build_red5webapp.xml

После компиляции, мы получили папочку dist с собранным дистрибутивом. Заменяем наш, перезапускам сервер и радуемся!

Только-что сделал, запишу и буду работать дальше!
Нужно все письма, которые приходят пользователю user1 дублировались user2. У нас установлен postfix на ubuntu сервере. Все, что нужно сделать — добавить одну строчку в файл /etc/aliases 🙂

echo "user1: user1,user2" >> /etc/aliases
newaliases
invoke-rc.d postfix restart

Оскільки скоро завершиться термін підтримки Debian Etch, вирішив я перевести наші сервера на Debian Lenny. Хоча офіційно не рекомендують робити оновлення через SSH, але це єдине що в мене є 🙂 Розповім, як я це зробив.

Найперше, резервна копія!!! Зробіть backup, особливо це стосується /etc. Дальше, встановіть screen (якщо у Вас його ще нема). Усе робитимемо в screen, навіть якщо ми втратимо доступ до сервера, то зможемо переконектитися і відновити сесію

screen -rd

Переконаємося, що все у нас найсвіжіше:

aptitude update && aptitude dist-upgrade

Відредагуємо: /etc/apt/sources.list , де замінимо усе з etch на lenny

Оновимо пакетний менеджер:

aptitude update && aptitude install apt && aptitude install aptitude

Дальше — базова система: aptitude safe-upgrade І, усе решта, що залишилось оновити: aptitude dist-upgrade

Переконаємося, що встановили нове ядро:

dpkg -l "linux-image*" | grep ^ii

Перевантажуємо систему. Це все. У мене виникла лише єдина проблема, postfix втратив доступ до авторизації на стороні MySQL, помилка: Cannot connect to saslauthd server: Permission denied

Допомогло:

adduser postfix sasl
invoke-rc.d postfix restart

Доволі багато сплило часу з моменту написання мною статті про налаштування djbDNS. Сьогодні я вирішив сісти і написати щось подібне для поштового сервера. Звичайно, що це буде продукт того ж D. J. Bernstein — Qmail (http://www.qmail.org/). Що ж, у нас уже запущений DNS, усі деталі машини та використовуваних мною параметрі читайте в статті по djbDNS у рубриці МЕТА. Дана стаття базується на документі «Installing qmail under FreeBSD» Aaron Hill © 2001-2003, зокрема використано його скрипт запуску Qmail під FreeBSD. Менше слів! До роботи!