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

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

Текущая версия на 10:38, 15 октября 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):

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