Конфигуриране на пощенски сървър с виртуални потребители

Помощен център

Конфигуриране на пощенски сървър с виртуални потребители

В тази статия е описано как може да инсталирате и настроите пощенски сървър, от който да изпращате и получавате писма, съхранявайки виртуалните потребители във файл и използвайки операционна система 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