Установка почтового сервера для небольшого офиса

()

Если ваша компания имеет свой сайт в интернете с именем our_firm.com, а так же имеет в офисе сервер с постоянным IP-адресом, то можно попросить хостера прописать для вашего доменного имени MX-запись (Mail eXchanger - место, куда отправлять почту для домена), указывающую на IP-адрес вашего офиса и поднять в офисе свой почтовый сервер.

Описываемое здесь решение является одним из самых простых. Но оно будет полезно начинающим администраторам точно так же, как детекторный приёмник полезен начинающим радиолюбителем: Он работает, и на его примере можно понять принцип работы более сложных систем.

Всё описываемое здесь справедливо для операционной системы Gentoo Linux, в других дистрибутивах возможно часть команд будет отличаться. В основе почтового сервера будет MTA (Mail Transfer Agent) exim. Для авторизации будут использоваться системные аккаунты (вообще-то это моветон, однако это самое простое решение). Забирать почту пользователи будут по протоколу POP3. Для этого будет установлен и запущен сервис tpop3d. Для борьбы со спамом удобно использовать хорошо зарекомендовавший себя фильтр spamassassin.

Для начала откроем в редакторе файл /etc/portage/packages.use и укажем USE-флаги для устанавливаемого ПО:

mail-mta/exim -X -dnsdb -domainkeys -dovecot-sasl exiscan exiscan-acl -gnutls -ipv6 -ldap lmtp mailwrapper mbox mbx -mysql -nis pam perl -postgres -radius -sasl -spf -sqlite -srs -ssl syslog tcpd
net-mail/tpop3d -debug -ldap -maildir -mysql pam perl -postgres -ssl tcpd
mail-filter/spamassassin berkdb doc -ipv6 -ldap mysql -postgres -qmail -sqlite -ssl tools

Далее устанавливаем:

emerge exim tpop3d spamassassin

Сразу после установки мы можем запускать spamassassin, поскольку он с настройками по умолчанию очень даже не плохо работает, а его подробная настройка тянет на отдельную статью:

rc-update add spamd default
/etc/init.d/spamd start

Далее настраиваем exim. Тут тоже всё очень просто. Начальный конфиг останется практически без изменений.

Первым делом снимаем комментарий со строки:

# primary_hostname =

и заменяем её на:

primary_hostname = our_firm.com

Далее в список relay_to_domains добавляем наш домен:

domainlist relay_to_domains = our_firm.com

Чтобы работал антиспам нужно снять комментарий (#) со строки:

# spamd_address = 127.0.0.1 783

И со строк:

# warn    spam       = nobody
#         add_header = X-Spam_score: $spam_score\n\
#                      X-Spam_score_int: $spam_score_int\n\
#                      X-Spam_bar: $spam_bar\n\
#                      X-Spam_report: $spam_report

в секции acl_check_data.

Далее снимаем комментарий со строки:

# daemon_smtp_ports = 25 : 465 : 587

И оставляем только один порт (25):

daemon_smtp_ports = 25

На этом всё. Теперь запускаем exim:

rc-update add exim default
/etc/init.d/exim start

Ну и наконец остаётся настроить tpop3d. Его настройка настолько проста, что в поставке нет даже примера конфигурационного файла, и во время сборки выдаётся сообщение:

* Read the tpop3d.conf manpage
* Please create /etc/tpop3d/tpop3d.conf to fit your Configuration

После вдумчивого чтения man-страницы получился вот такой вот файл конфигурации:

mailbox: bsd:/var/mail/$(user)
listen-address: 0.0.0.0
max-children: 10
auth-pam-enable: true
domain: our_firm.com
strip-domain: yes

Первая строка указывает расположение mbox-файлов (почтовых ящиков) пользователей. Вторая - адрес на котором "слушает" сервер (в примере - все адреса). Третья строка ограничивает максимальное количество соединений с POP3-сервером. Установите по своему усмотрению. Четвёртая указывает на использование PAM для авторизации. Пятая - домен фирмы:) и последняя говорит что если при авторизации указывается полное имя ящика, то использовать из него только часть до символа @.

Закончив настройку запускаем tpop3d:

rc-update add tpop3d default
/etc/init.d/tpop3d start

На этом установка почтового сервера заканчивается. Чтобы создать новый ящик на сервере - создайте нового пользователя в системе. Для автоматизации процесса можно использовать следующий скрипт:

#!/bin/sh

if [[ $1 != "" ]]; then
	adduser -d /dev/null -s /sbin/nologin -g mail $1
	passwd $1
else
	echo "Usage: $0 username"
fi

Вот пожалуй и всё. Надеюсь что эта заметка будет вам полезной.

Ключевые слова: gentoo, linux, exim, tpop3d, spamassassin, mbox.

Комментарии:

Alex 2007-12-14 15:07:36 (#)

Поставил exim и столкнулся с проблемой, он не мог создать файл с полученным письмом. Соответственно в логах появлялась запись "local_delivery defer (13): Permission denied: creating lock file hitching post".
Пришлось на папку, в которую складывается почта сделать chmod a+w

MooSE 2007-12-14 15:22:42 (#)

Alex, Я и забыл про этот глюк... Вобщем реально надо ещё выполнить:

$ chmod 777 /var/mail

Belen 2007-12-15 16:34:29 (#)

>>Alex 2007-12-14 15:07:36 (*)
>>
>>Пришлось на папку, в которую складывается почта сделать chmod a+w
>>
>>MooSE 2007-12-14 15:22:42 (*)
>>
>>Alex, Я и забыл про этот глюк... Вобщем реально надо ещё выполнить:
>>
>>$ chmod 777 /var/mail

Господа, я конечно все понимаю - почтовая система для небольщого офиса... но 777 зачем? имхо правильнее сделать владельцем указанного каталога пользователя от которого пускается mta и pop3-сервер... к примеру пусть это будет пользователь mail
Не нужно приучать новичков делать ошибки, они их в "альтернативной" ОС делать привыкли и без вас

Anonymous 2009-07-23 23:39:43 (#)

как все просто
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE