Opsætning og konfiguration af en mailserver med PostfixAdmin

I denne artikel vil vi vise dig, hvordan du opsætter og konfigurerer en postserver med Postfix, Dovecot, Spamassassin, SQLite og PostfixAdmin på en Ubuntu 16.04 VPS med Nginx og PHP 7.0. Denne vejledning skal også fungere på andre Linux VPS-systemer, men blev testet og skrevet til en Ubuntu 16.04 VPS.

Log ind på din VPS via SSH

ssh [Email protected]_server

Opdater systemet og installer nødvendige pakker

sudo apt-get-opdatering && sudo apt-get -y-opgradering sudo apt-get -y installere wget nano dbconfig-common sqlite3

Opret systembruger

Af sikkerhedsmæssige grunde vil vi oprette en ny systembruger, som vil være ejer af alle postkasser.

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

Installer PHP 7.0 og alle nødvendige PHP-moduler

Hvis du ikke har PHP installeret på din server, kan du installere den nyeste stabile version af PHP 7.0 og alle nødvendige moduler med følgende kommando:

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

Installer og konfigurer Nginx

Hvis du ikke har en webserver installeret på din maskine, skal du installere Nginx fra de officielle Ubuntu-arkiver:

sudo apt-get -y installer nginx

Opret en ny Nginx-serverblok med følgende indhold:

