Цель - запустить почтовый сервер со следующими возможностями:
В основном, отсюда
Установка:
dnf install postfix dovecot
Создание пользователя и хранилища виртуальных доменов и пользователей:
useradd -d /var/lib/vmail --uid 20000 --shell /sbin/nologin vmail
Изменить:
Разрешить внешние соединения:
inet_interfaces = all
Оставить только ipv4:
inet_protocols = ipv4
Если параметр просто закомментировать, виртуальные домены работать не будут, т.к. Postfix использует значение по умолчанию:
mydestination =
Хранилища виртуальных доменов и пользователей:
home_mailbox = /var/lib/vmail/%d/%n/Maildir
Добавить:
Обратная DNS запись для текущего внешнего реального IP адреса. Т.к. используется динамический адрес, то используется скрипт для замены обратного адреса в main.cf после смены IP. Данная опция необязательна:
rDNS = pat-31-128-130-116.pool.powernet.com.ru. smtpd_banner = $rDNS ESMTP
Включение TLS/SSL:
smtpd_use_tls = yes
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
Максимальный размер письма - 50 Мб:
message_size_limit = 51200000
Возможно, необязательные опции:
disable_vrfy_command = yes smtpd_helo_required = yes
Включение SMTP аутентификации через dovecot:
# SMTP-Auth settings smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject
Виртуальные домены, ящики и алиасы:
# Virtual domains & mailboxes
Перечень виртуальных доменов:
virtual_mailbox_domains = homeserver.ok kochkin.mooo.com kochkin.tk
Хранилища виртуальных доменов и пользователей:
virtual_mailbox_base = /var/lib/vmail
Файл алиасов почтовых ящиков:
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox
Файл алиасов доменов:
virtual_alias_maps = hash:/etc/postfix/virtual virtual_uid_maps = static:20000 virtual_gid_maps = static:20000
Раскоментировать:
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_sasl_auth_enable=yes
Добавить:
smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Основной домен: kochkin.tk, основной почтовый ящик: postmaster@kochkin.tk
# После правки, запустить: # postmap /etc/postfix/virtual # Алиасы для доменов @homeserver.ok @kochkin.tk @kochkin.mooo.com @kochkin.tk # Почту ко всем неизвестным @kochkin.tk postmaster@kochkin.tk
# create new # user mailbox postmaster@kochkin.tk kochkin.tk/postmaster/Maildir/ # После правки запустить: # postmap /etc/postfix/virtual-mailbox
#!/bin/bash
# Заменяет значение обратной DNS записи в конфигурации Postfix. Запускать после смены реального динамического IP.
CF=/etc/postfix/main.cf
Prev=$(postconf rDNS | cut -d" " -f3)
IP=$(curl --retry 10 --retry-delay 1 --retry-max-time 15 -s http://ifconfig.io)
if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];then
Current=$(dig +short -x $IP)
if [[ $Current != $Prev ]];then
cp $CF $CF-$(date +%y%m%d-%H%M%S)
echo "Change:"
postconf rDNS
sed -i "s/^rDNS = .*/rDNS = $Current/" $CF
systemctl reload postfix
echo "to:"
postconf rDNS
fi
fi
Устарело (конфиг версии 2.3.xx)
/etc/dovecot/conf.d/10-auth.conf:
Закомментировать:
# !include auth-system.conf.ext
Раскомментировать:
!include auth-passwdfile.conf.ext !include auth-static.conf.ext
/etc/dovecot/conf.d/10-mail.conf:
Изменить:
mail_location = maildir:/var/lib/vmail/%d/%n/Maildir
/etc/dovecot/conf.d/auth-static.conf.ext:
Раскомментировать и указать путь к доменам/ящикам:
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/lib/vmail/%d/%n
}
/etc/dovecot/dovecot.conf:
Раскомментировать и слушать только ipv4:
listen = *
Забудьте все предыдущие конфиги для dovecot. С версии 2.4 всё изменилось и несовместимо с предыдущими версиями.
# doveadm config
# 2.4.1-4 (7d8c0e5759): /etc/dovecot/dovecot.conf
# OS: Linux 6.17.8-300.fc43.x86_64 x86_64 Fedora release 43 (Forty Three)
# Hostname: homeserver.ok
dovecot_config_version = 2.4.1
dovecot_storage_version = 2.4.1
listen = *
mail_driver = maildir
mail_gid = vmail
mail_home = /var/lib/vmail/%{user|domain}/%{user|username}
mail_path = %{home}/Maildir
mail_uid = vmail
protocols {
imap = yes
lmtp = yes
pop3 = yes
}
ssl = required
ssl_cipher_list = PROFILE=SYSTEM
namespace inbox {
inbox = yes
separator = /
}
ssl_server {
cert_file = /etc/pki/dovecot/certs/dovecot.pem
key_file = /etc/pki/dovecot/private/dovecot.pem
}
passdb passwd-file {
passwd_file_path = /etc/dovecot/users
}
userdb static {
fields {
gid = vmail
uid = vmail
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
# create new
# user:password
# Шифрование пароля
# doveadm pw -p PASWWORD -s CRYPT
postmaster@kochkin.tk:{CRYPT}$k7IB4KsvOJPzZu4o2y$05$yAh5nnVVI8tOsBL5jVGgNbOtlmYTyH8Cg02U.
Запуск служб:
systemctl enable --now postfix dovecot
Сбор статистики:
dnf install postfix-perl-scripts pflogsumm -d yesterday /var/log/maillog
Создать MySQL базу «roundcube», пользователя «roundcube» с паролем «PASSWORD»:
mysql create database roundcube; grant all privileges on roundcube.* to roundcube@'localhost' identified by 'PASSWORD'; flush privileges; \q
Установить RoundCube из реп, инициализировать базу MySQL и использовать примерный конфиг:
dnf install roundcubemail mysql -u roundcube -D roundcube -p < /usr/share/roundcubemail/SQL/mysql.initial.sql cp -p /etc/roundcubemail/config.inc.php.sample /etc/roundcubemail/config.inc.php
В /etc/roundcubemail/config.inc.php изменить параметры подключения к MySQL базе:
$config['db_dsnw'] = 'mysql://roundcube:PASSWORD@localhost/roundcube';
Настройки WEB сервера в /etc/httpd/conf.d/roundcube.conf для доступа только из локалки 192.168.1.0/24:
Alias /mail /usr/share/roundcubemail <Directory /usr/share/roundcubemail/> Require ip 192.168.1.0/24 </Directory>
В основном, отсюда
POP3:
SMTP:
yum -y install certbot python-certbot-apache certbot --apache
Ввести адрес электронной почты.
Подтвердить условия использования.
Желаете-ли получать рассылку на указанный адрес.
Предоставляется выбор доменов, которые найдены в конфигурации httpd:
1: kochkin.tk 2: www.kochkin.tk 3: kochkin.mooo.com
Ввести номера через пробел или запятую, или ничего не вводить для выбора всех.
После чего будут получены сертификаты и в конфигурационные файлы httpd будут внесены измения для их использования. Также будет сделано перенаправление с http на https.
Для обновления сертификатов, включить системный таймер:
systemctl enable certbot-renew.timer
Просмотр сертификатов:
certbot certificates
Добавление домена к существующим:
certbot --expand -d kochkin.tk,kochkin.mooo.com,www.kochkin.tk,kochkin.us.to
Удаление доменов:
certbot delete
systemctl disable --now firewalld dnf remove firewalld* dnf install iptables-services ipset-service systemctl enable --now ipset && systemctl enable --now iptables
Чтобы правила IPSET автоматически сохранялись в /etc/sysconfig/ipset при перезапуске или останове службы IPSET, необходимо добавить в файл /etc/sysconfig/ipset-config переменные:
IPSET_SAVE_ON_STOP=yes IPSET_SAVE_ON_RESTART=yes
В файле /etc/samba/smb.conf :
[global]
netbios name = lin-01 # Имя машины
workgroup = workgroup # Рабочая группа
server string = lin-01 # Строка сервера
security = share # Безовасность (свободный доступ)
[share] # Название ресурса
path=/media/disk_d/share # Папка
writable = yes # Запись разрешена
guest ok = yes # Разрешён доступ гостю
dnf copr enable polter/far2l
Для графического окружения:
dnf install far2l
Для консоли:
dnf install far2l-tty
Одновременно друг с другом не живут.