Установка и настройка почтового сервера на Ubuntu 22.04

1. Установка необходимых пакетов

sudo apt update && sudo apt upgrade -y
sudo apt install -y postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-lmtpd opendkim opendkim-tools opendmarc mailutils certbot python3-certbot-nginx

2. Настройка iptables для почтового сервера

Запустите предоставленный bash-скрипт для настройки iptables:

vim iptables_smtp_setup.sh

#!/bin/bash

# Disable UFW if it is enabled
if sudo ufw status | grep -q "active"; then
    echo "Disabling UFW..."
    sudo ufw disable
fi

# Update and install iptables and iptables-persistent
sudo apt update
sudo apt install -y iptables iptables-persistent

# Flush all existing iptables rules
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X

# Set default policies
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

# Allow local traffic
sudo iptables -I INPUT -i lo -j ACCEPT -m comment --comment 'Allowing local traffic'

# Allow established and related connections
sudo iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment 'Allowing established and related connections'

# Allow SMTP traffic
sudo iptables -A INPUT -p tcp --dport 25 -m comment --comment "Allow SMTP (port 25)" -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 465 -m comment --comment "Allow SMTPS (port 465)" -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 587 -m comment --comment "Allow Submission (port 587)" -j ACCEPT

# (Optional) Allow IMAP and POP3 for email retrieval
sudo iptables -A INPUT -p tcp --dport 993 -m comment --comment "Allow IMAPS (port 993)" -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 995 -m comment --comment "Allow POP3S (port 995)" -j ACCEPT

# Set default policies
sudo iptables -P INPUT DROP

# Save and reload rules
sudo iptables-save > /etc/iptables/rules.v4
sudo netfilter-persistent save
sudo netfilter-persistent reload

# Display current iptables rules
sudo iptables -L -v --line-numbers
sudo iptables -L INPUT --line-numbers
sudo iptables -L WHITELIST --line-numbers
sudo iptables -t nat -L --line-numbers
sudo iptables -S

echo "iptables rules configured for SMTP."


chmod +x iptables_smtp_setup.sh
sudo ./iptables_smtp_setup.sh

3. Установка и настройка Postfix

  1. Запустите установку Postfix и выберите тип конфигурации "Internet Site".
  2. Укажите доменное имя (например, example.com).

Редактирование конфигурационного файла Postfix

sudo nano /etc/postfix/main.cf

Добавьте или измените параметры:

smtpd_tls_cert_file=/etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_security_level=may
myhostname = mail.example.com
mydestination = $myhostname, localhost, localhost.localdomain
mynetworks = 127.0.0.0/8 [::1]/128
relayhost =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes

Перезапустите Postfix:

sudo systemctl restart postfix

4. Установка и настройка PostfixAdmin

sudo apt install -y postfixadmin

Настройте конфигурацию MySQL для PostfixAdmin и создайте базу данных.

5. Настройка веб-сервера (NGINX + PHP + MariaDB)

sudo apt install -y nginx php php-fpm php-mysql mariadb-server
sudo systemctl enable --now nginx php7.4-fpm mariadb

Настройте виртуальный хост для веб-интерфейса PostfixAdmin в Nginx.

6. Генерация SSL-сертификатов

sudo certbot --nginx -d mail.example.com

7. Тестирование и проверка работы почтового сервера

  • Проверьте доступность SMTP:
telnet mail.example.com 25
  • Проверьте запись MX в DNS.

После выполнения всех шагов ваш почтовый сервер будет готов к работе!