Opsæt en mailserver med PostfixAdmin og MariaDB på CentOS 7

I denne vejledning forklarer vi, hvordan du opsætter og konfigurerer en mailserver med PostfixAdmin, Postfix, Dovecot, MariaDB og SpamAssasin på en CentOS VPS. PostfixAdmin er en PHP-baseret web-front-end, der giver dig mulighed for at administrere virtuelle domæner og brugere til et Postfix-posttransportmiddel. Denne vejledning skal også fungere på andre Linux VPS-systemer, men blev testet og skrevet til en CentOS 7 VPS.

Hvis du bruger en Ubuntu VPS, følg vores vejledning for at oprette en mail server med Postfix, Dovecot, Spamassassin, SQLite og PostfixAdmin på en Ubuntu 16.04 VPS

Hvis du vil bruge SQLite i stedet for MariaDB, skal du følge vores vejledning for at oprette en mailserver med Postfix, Dovecot, Spamassassin, SQLite og PostfixAdmin på en CentoOS 7 VPS

Opdater systemet og installer nødvendige pakker

yum opdatering && yum installere wget nano

Opret systembruger

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

useradd -r -u 150 -g mail -d / var / vmail -s / sbin / nologin -c "Virtual Mail-bruger" vmail mkdir -p / var / vmail chmod -R 770 / var / vmail chown -R vmail: mail / var / vmail

Installer MariaDB

MariaDB 5.5 afsendes i standard CentOS 7 repository, for at installere det bare køre:

yum installer mariadb-server

For at starte MariaDB-tjenesten og aktivere den til at starte ved opstart, udfør følgende kommandoer:

systemctl start mariadb.service systemctl enable mariadb.service

Kør følgende kommando for at sikre din MariaDB-installation:

mysql_secure_installation

Dernæst skal vi oprette en database til vores postfixadminHQ-forekomst.

mysql -uroot -p MariaDB [(none)]> CREATE DATABASE postfixadmin; MariaDB [(none)]> GIVE ALL PRIVILEGES ON postfixadmin. * TIL 'postfixadmin' @ 'localhost' IDENTIFIED AF 'strong_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> q

Installer PHP og alle nødvendige PHP-moduler

CentOS 7 leveres med PHP version 5.4, for at installere PHP og nødvendige moduler, køre:

yum installere php php-mysql php-imap php-mbstring php-fælles

Hvis du ikke har Apache installeret, skal du installere det med:

Du installerer httpd

Installer PostfixAdmin

Den nyeste version af PostfixAdmin, version 3, understøtter MySQL / MariaDB, PostgreSQL, og SQLite databaser. I denne vejledning bruger vi MariaDB.
Download PostfixAdmin-arkivet fra SourceForge og udpak det i / var / www / html / directory:

wget -q -O - "https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz" | tjære -xzf - -C / var / www / html

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

nano /var/www/html/postfixadmin-3.0.2/config.inc.php
$ CONF ['configured'] = true; $ CONF ['database_type'] = 'mysqli'; $ CONF ['database_host'] = 'localhost'; $ CONF ['database_user'] = 'postfixadmin'; $ CONF ['database_password'] = 'strong_password'; $ CONF ['database_name'] = 'postfixadmin'; $ CONF ['domain_path'] = 'NEJ'; $ CONF ['domain_in_mailbox'] = 'JA';
chown -R apache: / var / www / html / postfixadmin-3.0.2

For at udfylde databasen, gå til https://Your_IP_Address/postfixadmin-3.0.2/setup.php og du bør se noget som nedenfor:
Testing database connection - OK - mysqli://postfixadmin:[email protected]/postfixadmin
Everything seems fine... attempting to create/update database structure

Opret en ny admin bruger:

bash / var / www / html / postfixadmin-3.0.2 / scripts / postfixadmin-cli admin tilføj [Email protected]_domæne_navn.com --pasord strong_password22 --password2 strong_password22 --superadmin 1 - aktiv 1

Installer og konfigurer postfix

For at installere postfix køre kommandoen bellow:

Du installerer postfix

Når installationen er gennemført, skal vi oprette konfigurationsfiler:

