GNU/Linux >> Belajar Linux >  >> Cent OS

Siapkan server email dengan PostfixAdmin dan MariaDB di CentOS 7

Dalam panduan ini, kami akan menjelaskan cara mengatur dan mengkonfigurasi server email dengan PostfixAdmin, Postfix, Dovecot, MariaDB dan SpamAssasin pada CentOS VPS. PostfixAdmin adalah web front-end berbasis PHP yang memungkinkan Anda untuk mengelola domain virtual dan pengguna untuk agen transportasi surat Postfix. Panduan ini juga dapat digunakan pada sistem VPS Linux lainnya, tetapi telah diuji dan ditulis untuk VPS CentOS 7.

Jika Anda menggunakan VPS Ubuntu, ikuti tutorial kami untuk menyiapkan server email dengan Postfix, Dovecot, Spamassassin, SQLite, dan PostfixAdmin pada VPS Ubuntu 16.04

Jika Anda ingin menggunakan SQLite daripada MariaDB, ikuti tutorial kami untuk menyiapkan server email dengan Postfix, Dovecot, Spamassassin, SQLite, dan PostfixAdmin di CentoOS 7 VPS

1. Perbarui sistem dan instal paket yang diperlukan

yum update &&yum install wget nano

2. Buat pengguna sistem

Untuk alasan keamanan, kami akan membuat pengguna sistem baru yang akan menjadi pemilik semua kotak surat.

useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Pengguna Email Virtual" vmailmkdir -p /var/vmailchmod -R 770 /var/vmailchown -R vmail:mail /var/vmail

3. Instal MariaDB

MariaDB 5.5 dikirimkan dalam repositori CentOS 7 default, untuk menginstalnya jalankan saja:

yum install mariadb-server

Untuk memulai layanan MariaDB dan mengaktifkannya untuk memulai saat boot, jalankan perintah berikut:

systemctl start mariadb.servicesystemctl aktifkan mariadb.service

Jalankan perintah berikut untuk mengamankan instalasi MariaDB Anda:

mysql_secure_installation

Selanjutnya, kita perlu membuat database untuk instance postfixadminHQ kita.

mysql -uroot -pMariaDB [(none)]> BUAT DATABASE postfixadmin;MariaDB [(none)]> BERIKAN SEMUA HAK ISTIMEWA PADA postfixadmin.* UNTUK 'postfixadmin'@'localhost' DIIDENTIFIKASI OLEH 'strong_password';MariaDB [(none )]> HAK ISTIMEWA FLUSH;MariaDB [(none)]> \q

4. Instal PHP dan semua modul PHP yang diperlukan

CentOS 7 dikirimkan dengan PHP versi 5.4, untuk menginstal PHP dan modul yang diperlukan, jalankan:

yum install php php-mysql php-imap php-mbstring php-common

Jika Anda belum menginstal Apache, instal dengan:

yum install httpd

5. Instal PostfixAdmin

Versi terbaru PostfixAdmin, versi 3, mendukung database MySQL/MariaDB, PostgreSQL, dan SQLite. Dalam panduan ini, kita akan menggunakan MariaDB.
Unduh arsip PostfixAdmin dari SourceForge dan ekstrak di direktori /var/www/html/:

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

Buka file konfigurasi email dan edit nilai berikut:

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'] ='TIDAK';$CONF['domain_in_mailbox'] ='YA';
chown -R apache:/var/www/html/postfixadmin-3.0.2

Untuk mengisi database, buka https://Your_IP_Address/postfixadmin-3.0.2/setup.php dan Anda akan melihat sesuatu seperti di bawah ini:
Testing database connection - OK - mysqli://postfixadmin:xxxxx@localhost/postfixadmin
Everything seems fine... attempting to create/update database structure

Buat pengguna admin baru:

bash /var/www/html/postfixadmin-3.0.2/scripts/postfixadmin-cli admin tambahkan admin@nama_domain_anda.com --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1

6. Instal dan konfigurasikan postfix

Untuk menginstal postfix jalankan perintah di bawah ini:

yum install postfix

Setelah instalasi selesai, kita perlu membuat file konfigurasi:

mkdir -p /etc/postfix/sql/
nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =PILIH goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' dan alias.address =CONCAT('@', alias_domain.target_domain) DAN alias.active =1 AND alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =PILIH maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain ='%d' dan mailbox.username =CONCAT('%u', '@', alias_domain.target_domain) DAN kotak surat .active =1 DAN alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =PILIH goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' dan alias.address =CONCAT('%u', '@', alias_domain.target_domain) DAN alias .active =1 DAN alias_domain.active='1'
nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT goto FROM alias WHERE address='%s' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT domain FROM domain WHERE domain='%s' AND active ='1'#query =SELECT domain FROM domain WHERE domain='%s'#query opsional untuk digunakan saat relaying for backup MX#query =SELECT domain FROM domain WHERE domain='%s' AND backupmx ='0' AND active ='1'#expansion_limit =100
nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =PILIH kuota FROM mailbox WHERE username='%s' AND active ='1'
nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user =postfixadminpassword =strong_passwordhosts =localhostdbname =postfixadminquery =SELECT maildir FROM mailbox WHERE username='%s' AND active ='1'#expansion_limit =100

[ecko_alert color=”blue”]Terjebak di suatu tempat? Dapatkan VPS dari kami dan kami akan melakukan semua ini untuk Anda, gratis! Kami akan sepenuhnya menyiapkan dan mengonfigurasi server email untuk Anda. [/ecko_alert]

