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/dovecotAktifkan dan mulai ulang layanan dovecot
systemctl aktifkan dovecot systemctl restart dovecot8. Instal dan konfigurasikan Spamassassin
Instal spamassassin menggunakan perintah di bawah ini:
yum install spamassassinBuat pengguna sistem spamassassin:
groupadd spamduseradd -g spamd -s /bin/false -d /var/log/spamassassin spamdchown spamd:spamd /var/log/spamassassin9. Konfigurasi Postfix untuk menggunakan SpamAssassin
Buka
master.cf
file dan edit sebagai berikut:nano /etc/postfix/master.cfubah
smtp inet n - n - - smtpddengan
smtp inet n - n - - smtpd -o content_filter=spamassassintambahkan 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 spamassassinMulai ulang layanan postfix
systemctl restart postfixJika 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