sudo nano /etc/nginx/sites-available/postfixadmin.your_domain.com
server {lyt 80; servernavn postfixadmin.your_domain.com; return 301 https: // $ servernavn $ request_uri; } server {lyt 443 ssl; servernavn postfixadmin.your_domain.com; root / var / www / postfixadmin-3.0; indeks indeks.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 tændt; ssl_session_cache delt: SSL: 10m; ssl_session_timeout 10m; ssl_ecdh_curve secp521r1; placering / {try_files $ uri $ uri / index.php; } placering ~ * .php $ {fastcgi_split_path_info ^ (. +. php) (/.+) $; inkluderer fastcgi_params; fastcgi_pass unix: /run/php/php7.0-fpm.sock; fastcgi_index index.php; inkluderer fastcgi_params; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; }}

Aktivér serverblokken ved at oprette et symbolsk link:

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

Test Nginx-konfigurationen og genstart nginx:

sudo nginx -t sudo service nginx genstart

postfixadmin

PostfixAdmin er en PHP-baseret webfrontend, som gør det muligt at styre den database, som postfix bruger til virtuelle domæner og brugere. Den nyeste version af PostfixAdmin, version 3, understøtter MySQL PostgreSQL og SQLite-databaser. I denne vejledning bruger vi sidstnævnte.
Download PostfixAdmin-arkivet fra SourceForge og udpak det i / var / www / directory:

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

Åbn mailkonfigurationsfilen og rediger følgende værdier:

sudo nano /var/www/postfixadmin-3.0/config.inc.php
$ CONF ['configured'] = true; $ CONF ['database_type'] = 'sqlite'; $ CONF ['database_name'] = '/var/vmail/postfixadmin.db'; // $ CONF ['database_host'] = 'localhost'; // $ CONF ['database_user'] = 'postfix'; // $ CONF ['database_password'] = 'postfixadmin'; // $ CONF ['database_name'] = 'postfix'; $ CONF ['domain_path'] = 'NEJ'; $ CONF ['domain_in_mailbox'] = 'JA';
sudo chown -R www-data: / var / www / postfixadmin-3.0

Opret SQLite-databasen:

sudo touch /var/vmail/postfixadmin.db sudo chown vmail: mail /var/vmail/postfixadmin.db sudo usermod -a -G mail www-data

For at udfylde databasen, gå til https://postfixadmin.your_domain.com/setup.php og du bør se noget som nedenfor:
Test af databaseforbindelse - OK - sqlite: //: [ emailbeskyttet ] //var/vmail/postfixadmin.db

Opret en ny admin bruger:

bash / var / www / postfixadmin-3.0 / scripts / postfixadmin-cli admin tilføj [Email protected]_domæne.com --pasord strong_password --password2 strong_password --superadmin 1 - aktiv 1

Installer og konfigurer postfix

Installer postfix med kommandoen bellow:

sudo apt-get install postfix

Opret følgende filer:

 sudo nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath = /var/vmail/postfixadmin.db query = VÆLG goto FROM alias hvor adresse = '% s' og aktiv = 'xnumx'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath = /var/vmail/postfixadmin.db forespørgsel = VÆLG goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = printf ('% u', '@', alias_domain.target_domain) OG alias. active = 1 AND alias_domain.active = '1'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf
dbpath = /var/vmail/postfixadmin.db forespørgsel = VÆLG goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = printf ('@', alias_domain.target_domain) OG alias.active = 1 AND aliasdomæne .active = '1'
 sudo nano /etc/postfix/sqlite_virtual_domains_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT domæne FRA domæne WHERE domain = '% s' og aktiv = '1'
 sudo nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db query = VÆLG maildir FRA postkasse WHERE brugernavn = '% s' og aktiv = '1'
 sudo nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db forespørgsel = VÆLG maildir FRA mailbox, alias_domain WHERE alias_domain.alias_domain = '% d' og mailbox.usname = printf ('% u', '@', alias_domain.target_domain) OG mailbox. active = 1 AND alias_domain.active = '1'

Rediger main.cf fil:

postconf -e "myhostname = $ (hostname -A)" postconf -e "virtual_mailbox_domains = sqlite: /etc/postfix/sqlite_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = sqlite: /etc/postfix/sual_site: sqlite_site: 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_uset "smtpd_tls_auth_only = ja" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = privat / autoritativ" "s ostconf -e "mynetworks = 127.0.0.0 / 8" postconf -e "inet_protocols = ipv4" postconf -e "virtual_transport = lmtp: unix: private / dovecot-lmtp"

Åbne master.cf fil, find indsendelse inet n og smtps inet n sektioner og rediger som følger:

sudo nano /etc/postfix/master.cf
smtp inet n - y - - smtpd #smtp inet n - y - 1 postscreen #smtpd pass - - y - - smtpd #dnsblog unix - - y - 0 dnsblog #tlsproxy unix - - y - 0 tlsproxy indsendelse inet n - y - - smtpd -o syslog_name = postfix / indsendelse -o smtpd_tls_security_level = kryptere -o smtpd_sasl_auth_enable = ja # -o smtpd_reject_unlisted_recipient = ingen -o smtpd_client_restrictions = permit_sasl_authenticated, afviser # -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, afvise -o milter_macro_daemon_name = ORIGINATING smtps inet n - y - - smtpd -o syslog_name = postfix / smtps # -o smtpd_tls_wrappermode = ja_as_dm permit_sasl_authenticated, afvis # -o smtpd_helo_restrictions = $ mua_helo_restrictions # -o smtpd_sender_restrictions = $ mua_sender_restrictions # -o smtpd_recipient_restrict ioner = # -o smtpd_relay_restrictions = permit_sasl_authenticated, afvis -o milter_macro_daemon_name = ORIGINATING

Aktivér og genstart postfix-tjenesten

systemctl enable postfix systemctl genstart postfix

Installer og konfigurer Dovecot

Installer dovecot med sqlite support ved hjælp af kommandoen bellow:

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

Åbne /etc/dovecot/conf.d/10-mail.conf fil og ændre følgende værdier:

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

Åbne /etc/dovecot/conf.d/10-auth.conf fil og ændre følgende værdier:

auth_mechanisms = almindelig login #! inkludere auth-system.conf.ext! inkludere auth-sql.conf.ext

Opret en ny dovecot-sql.conf.ext fil:

sudo nano /etc/dovecot/dovecot-sql.conf.ext
driver = sqlite connect = /var/vmail/postfixadmin.db default_pass_scheme = MD5-CRYPT password_query = VÆLG brugernavn som bruger, adgangskode, '/ var / vmail /% d /% n' som userdb_home, 'maildir: / var / vmail / % d /% n 'som userdb_mail, 150 som userdb_uid, 8 som userdb_gid FRA postkasse HVOR brugernavn ='% u 'OG aktiv =' 1 'user_query = VÆLG' / var / vmail /% d /% n 'som hjemme,' maildir: / var / vmail /% d /% n 'som mail, 150 AS uid, 8 AS gid, printf (' dirsize: storage = ', kvote) AS kvote FRA postkasse HVOR brugernavn ='% u 'OG aktiv =' 1'

i /etc/dovecot/conf.d/10-ssl.conf fil aktivere SSL-understøttelse:

ssl = ja

.

Åbne /etc/dovecot/conf.d/15-lda.conf fil og indstil postmaster_address email adresse.

postmaster_address = [Email protected]_domain.com

Åbne /etc/dovecot/conf.d/10-master.conf fil, find tjenesten lmtp sektion og skift den til:

service lmtp {unix_listener / var / spool / postfix / privat / dovecot-lmtp {mode = 0600 bruger = postfix gruppe = postfix}}

find tjenesten auth sektion og ændre det til:

service auth {unix_listener / var / spool / postfix / privat / auth {mode = 0666 bruger = postfix gruppe = postfix} unix_listener auth-userdb {mode = 0600 bruger = vmail #group = vmail} user = dovecot}

Skift afsnittet Service Auth-Worker til følgende:

service auth-worker {user = vmail}

Indstil tilladelserne:

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

Aktivér og genstart dovecot-tjenesten

systemtl enable dovecot systemctl genstart dovecot 

SpamAssassin

SpamAssassin er et open source-værktøj skrevet i Perl, som hjælper med at filtrere uønskede meddelelser. Hvis du vil aktivere og konfigurere SpamAssassin, skal du fortsætte med følgende trin.
For at installere SpamAssassin skal du køre:

sudo apt-get install spamassassin sudo adduser spamd - deaktiveret-login

Åbne / Etc / default / SpamAssassin fil og foretag følgende ændringer:

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

For at integrere SpamAssassin med Postfix skal du tilføje følgende i slutningen af /etc/postfix/master.cf fil:

smtp inet n - - - - smtpd -o content_filter = spamassassin spamassassin unix - nn - - pipe user = ingen argv = / usr / bin / spamc -f -e / usr / sbin / sendmail -oi -f $ {afsender} $ {modtager}

Aktivér og genstart spamassassin-tjenesten

systemctl aktivere spamassassin systemctl genstart spamassassin systemctl genstart postfix

Hvis alt er konfigureret korrekt, skal du være i stand til at logge ind på din BackfixAdmin back-end ved at gå til https://postfixadmin.your_domain.com/ og opret dit første virtuelle domæne og postkasse.

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.