<link href = "// fonts.googleapis.com/css?family=Roboto+Slab:700%7CRoboto:700%7CRoboto:normal" rel = "stylesheet">

Nastavení a konfigurace poštovního serveru s PostfixAdmin

V tomto článku vám ukážeme, jak nastavit a konfigurovat poštovní server s příponami Postfix, Dovecot, Spamassassin, SQLite a PostfixAdmin na Ubuntu 16.04 VPS s Nginx a PHP 7.0. Tato příručka by měla fungovat i na jiných systémech Linux VPS, ale byla testována a napsána na Ubuntu 16.04 VPS.

Přihlaste se do svého VPS přes SSH

ssh my_sudo_user @ my_server

Aktualizujte systém a nainstalujte potřebné balíčky

sudo apt-get aktualizace && sudo apt-get -y upgrade sudo apt-get -y instalace wget nano dbconfig-common sqlite3

Vytvořte uživatele systému

Z bezpečnostních důvodů vytvoříme nového uživatele systému, který bude vlastníkem všech poštovních schránek.

sudo useradd -r -u 150 -g mail -d / var / vmail -s / sbin / nologin -c "Uživatel virtuální pošty" vmail sudo mkdir -p / var / vmail sudo chmod -R 770 / var / R vmail: mail / var / vmail

Nainstalujte PHP 7.0 a všechny potřebné PHP moduly

Pokud na svém serveru nemáte nainstalovaný PHP, můžete nainstalovat nejnovější stabilní verzi PHP 7.0 a všechny potřebné moduly pomocí následujícího příkazu:

sudo apt-get -y nainstalovat php-fpm php-cli php7.0-mbstring php7.0-imap php7.0-sqlite3

Nginx nainstalujte a nakonfigurujte

Pokud na svém počítači nemáte nainstalovaný webový server, nainstalujte Nginx z oficiálních repozitářů Ubuntu:

sudo apt-get -y nainstalovat nginx

Vytvořte nový blok serveru Nginx s následujícím obsahem:

