Установка и настройка почтового сервера на 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
- Запустите установку Postfix и выберите тип конфигурации "Internet Site".
- Укажите доменное имя (например,
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.
После выполнения всех шагов ваш почтовый сервер будет готов к работе!