Edit main.cf berkas:

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:/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"postconf -e "virtual_mailbox_maps =proxy:/postfix/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_file " etc/pki/tls/private/localhost.key"postconf -e "smtpd_use_tls =yes"postconf -e "smtpd_tls_auth_only =yes" postconf -e "smtpd_sasl_type =dovecot"postconf -e "smtpd_sasl_path -/auth_path =private smtpd_sasl_auth_enable =yes"postconf -e "smtpd_recipient_restrictions =permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination" posting conf -e "mydestination =localhost"postconf -e "mynetworks =127.0.0.0/8"postconf -e "inet_protocols =ipv4"postconf -e "inet_interfaces =semua"postconf -e "virtual_transport =lmtp:unix:private/dovecot- lmtp"

Buka master.cf file, cari submission inet n dan smtps inet n bagian dan edit sebagai berikut:

nano /etc/postfix/master.cf
submission inet n - n - - 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 milter_macro_daemon_name=ORIGINATINGsmtps inet n - n - - 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=$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=ORIGI NATING

Aktifkan layanan postfix

systemctl aktifkan postfixsystemctl restart postfix

7. Instal dan Konfigurasikan Dovecot

Instal dovecot dengan dukungan MySQL menggunakan perintah di bawah ini:

yum install dovecot dovecot-mysql

Buka /etc/dovecot/conf.d/10-mail.conf file dan ubah nilai berikut:

nano /etc/dovecot/conf.d/10-mail.conf 
mail_location =maildir:/var/vmail/%d/%nmail_privileged_group =mailmail_uid =vmailmail_gid =mailfirst_valid_uid =150last_valid_uid =150

Buka /etc/dovecot/conf.d/10-auth.conf file dan ubah nilai berikut:

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

Buat dovecot-sql.conf.ext baru berkas:

nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=strong_passworddefault_pass_scheme =MD5-CRYPTpassword_query =PILIH nama pengguna sebagai pengguna, kata sandi, '/var/vmail/%d/%n' sebagai userdb_home, 'maildir:/ var/vmail/%d/%n' sebagai userdb_mail, 150 sebagai userdb_uid, 8 sebagai userdb_gid FROM kotak surat WHERE username ='%u' AND active ='1'user_query =SELECT '/var/vmail/%d/%u' sebagai home, 'maildir:/var/vmail/%d/%u' sebagai mail, 150 AS uid, 8 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username ='%u' DAN aktif ='1'

Dalam /etc/dovecot/conf.d/10-ssl.conf file aktifkan dukungan SSL:

ssl =ya

Buka /etc/dovecot/conf.d/15-lda.conf file dan atur postmaster_address alamat email.

postmaster_address =postmaster@nama_domain_anda.com

Buka /etc/dovecot/conf.d/10-master.conf file, cari bagian layanan lmtp dan ubah ke:

service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode =0600 user =postfix group =postfix }}

temukan bagian autentikasi layanan dan ubah ke:

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

Ubah bagian service auth-worker menjadi berikut:

service auth-worker { pengguna =vmail}

Setel izin:

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

Aktifkan dan mulai ulang layanan dovecot

systemctl aktifkan dovecot systemctl restart dovecot 

8. Instal dan konfigurasikan Spamassassin

Instal spamassassin menggunakan perintah di bawah ini:

yum install spamassassin

Buat pengguna sistem spamassassin:

groupadd spamduseradd -g spamd -s /bin/false -d /var/log/spamassassin spamdchown spamd:spamd /var/log/spamassassin

9. Konfigurasi Postfix untuk menggunakan SpamAssassin

Buka master.cf file dan edit sebagai berikut:

nano /etc/postfix/master.cf

ubah

smtp inet n - n - - smtpd

dengan

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

tambahkan baris berikut di akhir file:

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Aktifkan dan mulai ulang layanan spamassassin

systemctl aktifkan spamassassin systemctl restart spamassassin 

Mulai ulang layanan postfix

systemctl restart postfix

Jika semuanya sudah diatur dengan benar sekarang, Anda seharusnya dapat masuk ke backend PostfixAdmin Anda dengan membuka http://Your_IP_Address/postfixadmin-3.0.2.2 dan buat domain dan kotak surat virtual pertama Anda.

Tentu saja, Anda tidak perlu menyiapkan server email dengan PostfixAdmin dan MariaDB di CentOS 7,  jika Anda menggunakan salah satu layanan Hosting Server Email kami, dalam hal ini Anda dapat meminta admin Linux ahli kami untuk menyiapkan server email untukmu. Mereka tersedia 24×7 dan akan segera memenuhi permintaan Anda.

PS . Jika Anda menyukai posting ini, tentang cara Menyiapkan server email dengan PostfixAdmin dan MariaDB di CentOS 7, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di bawah ini atau cukup tinggalkan komentar di Bagian Komentar di bawah. Terima kasih.


Cent OS
  1. Instal Zenario dengan Apache, PHP dan MariaDB di CentOS 7

  2. Cara mengatur server email dengan PostfixAdmin di CentOS 7

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Siapkan server email dengan PostfixAdmin

  2. Cara Menginstal dan Mengkonfigurasi Server Mail Postfix di CentOS 8

  3. Cara Menginstal ownCloud 9.1 dengan Nginx dan MariaDB di CentOS 7

  1. Instal Mattermost dengan PostgreSQL dan Nginx di CentOS 7

  2. Cara Menginstal Lighttpd dengan PHP-FPM dan MariaDB di CentOS 8

  3. Cara Mengatur Server Mail dengan PostfixAdmin di Debian 11