sudo nano /etc/nginx/sites-available/postfixadmin.your_domain.com
server {poslech 80; název_serveru postfixadmin.your_domain.com; návrat 301 https: // $ název_serveru $ request_uri; } server {poslech 443 ssl; název_serveru postfixadmin.your_domain.com; root / var / www / postfixadmin-3.0; index index.php; charset utf-8; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_protocols TLSv1.2; ssl_ciphers "EECDH + ECDSA + AESGCM: EECDH + aRSA + AESGCM:! aNULL:! eNULL:! LOW:! 3DES:! MD5:! EXP:! PSK:! SRP:! DSS:! RC4"; ssl_prefer_server_ciphers on; sdílená ssl_session_cache: SSL: 10m; ssl_session_timeout 10m; ssl_ecdh_curve secp521r1; umístění / {try_files $ uri $ uri / index.php; } umístění ~ * .php $ {fastcgi_split_path_info ^ (. + .php) (/.+) $; patří fastcgi_params; fastcgi_pass unix: /run/php/php7.0-fpm.sock; fastcgi_index index.php; patří fastcgi_params; fastcgi_param SCRIPT_FILENAME $ dokument_root $ fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; }}

Aktivujte blok serveru vytvořením symbolického odkazu:

sudo ln -s /etc/nginx/sites-available/postfixadmin.your_domain.com /etc/nginx/sites-enabled/postfixadmin.your_domain.com

Otestujte konfiguraci Nginx a restartujte nginx:

sudo nginx -t sudo služba nginx restart

PostfixAdmin

PostfixAdmin je webový frontend založený na PHP, který umožňuje spravovat databázi, kterou postfix používá pro virtuální domény a uživatele. Nejnovější verze aplikace PostfixAdmin, verze 3, podporuje databázi MySQL PostgreSQL a SQLite. V této příručce použijeme druhou.
Stáhněte archív aplikace PostfixAdmin ze souboru SourceForge a extrahujte jej do adresáře / var / www:

wget -q -O - "http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0/postfixadmin-3.0.tar.gz" | sudo tar - xzf - C / var / www

Otevřete konfigurační soubor pošty a upravte následující hodnoty:

sudo nano /var/www/postfixadmin-3.0/config.inc.php
$ CONF ['nastaveno'] = true; $ CONF ['database_type'] = 'sqlite'; $ CONF ['název_databáze'] = '/var/vmail/postfixadmin.db'; // $ CONF ['database_host'] = 'Localhost'; // $ CONF ['database_user'] = 'postfix'; $ CONF ['database_password'] = 'postfixadmin'; // $ CONF ['název_databáze'] = 'postfix'; $ CONF ['domain_path'] = 'NE'; $ CONF ['domain_in_mailbox'] = 'ANO';
sudo chown -R www-data: / var / www / postfixadmin-3.0

Vytvořit databázi SQLite:

sudo dotykový /var/vmail/postfixadmin.db sudo chown vmail: mail /var/vmail/postfixadmin.db sudo usermod -a -G pošta www-data

K naplnění databáze přejděte https://postfixadmin.your_domain.com/setup.php a měli byste vidět něco podobného níže:
Testování připojení k databázi - OK - sqlite: //: xxxxx@//var/vmail/postfixadmin.db

Vytvořte nového administrátora:

bash / var / www / postfixadmin-3.0 / skripty / postfixadmin-cli admin přidat admin@your_domain.com --password silný_password --password2 silný_password --superadmin 1 - aktivní 1

Nainstalujte a konfigurujte postfix

Nainstalujte postfix příkazem:

sudo apt-get nainstalovat postfix

Vytvořte následující soubory:

 sudo nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT goto FROM alias WHERE adresa = '% s' AND active = '1'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT goto Z aliasu, alias_domain WHERE alias_domain.alias_domain = '% d' a alias.address = printf ('% u', '@, alias_domain.target_domain) A alias. active = 1 a alias_domain.active = '1'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT goto Z aliasu, alias_domain WHERE alias_domain.alias_domain = '% d' a alias.address = printf ('@', alias_domain.target_domain) A alias.active = 1 AND alias_domain .active = '1'
 sudo nano /etc/postfix/sqlite_virtual_domains_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT domain z domény WHERE domain = '% s' AND active = '1'
 sudo nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT maildir FROM poštovní schránka WHERE username = '% s' AND active = '1'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db dotaz = SELECT maildir FROM poštovní schránka alias_domain WHERE alias_domain.alias_domain = '% d' a mailbox.username = printf ('% u', '@', alias_domain.target_domain) A poštovní schránka. active = 1 a alias_domain.active = '1'

Upravit main.cf Soubor:

postconf -e "myhostname = $ (název hostitele -A)" postconf -e "virtual_mailbox_domains = sqlite: /etc/postfix/sqlite_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = sqlite: /etc/postfix/sqlite_virtual_alias_maps.cf, sqlite: etc / postfix / sqlite_virtual_alias_domain_maps.cf, sqlite: /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf "postconf -e" virtual_mailbox_maps = sqlite: /etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite: /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf "postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem" postconf -e "smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key" postconf -e "smtpd_use_tls = ano" postconf -e "smtpd_tls_auth_only = ano" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = soukromá / auth" postconf -e "smtpd_sasl_auth_enable = ano" postconf -e "smtpd_recipient_restrictions = povolení_sasl_authenticated, permission_mynetworks, "str Ostconf -e "mynetworks = 127.0.0.0 / 8" postconf -e "inet_protocols = ipv4" postconf -e "virtuální_transport = lmtp: unix: private / dovecot-lmtp"

Otevřete master.cf soubor, najděte podání inet n a smtps inet n a upravte následovně:

sudo nano /etc/postfix/master.cf
smtpd inet n - y - - smtpd #smtp inet n - y - 1 postskript #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - - smtpd -o syslog_name = postfix / odevzdání -o smtpd_tls_security_level = šifrování -o smtpd_sasl_auth_enable = yes # -o smtpd_reject_unlisted_recipient = no -o smtpd_client_restrictions = permit_sasl_authenticated, odmítnout # -o smtpd_helo_restrictions = $ mua_helo_restrictions # -o smtpd_sender_restrictions = $ mua_sender_restrictions # -o smtpd_recipient_restrictions = # -o smtpd_relay_restrictions = allow_sasl_authenticated, odmítnout -o milter_macro_daemon_name = ORIGINACE smtps inet n - y - - smtpd -o syslog_name = postfix / smtps # -o smtpd_tls_wrappermode = ano -o smtpd_sasl_auth_enable = ano # -o smtpd_reject_unlisted_recipient = no -o smtpd_client_restrictions = allow_sasl_authenticated, odmítnout # -o smtpd_helo_restrictions = $ mua_helo_restrictions # -o smtpd_sender_restrictions = $ mua_sender_restrictions # -o smtpd_recipient_restrict ióny = # -o smtpd_relay_restrictions = allow_sasl_authenticated, odmítnout -o milter_macro_daemon_name = ORIGINACE

Povolte a restartujte službu postfix

systemctl povolit postfix systemctl restartovat postfix

Nainstalujte a konfigurujte Dovecot

Nainstalujte dovecot s podporou sqlite pomocí příkazu níže:

sudo apt-get nainstalovat dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-sqlite

Otevřete /etc/dovecot/conf.d/10-mail.conf souboru a změňte následující hodnoty:

mail_location = maildir: / var / vmail /% d /% n mail_privileged_group = pošta mail_uid = vmail mail_gid = pošta first_valid_uid = 150 last_valid_uid = 150

Otevřete /etc/dovecot/conf.d/10-auth.conf souboru a změňte následující hodnoty:

auth_mechanisms = jednoduché přihlášení #! include auth-system.conf.ext! include auth-sql.conf.ext

Vytvoř nový dovecot-sql.conf.ext Soubor:

sudo nano /etc/dovecot/dovecot-sql.conf.ext
ovladač = sqlite connect = /var/vmail/postfixadmin.db default_pass_scheme = MD5-CRYPT heslo_query = Zvolit uživatelské jméno jako uživatel, heslo '/ var / vmail /% d /% n' jako userdb_home, % d /% n 'jako userdb_mail, 150 jako userdb_uid, 8 jako userdb_gid Z poštovní schránky WHERE username ='% u 'AND active =' 1 'user_query = SELECT' / var / maildir: / var / vmail /% d /% n 'jako pošta, 150 AS uid, 8 AS gid, printf (' dirsize: 1 '

v /etc/dovecot/conf.d/10-ssl.conf soubor povolit SSL podporu:

ssl = ano

.

Otevřete /etc/dovecot/conf.d/15-lda.conf soubor a nastavte postmaster_address emailová adresa.

postmaster_address = postmaster@vps.your_domain.com

Otevřete /etc/dovecot/conf.d/10-master.conf soubor, vyhledejte sekci služby lmtp a změňte ji na:

služba lmtp {unix_listener / var / spool / postfix / private / dovecot-lmtp {režim = 0600 user = postfix group = postfix}}

vyhledejte sekci služby auth a změňte ji na:

service auth {unix_listener / var / spool / postfix / private / auth {mode = 0666 user = postfix group = postfix} unix_listener auth-userdb {mode = 0600 user =

Změnit část služby auth-worker na následující:

služba auth-worker {user = vmail}

Nastavte oprávnění:

chown -R vmail: dovecot / etc / dovecot chmod -Ro-rwx / etc / dovecot

Povolte a restartujte službu dovecot

systemctl povolit dovecot systemctl restart dovecot 

SpamAssassin

SpamAssassin je nástroj open source napsaný v Perlu, který pomáhá filtrovat nežádoucí zprávy. Pokud chcete povolit a konfigurovat program SpamAssassin, pokračujte v následujících krocích.
Chcete-li nainstalovat SpamAssassin, spusťte:

sudo apt-get instalovat spamassassin sudo adduser spamd -disabled-login

Otevřete / etc / default / spamassassin soubor a proveďte následující změny:

ENABLED = 1 OPTIONS = "- create-prefs - max-děti 5 -d 127.0.0.1 --paměti spamd --helper-home -dir / home / spamd / -s /home/spamd/spamd.log" PIDFILE = /home/spamd/spamd.pid "CRON = 1

Chcete-li integrovat SpamAssassin s Postfixem, připojte následující příkaz na konci /etc/postfix/master.cf Soubor:

smtp inet n - - - - smtpd -o obsah_filter = spamassassin spamassassin unix - nn - - potrubí user = nikdo argv = / usr / bin / spamc -f -e / usr / sbin / sendmail -i -f $ {odesílatel $ $ {příjemce}

Povolte a restartujte službu spamassassin

systemactl povolit spamassassin systemactl restartovat spamassassin systemctl restartovat postfix

Pokud je vše správně nastaveno, měli byste se přihlásit k zadávacímu systému PostfixAdmin https://postfixadmin.your_domain.com/ a vytvořte svou první virtuální doménu a poštovní schránku.

Zdroj

Napsat komentář