mkdir -p / etc / postfix / sql /
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = SELECT goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = CONCAT ('@', alias_domain.target_domain) OG alias.active = 1 OG alias_domain.active = '1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = vælg maildir FRA postkasse, alias_domæne WHERE alias_domain.alias_domain = '% d' og mailbox.username = CONCAT ('% u', '@', alias_domain.target_domain) OG mailbox.active = 1 OG alias_domain.active = '1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = SELECT goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = CONCAT ('% u', '@', alias_domain.target_domain) OG alias.active = 1 OG alias_domain.active = '1'
nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = VÆLG goto FRA alias hvor adresse = '% s' og aktiv = '1' #expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = SELECT domæne FRA domæne WHERE domain = '% s' OG aktiv = '1' #query = SELECT domæne FRA domæne WHERE domain = '% s' #optional forespørgsel til brug når relaying for backup MX #query = SELECT domæne FRA domæne WHERE domain = '% s' og backupmx = '0' OG aktiv = '1' #expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = VÆLG kvote FRA postkasse WHERE brugernavn = '% s' OG aktiv = '1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
bruger = postfixadmin password = strong_password værter = localhost dbname = postfixadmin forespørgsel = VÆLG maildir FRA postkasse WHERE brugernavn = '% s' OG aktiv = '1' #expansion_limit = 100

Stuck et sted? Få en VPS fra os og vi gør alt dette for dig gratis! Vi vil helt oprette og konfigurere en mail server for dig.

Rediger main.cf fil:

postconf -e "myhostname = $ (værtsnavn -f)" postconf -e "virtual_mailbox_domains = proxy: mysql: /etc/postfix/sql/mysql_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = proxy: mysql: / etc / postfix / sql proxy: mysql: / etc / postfix / myqq: sql / mysql_virtual_mailbox_maps.cf, proxy: mysql: /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf "postconf -e" smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt "postconf -e" smtpd_tls_key_file = / etc / pki /tls/private/localhost.key "postconf -e" smtpd_use_tls = ja "postconf -e" smtpd_tls_auth_only = ja "postconf -e" smtpd_sasl_type = dovecot "postconf -e" smtpd_sasl_path = privat / auth "postconf -e" smtpd_sasl_auth_enable = ja "postconf -e" smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination "p ostconf -e "mydestination = localhost" postconf -e "mynetworks = 127.0.0.0 / 8" postconf -e "inet_protocols = ipv4" postconf -e "inet_interfaces = alle" postconf -e "virtual_transport = lmtp: unix: privat / dovecot-lmtp"

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

nano /etc/postfix/master.cf
indsendelse inet n - n - - smtpd -o syslog_name = postfix / indsendelse -o smtpd_tls_security_level = kryptere -o smtpd_sasl_auth_enable = ja # -o smtpd_reject_unlisted_recipient = nej # -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, afviser -o milter_macro_daemon_name = oPRINDELSE SMTPS inet n - n - - smtpd -o syslog_name = postfix / SMTPS # -o smtpd_tls_wrappermode = ja -o smtpd_sasl_auth_enable = ja # -o smtpd_reject_unlisted_recipient = nej # -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 = tilladelse_sasl_authenticated, reject -o milter_macro_daemon_name = ORIGINATING

Aktivér postfix-tjenesten

systemctl enable postfix systemctl genstart postfix

Installer og konfigurer Dovecot

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

yum installere dovecot dovecot-mysql

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

nano /etc/dovecot/conf.d/10-mail.conf
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:

nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = almindelig login #! inkludere auth-system.conf.ext! inkludere auth-sql.conf.ext

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

nano /etc/dovecot/dovecot-sql.conf.ext
driver = mysql connect = vært = localhost dbname = postfixadmin bruger = postfixadmin password = strong_password default_pass_scheme = MD5-CRYPT password_query = SELECT 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 WHERE brugernavn ='% u 'og aktiv =' 1 'user_query = SELECT' / var / vmail /% d /% u ' som hjemme, 'maildir: / var / vmail /% d /% u' som mail, 150 AS uid, 8 AS gid, concat ('dirsize: storage =', kvote) AS kvote FRA postkasse WHERE 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_name.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 

Installer og konfigurer Spamassassin

Installer spamassassin ved hjælp af kommandoen bellow:

Du installerer spamassassin

Opret en spamassassin system bruger:

groupadd spamd useradd -g spamd -s / bin / false -d / var / log / spamassassin spamd chown spamd: spamd / var / log / spamassassin

Konfigurer Postfix til at bruge SpamAssassin

Åbne master.cf fil og rediger som følger:

nano /etc/postfix/master.cf

lave om

smtp inet n - n - - smtpd

med

smtp inet n - n - - smtpd -o content_filter = spamassassin

Tilføj følgende linje i slutningen af ​​filen:

spamassassin unix - nn - - pipe flag = R bruger = spamd argv = / usr / bin / spamc -e / usr / sbin / sendmail -oi -f $ {sender} $ {modtager}

Aktivér og genstart spamassassin-tjenesten

systematik enable spamassassin systemctl genstarte spamassassin 

Genstart postfix-tjenesten

systemctl genstart postfix

Hvis alt er konfigureret korrekt, skal du være i stand til at logge ind på din PostfixAdmin-backend ved at gå til http://Your_IP_Address/postfixadmin-3.0.2.2 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.