Настройка почтового сервера (Postfix)

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

Содержание

Настройка почтового сервера (Postfix)

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть доступ к серверу через SSH или консоль.

2. Установка Postfix

Установка пакета

1. Обновите список пакетов:

sudo apt update

2. Установите Postfix:

sudo apt install postfix

3. Установите дополнительные компоненты:

sudo apt install mailutils dovecot-core dovecot-imapd dovecot-pop3d

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

1. При установке выберите тип конфигурации:

  • Internet Site - для обычного почтового сервера
  • Internet with smarthost - для использования внешнего SMTP
  • Satellite system - для пересылки почты

2. Введите доменное имя сервера:

mail.example.com

3. Базовая настройка Postfix

Основная конфигурация

1. Отредактируйте основной файл конфигурации:

sudo nano /etc/postfix/main.cf

2. Настройте основные параметры:

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +

Настройка безопасности

1. Добавьте настройки безопасности:

smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname

2. Настройте ограничения:

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain

4. Настройка аутентификации

Установка SASL

1. Установите SASL:

sudo apt install libsasl2-modules libsasl2-modules-sql

2. Настройте SASL:

sudo nano /etc/postfix/sasl/smtpd.conf

3. Добавьте содержимое:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

Настройка аутентификации в Postfix

1. Отредактируйте конфигурацию:

sudo nano /etc/postfix/main.cf

2. Добавьте настройки SASL:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes

3. Настройте TLS:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may
smtp_tls_security_level = may

5. Настройка пользователей

Создание пользователей

1. Создайте пользователя для почты:

sudo useradd -m -s /bin/bash user1

2. Установите пароль:

sudo passwd user1

3. Добавьте пользователя в SASL базу данных:

sudo saslpasswd2 -c -u example.com user1

4. Проверьте пользователей:

sudo sasldblistusers2

Настройка виртуальных пользователей

1. Создайте файл виртуальных пользователей:

sudo nano /etc/postfix/virtual_users

2. Добавьте пользователей:

user1@example.com user1
user2@example.com user2
admin@example.com admin

3. Создайте базу данных:

sudo postmap /etc/postfix/virtual_users

4. Настройте Postfix для виртуальных пользователей:

sudo nano /etc/postfix/main.cf

5. Добавьте настройки:

virtual_alias_maps = hash:/etc/postfix/virtual_users
virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

6. Настройка Dovecot

Основная конфигурация

1. Отредактируйте конфигурацию Dovecot:

sudo nano /etc/dovecot/dovecot.conf

2. Настройте основные параметры:

protocols = imap pop3 lmtp
listen = *, ::
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
userdb {
driver = passwd
}
passdb {
driver = pam
}

Настройка IMAP/POP3

1. Настройте IMAP:

sudo nano /etc/dovecot/conf.d/10-mail.conf

2. Добавьте настройки:

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail

3. Настройте аутентификацию:

sudo nano /etc/dovecot/conf.d/10-auth.conf

4. Добавьте настройки:

auth_mechanisms = plain login
!include auth-system.conf.ext

7. Настройка SSL/TLS

Генерация SSL сертификата

1. Создайте приватный ключ:

sudo openssl genrsa -out /etc/ssl/private/mail.example.com.key 2048

2. Создайте запрос на сертификат:

sudo openssl req -new -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/certs/mail.example.com.csr

3. Создайте самоподписанный сертификат:

sudo openssl x509 -req -days 365 -in /etc/ssl/certs/mail.example.com.csr -signkey /etc/ssl/private/mail.example.com.key -out /etc/ssl/certs/mail.example.com.crt

Настройка SSL в Postfix

1. Отредактируйте конфигурацию:

sudo nano /etc/postfix/main.cf

2. Обновите настройки TLS:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/mail.example.com.crt
smtpd_tls_key_file = /etc/ssl/private/mail.example.com.key
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_ciphers = high

Настройка SSL в Dovecot

1. Отредактируйте конфигурацию:

sudo nano /etc/dovecot/conf.d/10-ssl.conf

2. Настройте SSL:

ssl = yes
ssl_cert = </etc/ssl/certs/mail.example.com.crt
ssl_key = </etc/ssl/private/mail.example.com.key
ssl_protocols = !SSLv2 !SSLv3
ssl_cipher_list = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384

8. Настройка файрвола

Настройка UFW

1. Разрешите почтовые порты:

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp
sudo ufw allow 993/tcp
sudo ufw allow 995/tcp
sudo ufw allow 143/tcp
sudo ufw allow 110/tcp

