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