Настройка почтового сервера (Postfix) — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Настройка почтового сервера (Postfix) = == 1. Подготовка системы == * Войдите в систему под уче…»)
 
Строка 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>
# SASL настройки
+
<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>
# TLS настройки
+
<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>
    driver = passwd
+
<code>passdb {</code>
}
+
<code>driver = pam</code>
passdb {
+
<code>}</code>
    driver = pam
 
}
 
</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>
# TLS настройки
+
<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>
# Postfix logging
+
<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>
#!/bin/bash
+
<code>echo "Postfix is running"</code>
 
+
<code>else</code>
# Проверка статуса Postfix
+
<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>
    echo "Postfix is running"
+
<code>fi</code>
else
+
<code>if systemctl is-active --quiet dovecot; then</code>
    echo "Postfix is not running"
+
<code>echo "Dovecot is running"</code>
    # Отправка уведомления
+
<code>else</code>
    echo "Postfix is down" | mail -s "Mail Server Alert" admin@example.com
+
<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>
# Проверка статуса Dovecot
+
<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>
    echo "Dovecot is running"
+
<code>echo "ALERT: Large mail queue: $QUEUE_SIZE messages" | mail -s "Mail Queue Alert" admin@example.com</code>
else
+
<code>fi</code>
    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
 
</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>
# SpamAssassin
+
<code>user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}</code>
spamassassin unix -    n      n      -      -      pipe
 
  user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
 
</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>
# ClamAV
+
<code>user=clamav argv=/usr/bin/clamdscan --stdout --no-summary -i</code>
clamav unix -    n      n      -      -      pipe
 
  user=clamav argv=/usr/bin/clamdscan --stdout --no-summary -i
 
</code>
 
  
 
== Заключение ==
 
== Заключение ==

Версия 20:00, 14 октября 2025

Содержание

Настройка почтового сервера (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):

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