No name
Links
947 | 2022-08-12 09:27:29 |
$sudo apt install apache2 mariadb-server php-{xml,pear,imap,intl,common,json,curl,mbstring,mysql,gd,imagick,zip,opcache,sqlite3} libapache2-mod-php
$ sudo useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail
$ sudo mkdir -p /var/vmail$ sudo chmod -R 770 /var/vmail$ sudo chown -R vmail:mail /var/vmail
$ mysql -u root -pMariaDB [(none)]> CREATE DATABASE postfixadmin;MariaDB [(none)]> GRANT ALL PRIVILEGES ON postfixadmin.* TO 'postfixadmin'@'localhost' IDENTIFIED BY '5tr0n6p455w0rd';MariaDB [(none)]> FLUSH PRIVILEGES;MariaDB [(none)]> \q
$ sudo apt install postfix-mysql
$ sudo mkdir -p /etc/postfix/sql$ sudo nano /etc/postfix/sql/mysql_virtual_alias_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT goto FROM alias WHERE address='%s' AND active = '1'$ sudo nano /etc/postfix/sql/mysql_virtual_domains_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT domain FROM domain WHERE domain='%s' AND active = '1'$ sudo nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'$ sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'$ sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'$ sudo nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'$ sudo nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cfuser = postfixadminpassword = 5tr0n6p455w0rdhosts = localhostdbname = postfixadminquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
$ sudo postconf -e "myhostname = $(hostname -f)"UPD: нужно заменить $(hostname -f) на домен своей будущей почты, чтобы при настройке DKIM SFP и дальнейшей проверке не было проблем.$ sudo postconf -e "mydestination = localhost"$ sudo postconf -e "mynetworks = 127.0.0.0/8"ВАЖНО: вводить нужно свои подсети так как в противном случае сервер может стать ретранслятором спама, в следствии чего, домен окажется в спамбазах.$ sudo postconf -e "inet_protocols = ipv4"$ sudo postconf -e "inet_interfaces = all"$ sudo postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem"$ sudo postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key"Пути выше можно заменить на пути ваших сертификатов (купленных или созданных в Let's Encrypt)$ sudo postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key"$ sudo postconf -e "smtpd_tls_auth_only = yes"$ sudo postconf -e "smtpd_sasl_type = dovecot"$ sudo postconf -e "smtpd_sasl_path = private/auth"$ sudo postconf -e "smtpd_sasl_auth_enable = yes"$ sudo postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination"$ sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"$ sudo postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"$ sudo postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"$ sudo postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
$ sudo nano /etc/postfix/master.cfsmtp inet n - y - - smtpd#smtp inet n - y - 1 postscreen#smtpd pass - - y - - smtpd#dnsblog unix - - y - 0 dnsblog#tlsproxy unix - - y - 0 tlsproxysubmission inet n - y - - smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no# -o smtpd_client_restrictions=$mua_client_restrictions# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject-o smtpd_client_restrictions=permit_sasl_authenticated,reject-o milter_macro_daemon_name=ORIGINATINGsmtps inet n - y - - smtpd-o syslog_name=postfix/smtps# -o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no-o smtpd_client_restrictions=permit_sasl_authenticated,reject# -o smtpd_client_restrictions=$mua_client_restrictions# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject-o milter_macro_daemon_name=ORIGINATING
$ sudo apt install dovecot-mysql dovecot-imapd dovecot-lmtpd
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain > auth_mechanisms = plain login
Комментируем и снимаем комментирование
#!include auth-system.conf.ext!include auth-sql.conf.ext
$ sudo nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysqlconnect = host=localhost dbname=postfixadmin user=postfixadmin password=5tr0n6p455w0rddefault_pass_scheme = MD5-CRYPTpassword_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'user_query = SELECT '/var/vmail/%d/%u' as home, 'maildir:/var/vmail/%d/%u' as mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%nmail_uid = vmailmail_gid = mailmail_privileged_group = mailfirst_valid_uid = 150last_valid_uid = 150
$ sudo nano /etc/dovecot/conf.d/10-master.conf
service lmtp {unix_listener /var/spool/postfix/private/dovecot-lmtp {mode = 0600user = postfixgroup = postfix}}
service auth {unix_listener /var/spool/postfix/private/auth {mode = 0666user = postfixgroup = postfix}unix_listener auth-userdb {mode = 0600user = vmail}user = dovecot}service auth-worker {user = vmail}
$ sudo chown -R vmail:dovecot /etc/dovecot$ sudo chmod -R o-rwx /etc/dovecot$ sudo systemctl restart postfix dovecot
$ wget -q https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-${VERSION}/postfixadmin-${VERSION}.tar.gz$ tar xzf postfixadmin-${VERSION}.tar.gz$ sudo mv postfixadmin-${VERSION}/ /var/www/postfixadmin$ rm -f postfixadmin-${VERSION}.tar.gz$ mkdir /var/www/postfixadmin/templates_c$ sudo chown -R www-data: /var/www/postfixadmin
$ sudo nano /var/www/postfixadmin/config.local.php$CONF['database_type'] = 'mysqli';$CONF['database_host'] = 'localhost';$CONF['database_user'] = 'postfixadmin';$CONF['database_password'] = '5tr0n6p455w0rd';$CONF['database_name'] = 'postfixadmin';$CONF['configured'] = true;?>
$config['plugins'] = array();$config['smtp_server'] = 'tls://localhost';$config['smtp_user'] = '%u';$config['smtp_pass'] = '%p';$config['smtp_conn_options'] = ['ssl' => ['peer_name' => 'mail.example.com',// 'cafile' => '/etc/ssl/certs/ca-certificates.crt'],
https://baks.dev/article/ubuntu/set-up-a-mail-server-with-postfixadmin
2) Почтовый сервер из Postfix, Dovecot и MySQL
https://ixnfo.com/postfix-dovecot-mysql.html
3) How to Set Up a Mail Server with PostfixAdmin on Debian 11
https://www.rosehosting.com/blog/how-to-set-up-a-mail-server-with-postfixadmin-on-debian-11/
4) Установка и настройка Postfix в качестве сервера SMTP только для отправки в Ubuntu 18.04
5) Пошаговая инструкция установки Postfix и Dovecot на Ubuntu