Настройка почтового сервера (Postfix) — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
* Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | * Убедитесь, что у вас есть доступ к серверу через SSH или консоль. | ||
− | == 2. Установка Postfix | + | == 2. Установка Postfix == |
=== Установка пакета === | === Установка пакета === | ||
1. Обновите список пакетов: | 1. Обновите список пакетов: | ||
− | < | + | <pre>sudo apt update</pre> |
2. Установите Postfix: | 2. Установите Postfix: | ||
− | < | + | <pre>sudo apt install postfix</pre> |
3. Установите дополнительные компоненты: | 3. Установите дополнительные компоненты: | ||
− | < | + | <pre>sudo apt install mailutils dovecot-core dovecot-imapd dovecot-pop3d</pre> |
=== Настройка при установке === | === Настройка при установке === | ||
Строка 27: | Строка 27: | ||
2. Введите доменное имя сервера: | 2. Введите доменное имя сервера: | ||
− | < | + | <pre>mail.example.com</pre> |
− | == 3. Базовая настройка Postfix | + | == 3. Базовая настройка Postfix == |
=== Основная конфигурация === | === Основная конфигурация === | ||
1. Отредактируйте основной файл конфигурации: | 1. Отредактируйте основной файл конфигурации: | ||
− | < | + | <pre>sudo nano /etc/postfix/main.cf</pre> |
2. Настройте основные параметры: | 2. Настройте основные параметры: | ||
− | < | + | <pre>myhostname = mail.example.com</pre> |
− | < | + | <pre>mydomain = example.com</pre> |
− | < | + | <pre>myorigin = $mydomain</pre> |
− | < | + | <pre>inet_interfaces = all</pre> |
− | < | + | <pre>inet_protocols = ipv4</pre> |
− | < | + | <pre>mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain</pre> |
− | < | + | <pre>relayhost =</pre> |
− | < | + | <pre>mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128</pre> |
− | < | + | <pre>mailbox_size_limit = 0</pre> |
− | < | + | <pre>recipient_delimiter = +</pre> |
=== Настройка безопасности === | === Настройка безопасности === | ||
1. Добавьте настройки безопасности: | 1. Добавьте настройки безопасности: | ||
− | < | + | <pre>smtpd_banner = $myhostname ESMTP $mail_name</pre> |
− | < | + | <pre>biff = no</pre> |
− | < | + | <pre>append_dot_mydomain = no</pre> |
− | < | + | <pre>readme_directory = no</pre> |
− | < | + | <pre>smtpd_helo_required = yes</pre> |
− | < | + | <pre>smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname</pre> |
2. Настройте ограничения: | 2. Настройте ограничения: | ||
− | < | + | <pre>smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination</pre> |
− | < | + | <pre>smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain</pre> |
− | == 4. Настройка аутентификации | + | == 4. Настройка аутентификации == |
=== Установка SASL === | === Установка SASL === | ||
1. Установите SASL: | 1. Установите SASL: | ||
− | < | + | <pre>sudo apt install libsasl2-modules libsasl2-modules-sql</pre> |
2. Настройте SASL: | 2. Настройте SASL: | ||
− | < | + | <pre>sudo nano /etc/postfix/sasl/smtpd.conf</pre> |
3. Добавьте содержимое: | 3. Добавьте содержимое: | ||
− | < | + | <pre>pwcheck_method: auxprop</pre> |
− | < | + | <pre>auxprop_plugin: sasldb</pre> |
− | < | + | <pre>mech_list: PLAIN LOGIN</pre> |
=== Настройка аутентификации в Postfix === | === Настройка аутентификации в Postfix === | ||
1. Отредактируйте конфигурацию: | 1. Отредактируйте конфигурацию: | ||
− | < | + | <pre>sudo nano /etc/postfix/main.cf</pre> |
2. Добавьте настройки SASL: | 2. Добавьте настройки SASL: | ||
− | < | + | <pre>smtpd_sasl_auth_enable = yes</pre> |
− | < | + | <pre>smtpd_sasl_security_options = noanonymous</pre> |
− | < | + | <pre>smtpd_sasl_local_domain = $myhostname</pre> |
− | < | + | <pre>broken_sasl_auth_clients = yes</pre> |
− | < | + | <pre>smtpd_sasl_authenticated_header = yes</pre> |
3. Настройте TLS: | 3. Настройте TLS: | ||
− | < | + | <pre>smtpd_use_tls = yes</pre> |
− | < | + | <pre>smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem</pre> |
− | < | + | <pre>smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key</pre> |
− | < | + | <pre>smtpd_tls_security_level = may</pre> |
− | < | + | <pre>smtp_tls_security_level = may</pre> |
− | == 5. Настройка пользователей | + | == 5. Настройка пользователей == |
=== Создание пользователей === | === Создание пользователей === | ||
1. Создайте пользователя для почты: | 1. Создайте пользователя для почты: | ||
− | < | + | <pre>sudo useradd -m -s /bin/bash user1</pre> |
2. Установите пароль: | 2. Установите пароль: | ||
− | < | + | <pre>sudo passwd user1</pre> |
3. Добавьте пользователя в SASL базу данных: | 3. Добавьте пользователя в SASL базу данных: | ||
− | < | + | <pre>sudo saslpasswd2 -c -u example.com user1</pre> |
4. Проверьте пользователей: | 4. Проверьте пользователей: | ||
− | < | + | <pre>sudo sasldblistusers2</pre> |
=== Настройка виртуальных пользователей === | === Настройка виртуальных пользователей === | ||
1. Создайте файл виртуальных пользователей: | 1. Создайте файл виртуальных пользователей: | ||
− | < | + | <pre>sudo nano /etc/postfix/virtual_users</pre> |
2. Добавьте пользователей: | 2. Добавьте пользователей: | ||
− | < | + | <pre>user1@example.com user1</pre> |
− | < | + | <pre>user2@example.com user2</pre> |
− | < | + | <pre>admin@example.com admin</pre> |
3. Создайте базу данных: | 3. Создайте базу данных: | ||
− | < | + | <pre>sudo postmap /etc/postfix/virtual_users</pre> |
4. Настройте Postfix для виртуальных пользователей: | 4. Настройте Postfix для виртуальных пользователей: | ||
− | < | + | <pre>sudo nano /etc/postfix/main.cf</pre> |
5. Добавьте настройки: | 5. Добавьте настройки: | ||
− | < | + | <pre>virtual_alias_maps = hash:/etc/postfix/virtual_users</pre> |
− | < | + | <pre>virtual_mailbox_domains = example.com</pre> |
− | < | + | <pre>virtual_mailbox_base = /var/mail/vhosts</pre> |
− | < | + | <pre>virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes</pre> |
− | < | + | <pre>virtual_minimum_uid = 100</pre> |
− | < | + | <pre>virtual_uid_maps = static:5000</pre> |
− | < | + | <pre>virtual_gid_maps = static:5000</pre> |
− | == 6. Настройка Dovecot | + | == 6. Настройка Dovecot == |
=== Основная конфигурация === | === Основная конфигурация === | ||
1. Отредактируйте конфигурацию Dovecot: | 1. Отредактируйте конфигурацию Dovecot: | ||
− | < | + | <pre>sudo nano /etc/dovecot/dovecot.conf</pre> |
2. Настройте основные параметры: | 2. Настройте основные параметры: | ||
− | < | + | <pre>protocols = imap pop3 lmtp</pre> |
− | < | + | <pre>listen = *, ::</pre> |
− | < | + | <pre>mail_location = maildir:/var/mail/vhosts/%d/%n</pre> |
− | < | + | <pre>mail_privileged_group = mail</pre> |
− | < | + | <pre>userdb {</pre> |
− | < | + | <pre>driver = passwd</pre> |
− | < | + | <pre>}</pre> |
− | < | + | <pre>passdb {</pre> |
− | < | + | <pre>driver = pam</pre> |
− | < | + | <pre>}</pre> |
=== Настройка IMAP/POP3 === | === Настройка IMAP/POP3 === | ||
1. Настройте IMAP: | 1. Настройте IMAP: | ||
− | < | + | <pre>sudo nano /etc/dovecot/conf.d/10-mail.conf</pre> |
2. Добавьте настройки: | 2. Добавьте настройки: | ||
− | < | + | <pre>mail_location = maildir:/var/mail/vhosts/%d/%n</pre> |
− | < | + | <pre>mail_privileged_group = mail</pre> |
3. Настройте аутентификацию: | 3. Настройте аутентификацию: | ||
− | < | + | <pre>sudo nano /etc/dovecot/conf.d/10-auth.conf</pre> |
4. Добавьте настройки: | 4. Добавьте настройки: | ||
− | < | + | <pre>auth_mechanisms = plain login</pre> |
− | < | + | <pre>!include auth-system.conf.ext</pre> |
− | == 7. Настройка SSL/TLS | + | == 7. Настройка SSL/TLS == |
=== Генерация SSL сертификата === | === Генерация SSL сертификата === | ||
1. Создайте приватный ключ: | 1. Создайте приватный ключ: | ||
− | < | + | <pre>sudo openssl genrsa -out /etc/ssl/private/mail.example.com.key 2048</pre> |
2. Создайте запрос на сертификат: | 2. Создайте запрос на сертификат: | ||
− | < | + | <pre>sudo openssl req -new -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/certs/mail.example.com.csr</pre> |
3. Создайте самоподписанный сертификат: | 3. Создайте самоподписанный сертификат: | ||
− | < | + | <pre>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</pre> |
=== Настройка SSL в Postfix === | === Настройка SSL в Postfix === | ||
1. Отредактируйте конфигурацию: | 1. Отредактируйте конфигурацию: | ||
− | < | + | <pre>sudo nano /etc/postfix/main.cf</pre> |
2. Обновите настройки TLS: | 2. Обновите настройки TLS: | ||
− | < | + | <pre>smtpd_use_tls = yes</pre> |
− | < | + | <pre>smtpd_tls_cert_file = /etc/ssl/certs/mail.example.com.crt</pre> |
− | < | + | <pre>smtpd_tls_key_file = /etc/ssl/private/mail.example.com.key</pre> |
− | < | + | <pre>smtpd_tls_security_level = may</pre> |
− | < | + | <pre>smtp_tls_security_level = may</pre> |
− | < | + | <pre>smtpd_tls_protocols = !SSLv2, !SSLv3</pre> |
− | < | + | <pre>smtpd_tls_ciphers = high</pre> |
=== Настройка SSL в Dovecot === | === Настройка SSL в Dovecot === | ||
1. Отредактируйте конфигурацию: | 1. Отредактируйте конфигурацию: | ||
− | < | + | <pre>sudo nano /etc/dovecot/conf.d/10-ssl.conf</pre> |
2. Настройте SSL: | 2. Настройте SSL: | ||
− | < | + | <pre>ssl = yes |
ssl_cert = </etc/ssl/certs/mail.example.com.crt | ssl_cert = </etc/ssl/certs/mail.example.com.crt | ||
ssl_key = </etc/ssl/private/mail.example.com.key | ssl_key = </etc/ssl/private/mail.example.com.key | ||
ssl_protocols = !SSLv2 !SSLv3 | ssl_protocols = !SSLv2 !SSLv3 | ||
− | ssl_cipher_list = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384</ | + | ssl_cipher_list = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384</pre> |
− | == 8. Настройка файрвола | + | == 8. Настройка файрвола == |
=== Настройка UFW === | === Настройка UFW === | ||
1. Разрешите почтовые порты: | 1. Разрешите почтовые порты: | ||
− | < | + | <pre>sudo ufw allow 25/tcp</pre> |
− | < | + | <pre>sudo ufw allow 587/tcp</pre> |
− | < | + | <pre>sudo ufw allow 465/tcp</pre> |
− | < | + | <pre>sudo ufw allow 993/tcp</pre> |
− | < | + | <pre>sudo ufw allow 995/tcp</pre> |
− | < | + | <pre>sudo ufw allow 143/tcp</pre> |
− | < | + | <pre>sudo ufw allow 110/tcp</pre> |
2. Проверьте статус: | 2. Проверьте статус: | ||
− | < | + | <pre>sudo ufw status</pre> |
=== Настройка iptables === | === Настройка iptables === | ||
1. Разрешите почтовые порты: | 1. Разрешите почтовые порты: | ||
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 587 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 465 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 993 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 995 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 143 -j ACCEPT</pre> |
− | < | + | <pre>sudo iptables -A INPUT -p tcp --dport 110 -j ACCEPT</pre> |
2. Сохраните правила: | 2. Сохраните правила: | ||
− | < | + | <pre>sudo iptables-save > /etc/iptables/rules.v4</pre> |
− | == 9. Управление Postfix | + | == 9. Управление Postfix == |
=== Основные команды управления === | === Основные команды управления === | ||
* '''Запуск Postfix''': | * '''Запуск Postfix''': | ||
− | < | + | <pre>sudo systemctl start postfix</pre> |
* '''Остановка Postfix''': | * '''Остановка Postfix''': | ||
− | < | + | <pre>sudo systemctl stop postfix</pre> |
* '''Перезапуск Postfix''': | * '''Перезапуск Postfix''': | ||
− | < | + | <pre>sudo systemctl restart postfix</pre> |
* '''Проверка статуса''': | * '''Проверка статуса''': | ||
− | < | + | <pre>sudo systemctl status postfix</pre> |
* '''Проверка конфигурации''': | * '''Проверка конфигурации''': | ||
− | < | + | <pre>sudo postfix check</pre> |
* '''Перезагрузка конфигурации''': | * '''Перезагрузка конфигурации''': | ||
− | < | + | <pre>sudo postfix reload</pre> |
=== Управление очередью почты === | === Управление очередью почты === | ||
1. Просмотрите очередь: | 1. Просмотрите очередь: | ||
− | < | + | <pre>sudo postqueue -p</pre> |
2. Очистите очередь: | 2. Очистите очередь: | ||
− | < | + | <pre>sudo postqueue -f</pre> |
3. Удалите все письма из очереди: | 3. Удалите все письма из очереди: | ||
− | < | + | <pre>sudo postsuper -d ALL</pre> |
4. Удалите письма старше определенного времени: | 4. Удалите письма старше определенного времени: | ||
− | < | + | <pre>sudo postsuper -d ALL deferred</pre> |
− | == 10. Мониторинг и логирование | + | == 10. Мониторинг и логирование == |
=== Настройка логирования === | === Настройка логирования === | ||
1. Отредактируйте конфигурацию логирования: | 1. Отредактируйте конфигурацию логирования: | ||
− | < | + | <pre>sudo nano /etc/rsyslog.d/50-default.conf</pre> |
2. Добавьте настройки для Postfix: | 2. Добавьте настройки для Postfix: | ||
− | < | + | <pre>mail.* -/var/log/mail.log</pre> |
− | < | + | <pre>mail.err -/var/log/mail.err</pre> |
3. Перезапустите rsyslog: | 3. Перезапустите rsyslog: | ||
− | < | + | <pre>sudo systemctl restart rsyslog</pre> |
=== Просмотр логов === | === Просмотр логов === | ||
1. Просмотрите логи Postfix: | 1. Просмотрите логи Postfix: | ||
− | < | + | <pre>sudo tail -f /var/log/mail.log</pre> |
2. Просмотрите логи Dovecot: | 2. Просмотрите логи Dovecot: | ||
− | < | + | <pre>sudo tail -f /var/log/dovecot.log</pre> |
3. Просмотрите системные логи: | 3. Просмотрите системные логи: | ||
− | < | + | <pre>sudo journalctl -u postfix -f</pre> |
− | < | + | <pre>sudo journalctl -u dovecot -f</pre> |
=== Создание скрипта мониторинга === | === Создание скрипта мониторинга === | ||
1. Создайте скрипт мониторинга: | 1. Создайте скрипт мониторинга: | ||
− | < | + | <pre>sudo nano /usr/local/bin/mail-monitor.sh</pre> |
2. Добавьте содержимое: | 2. Добавьте содержимое: | ||
− | < | + | <pre>if systemctl is-active --quiet postfix; then</pre> |
− | < | + | <pre>echo "Postfix is running"</pre> |
− | < | + | <pre>else</pre> |
− | < | + | <pre>echo "Postfix is not running"</pre> |
− | < | + | <pre>echo "Postfix is down" | mail -s "Mail Server Alert" admin@example.com</pre> |
− | < | + | <pre>fi</pre> |
− | < | + | <pre>if systemctl is-active --quiet dovecot; then</pre> |
− | < | + | <pre>echo "Dovecot is running"</pre> |
− | < | + | <pre>else</pre> |
− | < | + | <pre>echo "Dovecot is not running"</pre> |
− | < | + | <pre>echo "Dovecot is down" | mail -s "Mail Server Alert" admin@example.com</pre> |
− | < | + | <pre>fi</pre> |
− | < | + | <pre>QUEUE_SIZE=$(sudo postqueue -p | grep -c "^[A-F0-9]")</pre> |
− | < | + | <pre>if [ $QUEUE_SIZE -gt 100 ]; then</pre> |
− | < | + | <pre>echo "ALERT: Large mail queue: $QUEUE_SIZE messages" | mail -s "Mail Queue Alert" admin@example.com</pre> |
− | < | + | <pre>fi</pre> |
3. Сделайте скрипт исполняемым: | 3. Сделайте скрипт исполняемым: | ||
− | < | + | <pre>sudo chmod +x /usr/local/bin/mail-monitor.sh</pre> |
− | == 11. Устранение неполадок | + | == 11. Устранение неполадок == |
=== Частые проблемы === | === Частые проблемы === | ||
1. '''Postfix не запускается''': | 1. '''Postfix не запускается''': | ||
− | * Проверьте конфигурацию: < | + | * Проверьте конфигурацию: <pre>sudo postfix check</pre> |
− | * Проверьте логи: < | + | * Проверьте логи: <pre>sudo journalctl -u postfix</pre> |
− | * Проверьте порты: < | + | * Проверьте порты: <pre>sudo netstat -tlnp | grep :25</pre> |
2. '''Письма не отправляются''': | 2. '''Письма не отправляются''': | ||
Строка 351: | Строка 351: | ||
1. Проверьте статус служб: | 1. Проверьте статус служб: | ||
− | < | + | <pre>sudo systemctl status postfix</pre> |
− | < | + | <pre>sudo systemctl status dovecot</pre> |
2. Проверьте конфигурацию: | 2. Проверьте конфигурацию: | ||
− | < | + | <pre>sudo postfix check</pre> |
− | < | + | <pre>sudo doveconf -n</pre> |
3. Проверьте подключения: | 3. Проверьте подключения: | ||
− | < | + | <pre>sudo netstat -tlnp | grep -E ':(25|587|465|993|995|143|110)'</pre> |
4. Проверьте DNS записи: | 4. Проверьте DNS записи: | ||
− | < | + | <pre>dig MX example.com</pre> |
− | < | + | <pre>dig A mail.example.com</pre> |
− | == 12. Дополнительные настройки | + | == 12. Дополнительные настройки == |
=== Настройка антиспама === | === Настройка антиспама === | ||
1. Установите SpamAssassin: | 1. Установите SpamAssassin: | ||
− | < | + | <pre>sudo apt install spamassassin spamc</pre> |
2. Настройте Postfix для использования SpamAssassin: | 2. Настройте Postfix для использования SpamAssassin: | ||
− | < | + | <pre>sudo nano /etc/postfix/master.cf</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>spamassassin unix - n n - - pipe</pre> |
− | < | + | <pre>user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}</pre> |
=== Настройка антивируса === | === Настройка антивируса === | ||
1. Установите ClamAV: | 1. Установите ClamAV: | ||
− | < | + | <pre>sudo apt install clamav clamav-daemon</pre> |
2. Настройте Postfix для использования ClamAV: | 2. Настройте Postfix для использования ClamAV: | ||
− | < | + | <pre>sudo nano /etc/postfix/master.cf</pre> |
3. Добавьте настройки: | 3. Добавьте настройки: | ||
− | < | + | <pre>clamav unix - n n - - pipe</pre> |
− | < | + | <pre>user=clamav argv=/usr/bin/clamdscan --stdout --no-summary -i</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:38, 15 октября 2025
Содержание
- 1 Настройка почтового сервера (Postfix)
- 1.1 1. Подготовка системы
- 1.2 2. Установка Postfix
- 1.3 3. Базовая настройка Postfix
- 1.4 4. Настройка аутентификации
- 1.5 5. Настройка пользователей
- 1.6 6. Настройка Dovecot
- 1.7 7. Настройка SSL/TLS
- 1.8 8. Настройка файрвола
- 1.9 9. Управление Postfix
- 1.10 10. Мониторинг и логирование
- 1.11 11. Устранение неполадок
- 1.12 12. Дополнительные настройки
- 1.13 Заключение
Настройка почтового сервера (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):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных почтовых серверов
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой почтового сервера и обеспечением безопасности вашей почты!