Конфигуриране на пощенски сървър с виртуални потребители
В тази статия е описано как може да инсталирате и настроите пощенски сървър, от който да изпращате и получавате писма, съхранявайки виртуалните потребители във файл и използвайки операционна система CentOS 6.
Предимствата на виртуалните потребители във файл, вместо бази данни е, че не се използва допълнителна услуга (в случая MySQL) и не се генерират излишни заявки.
1. Инсталиране на необходимия софтуер
yum remove exim sendmail
yum install postfix dovecot
yum install nano
2. Създаване на група и потребител за виртуалните пощенски кутии
groupadd vmail -g 2222
useradd vmail -r -g 2222 -u 2222 -d /var/vmail -m -c "mail user"
3. Преместване конфигурационния файл на postfix
Преместваме конфигурационния файл на postfix в main.cf-backup
:
mv /etc/postfix/main.cf /etc/postfix/main.cf-backup
3.1 Създаване на нов конфигурационен файл
Създаваме нов файл /etc/postfix/main.cf
, в който поставяме следната конфигурация:
nano /etc/postfix/main.cf
С тази команда отваряме файла с редактора nano и поставяме конфигурацията, описана долу:
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/postfix/aliases
alias_database = $alias_maps
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
setgid_group = postdrop
html_directory = no
relay_domains = *
virtual_alias_maps=hash:/etc/postfix/vmail_aliases
virtual_mailbox_domains=hash:/etc/postfix/vmail_domains
virtual_mailbox_maps=hash:/etc/postfix/vmail_mailbox
virtual_mailbox_base = /var/vmail
virtual_minimum_uid = 2222
virtual_transport = dovecot
virtual_uid_maps = static:2222
virtual_gid_maps = static:2222
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/run/dovecot/auth-client
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain = $mydomain
broken_sasl_auth_clients = yes
smtpd_sender_restrictions =reject_non_fqdn_sender,reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions =
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client b.barracudacentral.org
3.2. Създаване на файл за домейните
Създаваме файл /etc/postfix/vmail_domains
, в който описваме домейните по следния начин:
mydomain.com OK
my-otherdomain.com OK
3.3. Създаване файл за пощенските кутии
Създаваме файл /etc/postfix/vmail_mailbox
за самите пощенски кутии в следния формат:
info@mydomain.com mydomain.com/info/
info@my-otherdomain.com my-otherdomain.com/info/
Физически, директориите за пощенските кутии се създават автоматично при изпращане на първото писмо в директория /var/vmail
.
3.4. Създаване на празни файлове за препратки
Създаваме празни файлове /etc/postfix/vmail_aliases
и /etc/postfix/aliases
, ако няма да ползваме alias (препратки), а ако искате да конфигурирате такива, то те се описват във формата от втората графа само във файл /etc/postfix/vmail_aliases
:
touch /etc/postfix/vmail_aliases
touch /etc/postfix/aliases
info@mydomain.com othermailbox@mydomain.com
3.5. Обновяване на текущата конфигурация
Обновяваме конфигурацията, направена до момента, изпълнявайки командите:
postmap /etc/postfix/vmail_domains
postmap /etc/postfix/vmail_mailbox
postmap /etc/postfix/vmail_aliases
3.6. Проверка за наличност на код
Проверяваме дали следните редове са налични и ако ги няма ги добавяме или откоментираме във файл /etc/postfix/master.cf
:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
submission inet n - n - - smtpd
Важно: Обърнете внимание, че преди реда, започващ с flags има интервал.
4. Операции с конфигурационния файл на dovecot
Копираме файла, който е по подразбиране от dovecot пакета в архив (backup) и създаваме нов файл /etc/dovecot/dovecot.conf
, в който поставяме конфигурацията от втория блок:
mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf-backup
nano /etc/dovecot/dovecot.conf
С тази команда отваряме файла с редактора nano и поставяме конфигурацията описана долу:
listen = *
ssl = no
protocols = imap lmtp
disable_plaintext_auth = no
auth_mechanisms = plain login
mail_access_groups = vmail
default_login_user = vmail
first_valid_uid = 2222
first_valid_gid = 2222
mail_location = maildir:/var/vmail/%d/%n
passdb {
driver = passwd-file
args = scheme=SHA1 /etc/dovecot/passwd
}
userdb {
driver = static
args = uid=2222 gid=2222 home=/var/vmail/%d/%n allow_all_users=yes
}
service auth {
unix_listener auth-client {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
}
user = root
}
service imap-login {
process_min_avail = 1
user = vmail
}
4.1. Създаване файл за потребители и пароли
Създаваме файла, съхраняващ потребителите и паролите, след което генерираме хеширана парола:
touch /etc/dovecot/passwd
doveadm pw -s sha1 | cut -d '}' -f2
тук въвеждате желаната от Вас парола и получавате хешираният вид.
4.2. Създаване на списък с потребители
Описваме потребителите и паролите в следния формат във файл /etc/dovecot/passwd
:
info@mydomain.com:DOzcsKI8HY0bg8LAuz0DPKwS3WA=
4.3. Корекция на собственост и права
Поправяме собствениците и правата на файловете:
chown root: /etc/dovecot/passwd
chmod 600 /etc/dovecot/passwd
4.4. Задаване коректни права на директории и файлове
Задаваме необходимите права по файлове и директории:
chown -R vmail:vmail /var/vmail/
chown -R vmail:vmail /var/run/dovecot/
find /var/vmail/ -type f -exec chmod 0644 {} \;
find /var/vmail/ -type d -exec chmod 0755 {} \;
4.5. Рестартиране на услугите
Рестартираме услугите за да влязат промените в сила:
chkconfig postfix on
chkconfig dovecot on
service postfix restart
service dovecot restart
4.6. Корекция собствеността на файла, който ползваме за база данни
Коригираме собственика на автоматично създадения файл за база данни на dovecot, след като сте изпратили мейл и мейл сървъра е готов за използване:
chown vmail:vmail /var/run/dovecot/auth-userdb
4.7. Създаване на пощенска кутия и изпращане на тестово писмо
Създавате пощенска кутия, настройвате мейл клиент (Outlook, Thunderbird или друг) към нея и изпращате съобщение до определена пощенска кутия.
5. Премахване на пощенска кутия
За да премахнете пощенска кутия, е нужно да изтриете реда, на който е описана тя във файлa /etc/postfix/vmail_mailbox
, след което трябва да обновите конфигурацията на postfix с командата:
postmap /etc/postfix/vmail_mailbox
5.1. Добавяне на пощенски кутии
За да добавяте нови пощенски кутии към същия домейн, който сте използвали по-рано, е нужно да добавите новата пощенска кутия във файл /etc/postfix/vmail_mailbox
по същия начин, описан в стъпка 3.3
от процедурата, след което трябва да обновите конфигурацията със следната команда:
postmap /etc/postfix/vmail_mailbox
Ако желаете да добавите нови пощенски кутии, но на друг домейн - различен от този, който сте добавили в началото е нужно първо да опишете новия домейн във файл /etc/postfix/vmail_domains
по начина описан в стъпка 3.2
, след това да опишете съответните пощенски кутии към новия домейн във файл /etc/postfix/vmail_mailbox
и да обновите конфигурацията със следните две команди:
postmap /etc/postfix/vmail_domains
postmap /etc/postfix/vmail_mailbox