7.2 Создание почтового сервера |
|
В данном разделе речь пойдет о настройке почтового сервера. Для начала предлагаем установить ssh, чтобы все дальнейшие манипуляции производить не из консоли. apt-get install ssh После этого подключаемся любым ssh-клиентом на 22 порт нашего серера, вводим имя и пароль администратора. Также рекомендуем установить Midnight Commander для упрощения работы с файлами и редактирования конфигурационных файлов. apt-get install mc Добавим остальные установочные диски в список доступных источников пакетов командой. apt-cdrom Выполняем эту команду для каждого диска. При желании можно воспользоваться сетевыми источниками пакетов и security updates с сайта Debian. Для этого снова открываем и добавляем в него следующие строки mcedit /etc/apt/sources.list: Далее обновим список пакетов и саму систему. apt-get update На этом все подготовительные мероприятия считаем законченными. Postfix Установим нужные для работы почтового сервера пакеты. apt-get install postfix libsasl2 libsasl2-modules sasl2-bin cyrus-imapd-2.2 cyrus-pop3d-2.2 cyrus-admin-2.2 Во время первоначальной настройки postfix укажите конфигурацию для Интернет-сайта (Internet Site). На вопрос об имени почтового сервера-оставьте вариант по-умолчанию или укажите свой. В нашем случае это было mailserver.test.ru Настроим сервер авторизации saslauthd на использование базы данных паролей sasldb2. Для этого отредактируем файл /etc/default/saslauthd: mcedit /etc/default/saslauthd: Запустим сервис командой: /etc/init.d/saslauthd start Сейчас проверим правильно ли он работает, но для начала необходимо добавить хотя бы одного пользователя. mailserver:~# saslpasswd2 test Если в результате этих манипуляций вы получили сообщение "0: OK "Success.", значит все в порядке и можно продолжать. Если же авторизация не прошла - смотрите файл /var/log/auth.log и повторяйте, повторяйте и ещё раз повторяйте все шаги, пока не получится нужный результат. У почтового сервера postfix есть одна особенность - после запуска он работает в chroot окружении, которое находится в папке /var/spool/postfix/. mailserver:~# ls -al /var/spool/postfix/ Это сделано из соображений безопасности, однако несколько усложняет сам процесс настройки. Так как postfix общается с остальными приложениями в большинстве случаев посредством socket'ов, и выше своего chroot окружения выбраться не может, то эти сокеты приходится переносить в доступную postfix-папку. Учитывая то, что для авторизации пользователей postfix будет использоваться демон saslauthd, нам нужно перенести его socket в рабочую директорию нашего сервера /var/spool/postfix/. Самый простой способ сделать это заключается в монтировании в нужную папку директории с уже созданным сокетом демона saslauthd. Делается это редактированием файла /etc/fstab. mcedit /etc/fstab: Не забудьте поставить [Enter] после последней строки. Также нужно не забыть создать папку, куда мы смонтируем сокет демона авторизации. mkdir -p /var/spool/postfix/var/run/saslauthd Сейчас сконфигурируем postfix для использования sasl авторизации. mcedit /etc/postfix/main.cf: Существует и упрощенный вариант редактирования этого файла командой postconf –e "smtpd_sasl_auth_enable = yes" и т.д.Сейчас мы запретим отсылать почту через наш SMTP шлюз без авторизации. Для этого создадим файл /etc/postfix/sasl/smtpd.conf со следующим содержимым. pwcheck_method: saslauthd Перезапустим наш postfix сервер и внимательно просмотрим следующие файлы на предмет ошибок: /var/log/mail.err /var/log/mail.info /var/log/mail.warn /var/log/mail.log.
/etc/init.d/postfix restart Если все чисто, сухо и гладко - обратимся к утитиле telnet, для того, чтобы подключиться к нашему серверу. mailserver:~# telnet localhost 25 Если у вас нечто похожее - продолжаем, если же подключение не удалось - проверяем где вы вставили лишний пробел или нечаянно удалили символ. Для того, чтобы "подружить" saslauthd и postfix необходимо выполнить следующее: adduser postfix sasl Оговоримся, что мы не будем вытанцовывать с бубном для настройки шифрования. Если кому-то это будет интересно, то найти необходимую информацию не составит большого труда и экспериментировать на уже работающей базе будет проще. Сейчас же продолжим наше руководство и расскажем как предоставить IMAP4/POP3 доступ к почтовому ящику. Cyrus-imapd Cyrus - это мощный набор POP3/NNTP/IMAP и некоторых других демонов для создания полноценных сервисов работы с электронной почтой. Официальный сайт проекта находится здесь: http://cyrusimap.web.cmu.edu/. В нашем случае cyrus будет заниматься получением почты от postfix, раскладыванием ее по папкам и предоставлению к ней доступа пользователям. Отредактируем файл /etc/imapd.conf. mcedit /etc/imapd.conf : Обратите внимание, что cyrus так же, как и saslauthd, придется взаимодействовать с postfix, поэтому их нужно сделать доступными друг другу. Воспользуемся уже известным механизмом: mcedit /etc/fstab : Не забываем создать папки для cyrus. mkdir -p /var/spool/postfix/var/run/saslauthd И выполнить команду: mount /var/run/cyrus Сейчас предоставим возможность cyrus забирать почту у postfix. Отредактируем файл /etc/postfix/main.cf: mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp Добавим почтовый сервер в группу lmtp: addgroup lmtpadduser postfix lmtp И выполним следующее: dpkg-statoverride --remove /var/run/cyrus/socket Добавим еще одну опцию: local_recipient_maps = В случае с pam-авторизацией по логинам и паролям системных пользователей все cработало бы без проблем. Но когда имена и пароли хранятся в формате, отличном от системного, необходимо указать данную опцию. Она означает "принимать письма для любого адресата". Это, конечно, не лучший выход, однако лучшего пока найти не удалось.Добавим пользователя cyrus в нашу базу учетных записей: saslpasswd2 -c cyrus Введите пароль, когда вас об этом попросят, и перезапустим наши демоны: /etc/init.d/postfix start Если вы без ошибок сделаете все, что было описано выше, то теоретически к этому моменту уже можете принимать и отправлять письма, создавать и удалять папки на IMAP-сервере, устанавливать квоты и права доступа на папки средствами утилиты cyradm.К примеру, можно создать скрипт, который будет создавать пользователю папки Sent, Trash, Drafts, Spam средствами утилиты cyradm.Так как все дальнейшие действия по настройке в целях тестирования потребуют отсылать и принимать почту, приведем краткую инструкцию по созданию почтовых аккаунтов: saslpasswd2 –c <имя пользователя> При желании, можно задать квоты на количество места в папках и другие параметры, с которыми можно познакомиться набрав "?" или "help" в утилите cyradm.В настоящий момент мы имеем следующую связку:
Защищайтесь, сударь Если вы собираетесь использовать почтовый сервер только внутри организации и в Интернет он смотреть не будет, то на этом настройку можно было бы и оставить. Однако, если электронная почта будет приходить из Интернета и планируется активное ее использование, необходимо надежно оградить себя от спама и вирусов. Если вы считаете, что не обязательно, то сильно ошибаетесь. Около 70% почтового трафика является спамовским. Вряд ли вы захотите придя на работу с утра обнаружить у себя несколько тысяч писем с предложениями приобрести столь нужную вам виагру или удлинить/укоротить избранные части тела. Приступим к установке Amavisd-new, SpamAssassin и ClamAV. apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 Внесем некоторые изменения в конфигурационные файлы amavisd: mcedit /etc/amavis/conf.d/50-user mcedit /etc/amavis/conf.d/20-debian_defaults Добавим пользователя clamav в группу amavis: adduser clamav amavis Сейчас заставим postfix отдавать почту для проверки антивирусом. Отредактируйте файл /etc/postfix/master.cf: mcedit /etc/postfix/master.cf : Так же добавьте в конец /etc/postfix/main.cf: content_filter=smtp-amavis:[127.0.0.1]:10024 Перестартуйте его и посмотрите нет ли ошибок в лог-файле: /etc/postfix/restart Установим ещё несколько инструментов и настроим spamassassin: apt-get install razor pyzor dcc-client Отредактируем файл /etc/spamassassin/local.cf: mcedit /etc/spamassassin/local.cf : # dcc #pyzor #razor #bayes Сейчас нужно разрешить spamassassin запускаться: mcedit /etc/default/spamassassin : И перезапустить нужные приложения: /etc/init.d/postfix restart Попробуйте создать пользователей и попробовать обменяться письмами. В том числе и письмами с прикрепленными exe-файлами. Если вы все правильно настроили – фильтр должен задержать такие файлы и прислать вам соответствующие уведомления. Послесловие Тему настройки почтового сервера под Linux можно развивать бесконечно. Во многом этому способствует модульность всех входящих в наш комплект приложений. Несколькими несложными действиями можно заставить раскладываться письма по папкам в зависимости от их содержимого, настроить доступ через браузер, настроить шифрованное соединение с почтовым сервером, добавить графическое средство для администрирования нашего сервера и многое другое.
|
|
"Учебник ОС Linux" В. Мартыненко |