2. Проверьте статус:

sudo ufw status

Настройка iptables

1. Разрешите почтовые порты:

sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 465 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 993 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 143 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT

2. Сохраните правила:

sudo iptables-save > /etc/iptables/rules.v4

9. Управление Postfix

Основные команды управления

  • Запуск Postfix:
sudo systemctl start postfix
  • Остановка Postfix:
sudo systemctl stop postfix
  • Перезапуск Postfix:
sudo systemctl restart postfix
  • Проверка статуса:
sudo systemctl status postfix
  • Проверка конфигурации:
sudo postfix check
  • Перезагрузка конфигурации:
sudo postfix reload

Управление очередью почты

1. Просмотрите очередь:

sudo postqueue -p

2. Очистите очередь:

sudo postqueue -f

3. Удалите все письма из очереди:

sudo postsuper -d ALL

4. Удалите письма старше определенного времени:

sudo postsuper -d ALL deferred

10. Мониторинг и логирование

Настройка логирования

1. Отредактируйте конфигурацию логирования:

sudo nano /etc/rsyslog.d/50-default.conf

2. Добавьте настройки для Postfix:

mail.* -/var/log/mail.log
mail.err -/var/log/mail.err

3. Перезапустите rsyslog:

sudo systemctl restart rsyslog

Просмотр логов

1. Просмотрите логи Postfix:

sudo tail -f /var/log/mail.log

2. Просмотрите логи Dovecot:

sudo tail -f /var/log/dovecot.log

3. Просмотрите системные логи:

sudo journalctl -u postfix -f
sudo journalctl -u dovecot -f

Создание скрипта мониторинга

1. Создайте скрипт мониторинга:

sudo nano /usr/local/bin/mail-monitor.sh

2. Добавьте содержимое:

if systemctl is-active --quiet postfix; then
echo "Postfix is running"
else
echo "Postfix is not running"
echo "Postfix is down" | mail -s "Mail Server Alert" admin@example.com
fi
if systemctl is-active --quiet dovecot; then
echo "Dovecot is running"
else
echo "Dovecot is not running"
echo "Dovecot is down" | mail -s "Mail Server Alert" admin@example.com
fi
QUEUE_SIZE=$(sudo postqueue -p | grep -c "^[A-F0-9]")
if [ $QUEUE_SIZE -gt 100 ]; then
echo "ALERT: Large mail queue: $QUEUE_SIZE messages" | mail -s "Mail Queue Alert" admin@example.com
fi

3. Сделайте скрипт исполняемым:

sudo chmod +x /usr/local/bin/mail-monitor.sh

11. Устранение неполадок

Частые проблемы

1. Postfix не запускается:

  • Проверьте конфигурацию:
    sudo postfix check
  • Проверьте логи:
    sudo journalctl -u postfix
  • Проверьте порты:
    sudo netstat -tlnp | grep :25

2. Письма не отправляются:

  • Проверьте настройки релея
  • Проверьте DNS записи
  • Проверьте файрвол

3. Пользователи не могут получать почту:

  • Проверьте настройки Dovecot
  • Проверьте права доступа к почтовым ящикам
  • Проверьте аутентификацию

Диагностика

1. Проверьте статус служб:

sudo systemctl status postfix
sudo systemctl status dovecot

2. Проверьте конфигурацию:

sudo postfix check
sudo doveconf -n

3. Проверьте подключения:

sudo netstat -tlnp | grep -E ':(25|587|465|993|995|143|110)'

4. Проверьте DNS записи:

dig MX example.com
dig A mail.example.com

12. Дополнительные настройки

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

1. Установите SpamAssassin:

sudo apt install spamassassin spamc

2. Настройте Postfix для использования SpamAssassin:

sudo nano /etc/postfix/master.cf

3. Добавьте настройки:

spamassassin unix -     n       n       -       -       pipe
user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Настройка антивируса

1. Установите ClamAV:

sudo apt install clamav clamav-daemon

2. Настройте Postfix для использования ClamAV:

sudo nano /etc/postfix/master.cf

3. Добавьте настройки:

clamav unix -     n       n       -       -       pipe
user=clamav argv=/usr/bin/clamdscan --stdout --no-summary -i

Заключение

Почтовый сервер Postfix успешно установлен и настроен! Теперь вы можете отправлять и получать электронную почту.

Для размещения ваших почтовых серверов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой почтового сервера и обеспечением безопасности вашей почты!