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 aktivere 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)]> Opret DATABASE postfixadmin; MariaDB [(none)]> TIL ALLE PRIVILEGIER PÅ postfixadmin. * TIL 'postfixadmin' @ 'localhost' IDENTIFICERET AF 'strong_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(ingen)]> 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:
Test databaseforbindelse - OK - mysqli: // postfixadmin: xxxxx @ localhost / postfixadmin Alt virker fint ... forsøger at oprette / opdatere database struktur

Opret en ny admin bruger:

bash / var / www / html / postfixadmin-3.0.2 / scripts / postfixadmin-cli admin tilføj admin@your_domain_name.com --password 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
user = postfixadmin password = strong_password hosts = localhost dbname = postfixadmin forespørgsel = VÆLG goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = CONCAT ('@', alias_domain.target_domain) OG aliasXactive = X OG alias_domain.active = '1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user = postfixadmin password = strong_password hosts = localhost dbname = postfixadmin forespørgsel = VÆLG maildir FRA postkasse, alias_domain 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 hosts = localhost dbname = postfixadmin forespørgsel = VÆLG goto FRA alias, alias_domain WHERE alias_domain.alias_domain = '% d' og alias.address = CONCAT ('% u', '@', alias_domain.target_domain) alias.active = 1 OG alias_domain.active = '1'
nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
bruger = postfixadmin adgangskode = strong_password hosts = 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 adgangskode = strong_password hosts = localhost dbname = postfixadmin forespørgsel = VÆLG domæne FRA domæne HVOR domæne = '% s' OG aktiv = '1' #query = VÆLG domæne FRA domæne HVOR domæne = '% s' # valgfri forespørgsel til brug ved relæ til backup MX #query = VÆLG domæne FRA domæne HVOR domæne = '% s' OG backupmx = '0' OG aktiv = '1' #expansion_limit = 100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
bruger = postfixadmin adgangskode = strong_password hosts = localhost dbname = postfixadmin forespørgsel = VÆLG kvote FRA postkasse HVOR brugernavn = '% s' OG aktiv = '1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
bruger = postfixadmin adgangskode = strong_password hosts = localhost dbname = postfixadmin forespørgsel = VÆLG maildir FRA postkasse HVOR 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 = $ (hostname -f)" postconf -e "virtual_mailbox_domains = proxy: mysql: /etc/postfix/sql/mysql_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = proxy: mysql / sql / etc / /mysql_virtual_alias_maps.cf, proxy: mysql: /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy: mysql: /etc/postfix/sql/mysql_virtual_alias_domainxbox_fc 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/ls_tc_tc /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_cont = s_en "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: private / dovec"

Å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 = host = localhost dbname = postfixadmin bruger = postfixadmin adgangskode = strong_password 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 /% u ' som hjemme, 'maildir: / var / vmail /% d /% u' som mail, 150 AS uid, 8 AS gid, concat ('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 = postmaster@your_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 / falsk -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

systemctl aktivere spamassassin systemctl genstarter 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

Efterlad en kommentar