Postfix with Cyrus
Данная статья посвящена инсталляции и настройке IMAP Mail сервера на Slackware 14.1 машине с использованием Cyrus-SASL, Postfix и Cyrus IMAP. Разумеется, мы должны иметь нормально установленный дистрибутив Slackware 14.1 со всеми сетевыми утилитами включая Cyrus SASL.
tags
Здесь мы отдаем предпочтение Cyrus SASL методу аутентификации и Cyrus IMAP для удаленной авторизации в качестве альтернативы для qpopper или dovecot.
Сначала мы инсталлируем необходимые утилиты и настроим работу сервера с использованием PLAIN-text пароля. Затем покажем как сконфигурировать все утилиты для использования SSL сертификатов при шифровании почтовых сообщений.
Updating Cyrus-SASL
Для того, чтобы наш почтовый сервер мог работать с PLAIN-text паролями, нам необходимо переконфигурировать пакет Cyrus-SASL. Мы воспользуемся исходным пакетом из дистрибутива.
Поскольку оригинальные скрипты требуют некоторой доработки, мы приготовили все необходимое на нашем FTP-сервере и далее будем ссылаться на него. Оригинальную статью документации Slackware, которая оперирует другими версиями пакетов, можно найти [здесь].
Возьмем исходные пакеты:
# cd /tmp # mkdir cyrus-sasl # cd cyrus-sasl # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/cyrus-sasl-2.1.23-glibc217-crypt.diff.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/cyrus-sasl-2.1.23.tar.xz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/cyrus-sasl.SlackBuild # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/cyrus-sasl.bad_elif.diff.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/doinst.sh.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/rc.saslauthd.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-sasl-2.1.23/slack-desc
Воспользуемся редактором для изменения скрипта сборки пакета:
# vim cyrus-sasl.SlackBuild
И добавим следующие управления сразу после -–disable static
--enable-plain \ --disable-digest \
Соберем пакет:
# sh cyrus-sasl.SlackBuild
Прежде чем инсталлировать пакет, удалим из системы существующий:
# ( cd /var/log/packages ; removepkg cyrus-sasl-2.1.23-x86_64-1 )
Теперь мы можем инсталлировать собранный нами пакет:
# installpkg /tmp/cyrus-sasl-2.1.23-x86_64-5.txz
Installing Postfix
Исходный пакет и скрипт сборки можно взять на сайте http://slackbuilds.org : postfix( 2.11.4 ). Однако здесь мы воспользуемся нашим FTP-сервером.
# cd /tmp # mkdir postfix # cd postfix # wget http://postfix.cs.utah.edu/source/official/postfix-2.11.4.tar.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/README # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/doinst.sh # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/postfix.SlackBuild # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/postfix.info # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/rc.postfix # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/postfix-2.11.4/slack-desc
Чтобы postfix использовал Cyrus IMAP для удаленной авторизации вместо dovecot, отредактируем скрипт сборки:
# vim postfix.Slackbuild
заменив в нем dovecot на cyrus как показано ниже.
SASL=${SASL:-cyrus}
Перед использованием скрипта сборки нам необходимо создать пользователя с именем "postfix" и две группы "postfix", "postdrop". Кроме того, так как пакет postfix содержит утилиту sendmail, надо позаботиться о сохранении объектного файла /usr/sbin/sendmail из пакета sendmail. Разумеется, предварительно надо остановить сам sendmail сервис:
# /etc/rc.d/rc.sendmail stop # chmod a-x /etc/rc.d/rc.sendmail # mv /usr/sbin/sendmail /usr/sbin/sendmail.sendmail
Теперь можно создать группы и пользователя postfix:
# groupadd -g 200 postfix # useradd -u 200 -d /dev/null -s /bin/false -g postfix postfix -G mail # groupadd -g 201 postdrop
затем собрать и инсталлировать пакет:
# sh postfix.SlackBuild # installpkg /tmp/postfix-2.11.4-x86_64-5.txz
Testing Postfix/SASL authentication
Перед тем как продолжить инсталляцию IMAP сервера, нам надо убедиться, что Postfix работает и мы можем аутентифицироваться с помощью SASL. Сделаем предварительные настройки Postfix и некоторые основные настройки SASL.
Первым делом добавим aliases и укажем Postfix-у, чтобы он читал их из файла /etc/postfix/aliases.
Воспользуемся редактором.
# vim /etc/postfix/main.cf
найдем и отредактируем переменные alias_maps и alias_database, чтобы получилось следующее:
alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases
Терерь создадим пользователя, который будет выступать нашим postmaster-ом. Этот пользователь также будет иметь возможность получать и отправлять письма.
Здесь мы воспользуемся утилитой adduser. Имя пользователя выбирается произвольно. В наших примерах мы используем имя "postmaster" так, как этот пользователь будет выступать в качестве postmaster-а и далее в тексте мы будем ссылаться на него именно по этому имени. В следующем примере, жирным шрифтом мы выделили данные, которые должны быть введены обязательно.
bash-4.2# adduser Login name for new user []: postmaster User ID ('UID') [ defaults to next available ]: <press ENTER> Initial group [ users ]: 200 Additional UNIX groups: Users can belong to additional UNIX groups on the system. For local users using graphical desktop login managers such as XDM/KDM, users may need to be members of additional groups to access the full functionality of removable media devices. * Security implications * Please be aware that by adding users to additional groups may potentially give access to the removable media of other users. If you are creating a new user for remote shell access only, users do not need to belong to any additional groups as standard, so you may press ENTER at the next prompt. Press ENTER to continue without adding any additional groups Or press the UP arrow key to add/select/edit additional groups : <press ENTER> Home directory [ /home/postmaster ] <press ENTER> Shell [ /bin/bash ] /bin/false - Warning: /bin/false is not in /etc/shells (potential problem using FTP) Do you wish to change the shell ? (Y/n) n Expiry date (YYYY-MM-DD) []: <press ENTER> New account will be created as follows: --------------------------------------- Login name.......: postmaster UID..............: [ Next available ] Initial group....: 200 Additional groups: [ None ] Home directory...: /home/postmaster Shell............: /bin/false Expiry date......: [ Never ] This is it... if you want to bail out, hit Control-C. Otherwise, press ENTER to go ahead and make the account. Creating new account... Changing the user information for postmaster Enter the new value, or press ENTER for the default Full Name []: Postfix master Room Number []: <press ENTER> Work Phone []: <press ENTER> Home Phone []: <press ENTER> Other []: <press ENTER> Changing password for psuser Enter the new password (minimum of 5 characters) Please use a combination of upper and lower case letters and numbers. New password: <enter the password for postmaster> Re-enter new password: <enter the password for postmaster> passwd: password changed. Account setup complete. bash-4.2#
Теперь мы должны отредактировать /etc/postfix/aliases согласно нашему примеру:
root : postmaster office: postmaster
и обновить базу данных aliases используя следующую команду:
# postalias hash:/etc/postfix/aliases
Настало время, сделать важные настройки перед тем, как мы сможем проверить работу Postfix.
# vim /etc/postfix/main.cf myhostname = mx.yourdomain.tld mydomain = yourdomain.tld myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 127.0.0.0/8
Теперь сконфигурируем Postfix для аутентификации пользователей через SASL:
# mkdir /etc/sasl2 # cd /etc/sasl2 # touch smtpd.conf # vim smtpd.conf pwcheck_method: saslauthd mech_list: PLAIN LOGIN
Для того, чтобы указать Postfix-у о необходимости аутентифицировать пользователей используя SASL, отредактируем файл /etc/postfix/main.cf добавив в него следующие строки:
smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
Запустим демонов и протестируем нашу конфигурацию:
# saslauthd -a shadow # postfix start
Для начала приготовим пароль пользователя, от имени которого мы будем проверять наш Mail-сервер с удаленной машины.
Допустим наш пользователь уже аутентифицировался на Mail-сервере по SSH, тогда выполнив команду:
printf 'user\0user\0password' | mmencode
где 'user' – его имя, а 'password'– его пароль, он получит вывод похожий на следующий:
Y4R0QYxpcuHsFBRbbGjnPHIwYjB0MWrpMTk7La==
Именно этот текст мы и будем использовать для аутентификации с удаленной машины.
Зайдем с другой машины нашей сети на Mail-сервер используя telnet порт 25:
$ telnet mx.yourdomain.tld 25
Trying 192.168.0.3...
Connected to mx.yourdomain.tld.
Escape character is '^]'.
220 mx.yourdomain.tld ESMTP Postfix
Введем следующую команду для получения доступа:
AUTH PLAIN Y4R0QYxpcuHsFBRbbGjnPHIwYjB0MWrpMTk7La==
Если ранее мы все сделали правильно, сервер ответит:
235 2.7.0 Authentication successful
Теперь можно отослать тестовое письмо. Для этого введем имя отправителя:
MAIL FROM: <user@yourdomain.tld> 250 2.1.0 Ok
Имя получателя:
RCPT TO: <user@someserver.com>
250 2.1.5 Ok
Отметим начало текста:
DATA
354 End data with <CR><LF>.<CR><LF>
Напишем тестовое послание:
Hi, This is a test mail from my server.
Завершим послание, поставив вначале строки точку, после которой сразу введем <Enter>;
.<press ENTER>
250 2.0.0 Ok: queued as 1BD35560078
Отпустим Mail-сервер:
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
$
Installing Mail Delivery and Cyrus IMAP
Убедившись в работоспособности Mail-сервера, можно приступать к сборке Cyrus IMAP.
Возьмем исходный пакет:
# cd /tmp # mkdir cyrus-imapd # cd cyrus-imapd # wget http://cyrusimap.org/releases/cyrus-imapd-2.5.3.tar.gz # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/README # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/README.SLACKWARE # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/cyrus-imapd.SlackBuild # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/cyrus-imapd.info # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/doinst.sh # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/imapd.conf # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/rc.cyrus-imapd # wget ftp://ftp.radix-linux.su/slackware/Postfix-with-Cyrus-14.1/source/n/cyrus-imapd-2.5.3/slack-desc
Создадим пользователя "cyrus", который станет администратором почтовых ящиков на Mail-сервере:
# groupadd -g 238 cyrus # useradd -d /var/imap -s /bin/sh -u 238 -g 238 cyrus -G mail
Соберем пакет:
# sh cyrus-imapd.SlackBuild # installpkg /tmp/cyrus-imapd-2.5.3-x86_64-5.txz
Создадим необходимые каталоги и присвоим им соответствующие права доступа:
# mkdir -m 750 -p /var/imap /var/spool/imap /var/sieve # chown cyrus:mail /var/imap /var/spool/imap /var/sieve
Проведем инициализацию:
# su - cyrus # /usr/doc/cyrus-imapd-2.5.3/tools/mkimap # exit
Далее, отредактируем файл /etc/imapd.conf добавив в него следующие строки:
sasl_mech_list: PLAIN LOGIN allowplaintext: yes
Найдем в файле /etc/postfix/main.cf строку, где задается значение переменной mailbox_transport и раскоментируем ее так, чтобы получилось следующее:
mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
Не забудем дать пользователю "cyrus" пароль:
# passwd cyrus
И создадим почтовый ящик для нашего postmaster-a:
# cyradm --user cyrus --server localhost --auth plain
localhost> cm user.postmaster
localhost> lm
localhost> quit
На данном этапе мы уже имеем работоспособный Mail-сервер с PLAIN аутентификацией.
Управлять почтовыми ящиками пользователей достаточно просто используя утилиту cyradm и работая от имени пользователя "cyrus". Так, например, если вы хотите ограничить размер почтового ящика пользователя с именем "some_user", при его создании, воспользуйтесь следующими командами:
# cyradm --user cyrus --server localhost --auth plain localhost> cm user.some_user setquota user.some_user 20000 localhost> lm localhost> quit
Здесь число 20000 ограничивает объем почтового ящика двадцатью мегабайтами (20 MB).
Далее мы займемся созданием сертификатов и настройкой Postfix для использования STARTTLS.
SSL/TLS Postfix and Cyrus
Начнем с создания сертификатов. Поскольку через год нам придется вспомнить всю следующую процедуру, разберем ее подробно.
Заметим здесь, что перед началом создания сертификатов может понадобиться переименовать каталог /etc/ssl/demoCA, который содержит прошлогодние данные:
# cd /etc/ssl # mv demoCA demoCA.old
Как всегда, наш ввод будем выделять жирным шрифтом. Разумеется, название организации, название подразделения, страну и адрес надо указать актуальный для вас.
# cd /etc/ssl # misc/CA.pl -newca CA certificate filename (or enter to create) Making CA certificate ... Generating a 1024 bit RSA private key .++++++ ...............................................++++++ writing new private key to './demoCA/private/cakey.pem' Enter PEM pass phrase: <здесь надо ввести приготовленный заранее пароль> Verifying - Enter PEM pass phrase: <здесь надо повторить пароль> ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: RU State or Province Name (full name) [Some-State]: Saint-Petersburg Locality Name (eg, city) []: Saint-Petersburg Organization Name (eg, company) [Internet Widgits Pty Ltd]: Radix Pro Ltd Organizational Unit Name (eg, section) []: Radix System Common Name (e.g. server FQDN or YOUR name) []: imap.radix-linux.su Email Address []: support@radix-linux.su Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: <вводим фразу, например, ответ на вопрос: девичья фамилия матери?> An optional company name []: Radix Pro Ltd Using configuration from /etc/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: <здесь надо ввести приготовленный заранее пароль> Check that the request matches the signature Signature ok Certificate Details: Serial Number: 17508654093838558911 (0xf2fb3c222e6fa6bf) Validity Not Before: May 24 15:12:41 2015 GMT Not After : May 23 15:12:41 2018 GMT Subject: countryName = RU stateOrProvinceName = Saint-Petersburg organizationName = Radix Pro Ltd organizationalUnitName = Radix System commonName = imap.radix-linux.su emailAddress = support@radix-linux.su X509v3 extensions: X509v3 Subject Key Identifier: 7E:71:37:24:F7:B2:38:FA:0F:9E:18:3D:EF:D5:1A:D6:7B:D4:14:D9 X509v3 Authority Key Identifier: keyid:7E:71:37:24:F7:B2:38:FA:0F:9E:18:3D:EF:D5:1A:D6:7B:D4:14:D9 X509v3 Basic Constraints: CA:TRUE Certificate is to be certified until May 23 15:12:41 2018 GMT (1095 days) Write out database with 1 new entries Data Base Updated #
Теперь создадим приватный RSA ключ.
# openssl req -new -nodes -keyout mailkey.pem -out mailreq.pem -days 36500 Generating a 1024 bit RSA private key ...........................++++++ .................................................................................++++++ writing new private key to 'mailkey.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: RU State or Province Name (full name) [Some-State]: Saint-Petersburg Locality Name (eg, city) []: Saint-Petersburg Organization Name (eg, company) [Internet Widgits Pty Ltd]: Radix Pro Ltd Organizational Unit Name (eg, section) []: Radix System Common Name (e.g. server FQDN or YOUR name) []: imap.radix-linux.su Email Address []: support@radix-linux.su Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: <вводим фразу, например, ответ на вопрос: девичья фамилия матери?> An optional company name []: Radix Pro Ltd #
Далее создадим подписанный сертификат.
# openssl ca -out mail_signed_cert.pem -infiles mailreq.pem Using configuration from /etc/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: <здесь надо ввести приготовленный заранее пароль> Check that the request matches the signature Signature ok Certificate Details: Serial Number: 17508654093838558912 (0xf2fb3c222e6fa6c0) Validity Not Before: May 24 15:38:49 2015 GMT Not After : May 23 15:38:49 2016 GMT Subject: countryName = RU stateOrProvinceName = Saint-Petersburg organizationName = Radix Pro Ltd organizationalUnitName = Radix System commonName = imap.radix-linux.su emailAddress = support@radix-linux.su X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 0A:ED:43:E2:92:3A:38:0A:3E:81:C6:59:4E:AC:4D:AC:D8:DD:A6:38 X509v3 Authority Key Identifier: keyid:7E:71:37:24:F7:B2:38:FA:0F:9E:18:3D:EF:D5:1A:D6:7B:D4:14:D9 Certificate is to be certified until May 23 15:38:49 2016 GMT (365 days) Sign the certificate? [y/n]: y 1 out of 1 certificate requests certified, commit? [y/n] y Write out database with 1 new entries Data Base Updated #
Если вместо ответа:
Write out database with 1 new entries
Data Base Updated
#
Вы получите:
failed to update database TXT_DB error number 2 #
Очистите файл demoCA/index.txt, например, с помощью команды:
ls 2> demoCA/index.txt
И повторите процедуру создания подписанного сертификата mail_signed_cert.pem.
Теперь надо распределить сертификаты и ключи по папкам, присвоив им соответствующие аттрибуты доступа:
# cp /etc/ssl/mailkey.pem /etc/postfix # cp /etc/ssl/mail_signed_cert.pem /etc/postfix # chown root /etc/postfix/mailkey.pem # chmod 400 /etc/postfix/mailkey.pem # cp /etc/ssl/demoCA/cacert.pem /etc/postfix
Далее надо указать Postfix-у, где искать сертификаты и ключи.
Для этого, в конец файла /etc/postfix/main.cf добавим следующие строки:
smtpd_use_tls = yes smtpd_tls_key_file = /etc/postfix/mailkey.pem smtpd_tls_cert_file = /etc/postfix/mail_signed_cert.pem smtpd_tls_CAfile = /etc/postfix/cacert.pem
Кроме того, необходимо найти в файле /etc/postfix/master.cf строку, содержащую символы 'smtps inet n - n - - smtpd' и, раскоментировать ее и три следующие строки удалив символ '#' так, чтобы получилось:
smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
На этом наша работа по настройке Mail-сервера не заканчивается и, мы должны научить IMAP демон использовать STARTTLS.
Configure IMAP to use STARTTLS
Успокаивает то, что далее нам придется вводить все меньше данных и паролей:
# openssl req -new -nodes -out req.pem -keyout key.pem Generating a 1024 bit RSA private key .....................................................++++++ ..++++++ writing new private key to 'key.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: RU State or Province Name (full name) [Some-State]: Saint-Petersburg Locality Name (eg, city) []: Saint-Petersburg Organization Name (eg, company) [Internet Widgits Pty Ltd]: Radix Pro Ltd Organizational Unit Name (eg, section) []: Radix System Common Name (e.g. server FQDN or YOUR name) []: imap.radix-linux.su Email Address []: support@radix-linux.su Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: <вводим фразу, например, ответ на вопрос: девичья фамилия матери?> An optional company name []: Radix Pro Ltd #
Затем:
# openssl rsa -in key.pem -out new.key.pem
writing RSA key
#
И наконец:
# openssl x509 -in req.pem -out ca-cert -req -signkey new.key.pem -days 36500
Signature ok
subject=/C=RU/ST=Saint-Petersburg/L=Saint-Petersburg/O=Radix Pro Ltd/OU=Radix
System/CN=imap.radix-linux.su/emailAddress=support@radix-linux.su
Getting Private key
#
Распределим полученные файлы по каталогам:
# cp new.key.pem /var/imap/server.pem # rm new.key.pem # cat ca-cert >> /var/imap/server.pem # chown cyrus:mail /var/imap/server.pem # chmod 600 /var/imap/server.pem
И настроим, наконец IMAP демон на работу с сертификатами, добавив в конец файла /etc/imapd.conf следующие строки:
tls_client_ca_file: /var/imap/server.pem tls_server_cert: /var/imap/server.pem tls_server_key: /var/imap/server.pem
Сделать это в условиях, когда нам уже надоел любимый редактор, можно с помощью следующих команд.
# echo tls_client_ca_file: /var/imap/server.pem >> /etc/imapd.conf # echo tls_server_cert: /var/imap/server.pem >> /etc/imapd.conf # echo tls_server_key: /var/imap/server.pem >> /etc/imapd.conf
System Start Scripts
Для того, чтобы наши демоны стартовали после включения питания машины, можно добавить следующие строки в файл /etc/rc.d/rc.local.
# Starting saslauthd daemon if [ ! -r /var/state/saslauthd/saslauthd.pid ]; then echo "Starting SASL authentication daemon: /usr/sbin/saslauthd -a shadow" /usr/sbin/saslauthd -a shadow fi # Starting IMAP daemon if [ -x /usr/libexec/cyrus/master ]; then echo "Starting Cyrus IMAP daemon: /usr/libexec/cyrus/master" /etc/rc.d/rc.cyrus-imapd start fi # Starting POSTFIX daemon /etc/rc.d/rc.postfix start
Но, поскольку запуск и остановка демона saslauthd уже предусмотрена в скриптах /etc/rc.d/rc.M и /etc/rc.d/rc.6, соответственно, мы можем отредактировать системные скрипты следующим образом.
# Start the SASL authentication server. This provides SASL # authentication services for sendmail: if [ -x /etc/rc.d/rc.saslauthd ]; then . /etc/rc.d/rc.saslauthd start fi # Starting IMAP daemon if [ -x /etc/rc.d/rc.cyrus-imapd ]; then . /etc/rc.d/rc.cyrus-imapd start fi # Starting POSTFIX daemon if [ -x /etc/rc.d/rc.postfix ]; then . /etc/rc.d/rc.postfix start fi # Start the sendmail daemon: if [ -x /etc/rc.d/rc.sendmail ]; then . /etc/rc.d/rc.sendmail start fi
# Shut down the SSH server: if [ -x /etc/rc.d/rc.sshd ]; then /etc/rc.d/rc.sshd stop fi # Shut down the POSTFIX daemon if [ -x /etc/rc.d/rc.postfix ]; then /etc/rc.d/rc.postfix stop fi # Shut down the IMAP daemon if [ -x /etc/rc.d/rc.cyrus-imapd ]; then /etc/rc.d/rc.cyrus-imapd stop fi # Shut down the SASL authentication daemon: if [ -x /etc/rc.d/rc.saslauthd ]; then /etc/rc.d/rc.saslauthd stop fi
Здесь строки, выделенные жирным шрифтом, добавлены нами.
Разумеется для правильной работы скриптов, нам необходимо правильно определить аттрибуты файлов:
# chmod a-x /etc/rc.d/rc.sendmail # chmod a+x /etc/rc.d/rc.saslauthd # chmod a+x /etc/rc.d/rc.cyrus-imapd # chmod a+x /etc/rc.d/rc.postfix
Bibliography
- Postfix The Definitive Guide, Kyle D. Dent, O'Reilly
- Managing IMAP, Dianna Mullet & Kevin Mullet, O'Reilly
- Official Postfix Documentation: Postfix
- Slackware Documentation: Postfix with Cyrus.