Konfigurasi DNS Master Slave pada CentOS 7

Kali ini saya akan mebahas materi kelanjutan dari DNS Server yang sudah saya posting sebelumnya, Pada umumnya dalam jaringan atau server terdapat istilah redudant yang artinya ada penggati jika yang utama mengalami kegagalan. Dalam DNS Server istilahnya adalah Master Slave, server utama yang menyimpan database asli adalah Master, sedangkan server yang hanya menyalin saja dari yang asli disebut dengan Slave.

Sekarang saya akan menunjukan cara membuat Slave DNS Server, konfigurasi merupakan kelanjutan dari posting saya sebelumnya. Berikut ini adalah topologinya :

Saya akan menambahkan satu zone forward baru dan satu zone reverse baru yaitu server.net dan 10.0.0.64/26, yang menjadi server Utama adalah dlp1 konfigurasi seperti pada posting sebelumnya, dan dlp2 yang merupakan replika dari dlp1.

Konfigurasi Server Master

Di server master kita akan melakukan konfigurasi IP Address server slave yang boleh menyalin database dari server master ini, melanjutkan konfigurasi sebelumnya dan juga menambahkan zone forward, reverse baru.

  1. Edit file konfigurasi bind /etc/named.conf
  2. [root@dlp1 ~]# nano /etc/named.conf
    • Pada bagian allow-transfer tambahkan IP Address server DNS Slave agar diizinkan melakukan transfer penyalinan. Jika tidak ada allow-transfer maka tambahkan saja.
    • options {
      listen-on port 53 { any; };
      listen-on-v6 port 53 { none; };
      directory "/var/named";
      dump-file "/var/named/data/cache_dump.db";
      statistics-file "/var/named/data/named_stats.txt";
      memstatistics-file "/var/named/data/named_mem_stats.txt";
      allow-query { any; };
      allow-transfer { localhost; 10.0.0.66; };
    • Kemudian pada bagian paling bawah kita tambahkan zone forward dan reverse baru.
    • zone "jaringan.org" IN { //Forward Zone
      type master; //Master atau server DNS utama
      file "/var/named/db.jaringan"; //File database zone
      };


      zone "server.net" IN {
      type master;
      file "/var/named/db.server";
      };


      zone "0.18.172.in-addr.arpa" IN { //Reverse Zone
      type master;
      file "/var/named/db.18";
      };


      zone "0.0.10.in-addr.arpa" IN {
      type master;
      file "/var/named/db.64";
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
    • Simpan file tersebut.
  3. Setelah konfigurasi bind named selesai, sekarang kita buat file database untuk zone yang baru.
    • Seperti biasa salin saja file database contoh yang sudah ada.
    • [root@dlp1 ~]# cd /var/named/
      [root@dlp1 named]# cp named.empty db.server
      [root@dlp1 named]# cp named.empty db.64
    • Edit file untuk zone forwardnya, kemudian isi dengan database record DNS sesuai dengan topologi.
    • [root@dlp1 named]# nano db.server
      $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      @ IN A 10.0.0.66
      dlp2 IN A 10.0.0.66
      node03 IN A 10.0.0.67
      node04 IN A 10.0.0.68
      www IN CNAME node03.server.net.
      web IN CNAME node03.server.net.
      mail IN CNAME node03.server.net.
      ftp IN CNAME node04.server.net.
      smb IN CNAME node04.server.net.
      IN MX 0 dlp2.server.net.
    • Sekarang kita edit file reverse.
    • [root@dlp1 named]# nano db.64
      $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      66 IN PTR server.net.
      66 IN PTR dlp2.server.net.
      67 IN PTR node03.server.net.
      68 IN PTR node04.server.net.
  4. Seperti biasa cek sintaks konfigurasi dari kesalahan penulisan.
  5. [root@dlp1 named]# named-checkconf -z
    zone jaringan.org/IN: loaded serial 0
    zone server.net/IN: loaded serial 0
    zone 0.18.172.in-addr.arpa/IN: loaded serial 0
    zone 64.0.0.10.in-addr.arpa/IN: loaded serial 0
    zone localhost.localdomain/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 0.in-addr.arpa/IN: loaded serial 0
  6. Atur permission file database tersebut agar dapat dibaca oleh bind named.
  7. [root@dlp1 named]# chown named:named db.server 
    [root@dlp1 named]# chown named:named db.64
  8. Restart service named untuk memperbarui konfigurasi.
  9. [root@dlp1 named]# systemctl restart named

Konfigurasi Server Slave

Setelah konfigurasi server master selesai dan dapat bekerja dengan baik, sekarang kita akan mengkonfigurasi server slave dlp2 (diposisi kanan pada gambar topologi) agar server ini melakukan replika atau meniru database domain/zone pada server dns master.

  1. Langkah pertama pastinya yaitu menginstall aplikasi bind atau named pada server ini.
  2. [root@dlp2 ~]# yum -y install bind bind-utils
  3. Edit file konfigurasi bind named /etc/named.conf untuk mengatur beberapa parameter.
    • Menetukan listen address, dan siapa saja yang boleh mengakses DNS Server ini.
    • options {
      listen-on port 53 { any; }; //Menerima req DNS dari mana saja
      listen-on-v6 port 53 { none; }; //Mematikan IPv6
      directory "/var/named";
      dump-file "/var/named/data/cache_dump.db";
      statistics-file "/var/named/data/named_stats.txt";
      memstatistics-file "/var/named/data/named_mem_stats.txt";
      allow-query { any; }; //Siapa saja boleh mengakses
    • Kemudian masukan zone forward dan reverse seperti yang ada di server master, tetapi tipenya Slave dan beserta IP Address dari server master yang memiliki databasenya. Letakan skrip ini dibagian bawah.
    • zone "jaringan.org" IN {
      type slave;
      masters {172.18.0.10;};
      };

      zone "server.net" IN {
      type slave;
      masters {172.18.0.10;};
      };

      zone "0.18.172.in-addr.arpa" {
      type slave;
      masters {172.18.0.10;};
      };

      zone "0.0.10.in-addr.arpa" {
      type slave;
      masters {172.18.0.10;};
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
  4. Buka akses firewall untuk dns pada server ini.
  5. [root@dlp2 ~]# firewall-cmd --add-service=dns --permanent
    success
    [root@dlp2 ~]# firewall-cmd --reload
    success
  6. Restart bind named untuk menyalin database domain dari server master.
  7. [root@dlp2 ~]# systemctl restart named
    [root@dlp2 ~]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

    Note : untuk mengetahui jika terjadi sebuah error kita tinggal lihat saya pesan log server, caranya ketikan perintah tail -f /var/log/messages

Setelah selesai mengkonfigurasi semuanya, sekarang kita lakukan testing pada server slave apakah sudah menyalin seluruh database dari server master.

[root@dlp2 ~]# nslookup server.net //Testing A Record
Server: 10.0.0.66
Address: 10.0.0.66#53

Name: server.net
Address: 10.0.0.66

[root@dlp2 ~]# nslookup www.server.net //Testing CNAME alias
Server: 10.0.0.66
Address: 10.0.0.66#53

www.server.net canonical name = node03.server.net.
Name: node03.server.net
Address: 10.0.0.67

[root@dlp2 ~]# nslookup 10.0.0.68 //Testing Reverse
Server: 10.0.0.66
Address: 10.0.0.66#53

68.0.0.10.in-addr.arpa name = node04.server.net.

Jika tidak ada pesan error tandanya semuanya sudah berhasil dan sudah dapat digunakan. Sekian terima kasih mohon maaf jika ada kesalahan.

Konfigurasi DNS Master Slave pada CentOS 7

Kali ini saya akan mebahas materi kelanjutan dari DNS Server yang sudah saya posting sebelumnya, Pada umumnya dalam jaringan atau server terdapat istilah redudant yang artinya ada penggati jika yang utama mengalami kegagalan. Dalam DNS Server istilahnya adalah Master Slave, server utama yang menyimpan database asli adalah Master, sedangkan server yang hanya menyalin saja dari yang asli disebut dengan Slave.

Sekarang saya akan menunjukan cara membuat Slave DNS Server, konfigurasi merupakan kelanjutan dari posting saya sebelumnya. Berikut ini adalah topologinya :

Saya akan menambahkan satu zone forward baru dan satu zone reverse baru yaitu server.net dan 10.0.0.64/26, yang menjadi server Utama adalah dlp1 konfigurasi seperti pada posting sebelumnya, dan dlp2 yang merupakan replika dari dlp1.

Konfigurasi Server Master

Di server master kita akan melakukan konfigurasi IP Address server slave yang boleh menyalin database dari server master ini, melanjutkan konfigurasi sebelumnya dan juga menambahkan zone forward, reverse baru.

  1. Edit file konfigurasi bind /etc/named.conf
  2. [root@dlp1 ~]# nano /etc/named.conf
    • Pada bagian allow-transfer tambahkan IP Address server DNS Slave agar diizinkan melakukan transfer penyalinan. Jika tidak ada allow-transfer maka tambahkan saja.
    • options {
      listen-on port 53 { any; };
      listen-on-v6 port 53 { none; };
      directory "/var/named";
      dump-file "/var/named/data/cache_dump.db";
      statistics-file "/var/named/data/named_stats.txt";
      memstatistics-file "/var/named/data/named_mem_stats.txt";
      allow-query { any; };
      allow-transfer { localhost; 10.0.0.66; };
    • Kemudian pada bagian paling bawah kita tambahkan zone forward dan reverse baru.
    • zone "jaringan.org" IN { //Forward Zone
      type master; //Master atau server DNS utama
      file "/var/named/db.jaringan"; //File database zone
      };


      zone "server.net" IN {
      type master;
      file "/var/named/db.server";
      };


      zone "0.18.172.in-addr.arpa" IN { //Reverse Zone
      type master;
      file "/var/named/db.18";
      };


      zone "0.0.10.in-addr.arpa" IN {
      type master;
      file "/var/named/db.64";
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
    • Simpan file tersebut.
  3. Setelah konfigurasi bind named selesai, sekarang kita buat file database untuk zone yang baru.
    • Seperti biasa salin saja file database contoh yang sudah ada.
    • [root@dlp1 ~]# cd /var/named/
      [root@dlp1 named]# cp named.empty db.server
      [root@dlp1 named]# cp named.empty db.64
    • Edit file untuk zone forwardnya, kemudian isi dengan database record DNS sesuai dengan topologi.
    • [root@dlp1 named]# nano db.server
      $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      @ IN A 10.0.0.66
      dlp2 IN A 10.0.0.66
      node03 IN A 10.0.0.67
      node04 IN A 10.0.0.68
      www IN CNAME node03.server.net.
      web IN CNAME node03.server.net.
      mail IN CNAME node03.server.net.
      ftp IN CNAME node04.server.net.
      smb IN CNAME node04.server.net.
      IN MX 0 dlp2.server.net.
    • Sekarang kita edit file reverse.
    • [root@dlp1 named]# nano db.64
      $TTL 3H
      @ IN SOA jaringan.org. root.jaringan.org. (
      0 ; serial
      1D ; refresh
      1H ; retry
      1W ; expire
      3H ) ; minimum
      @ IN NS dlp1.jaringan.org.
      66 IN PTR server.net.
      66 IN PTR dlp2.server.net.
      67 IN PTR node03.server.net.
      68 IN PTR node04.server.net.
  4. Seperti biasa cek sintaks konfigurasi dari kesalahan penulisan.
  5. [root@dlp1 named]# named-checkconf -z
    zone jaringan.org/IN: loaded serial 0
    zone server.net/IN: loaded serial 0
    zone 0.18.172.in-addr.arpa/IN: loaded serial 0
    zone 64.0.0.10.in-addr.arpa/IN: loaded serial 0
    zone localhost.localdomain/IN: loaded serial 0
    zone localhost/IN: loaded serial 0
    zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    zone 0.in-addr.arpa/IN: loaded serial 0
  6. Atur permission file database tersebut agar dapat dibaca oleh bind named.
  7. [root@dlp1 named]# chown named:named db.server 
    [root@dlp1 named]# chown named:named db.64
  8. Restart service named untuk memperbarui konfigurasi.
  9. [root@dlp1 named]# systemctl restart named

Konfigurasi Server Slave

Setelah konfigurasi server master selesai dan dapat bekerja dengan baik, sekarang kita akan mengkonfigurasi server slave dlp2 (diposisi kanan pada gambar topologi) agar server ini melakukan replika atau meniru database domain/zone pada server dns master.

  1. Langkah pertama pastinya yaitu menginstall aplikasi bind atau named pada server ini.
  2. [root@dlp2 ~]# yum -y install bind bind-utils
  3. Edit file konfigurasi bind named /etc/named.conf untuk mengatur beberapa parameter.
    • Menetukan listen address, dan siapa saja yang boleh mengakses DNS Server ini.
    • options {
      listen-on port 53 { any; }; //Menerima req DNS dari mana saja
      listen-on-v6 port 53 { none; }; //Mematikan IPv6
      directory "/var/named";
      dump-file "/var/named/data/cache_dump.db";
      statistics-file "/var/named/data/named_stats.txt";
      memstatistics-file "/var/named/data/named_mem_stats.txt";
      allow-query { any; }; //Siapa saja boleh mengakses
    • Kemudian masukan zone forward dan reverse seperti yang ada di server master, tetapi tipenya Slave dan beserta IP Address dari server master yang memiliki databasenya. Letakan skrip ini dibagian bawah.
    • zone "jaringan.org" IN {
      type slave;
      masters {172.18.0.10;};
      };

      zone "server.net" IN {
      type slave;
      masters {172.18.0.10;};
      };

      zone "0.18.172.in-addr.arpa" {
      type slave;
      masters {172.18.0.10;};
      };

      zone "0.0.10.in-addr.arpa" {
      type slave;
      masters {172.18.0.10;};
      };


      include "/etc/named.rfc1912.zones";
      include "/etc/named.root.key";
  4. Buka akses firewall untuk dns pada server ini.
  5. [root@dlp2 ~]# firewall-cmd --add-service=dns --permanent
    success
    [root@dlp2 ~]# firewall-cmd --reload
    success
  6. Restart bind named untuk menyalin database domain dari server master.
  7. [root@dlp2 ~]# systemctl restart named
    [root@dlp2 ~]# systemctl enable named
    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

    Note : untuk mengetahui jika terjadi sebuah error kita tinggal lihat saya pesan log server, caranya ketikan perintah tail -f /var/log/messages

Setelah selesai mengkonfigurasi semuanya, sekarang kita lakukan testing pada server slave apakah sudah menyalin seluruh database dari server master.

[root@dlp2 ~]# nslookup server.net //Testing A Record
Server: 10.0.0.66
Address: 10.0.0.66#53

Name: server.net
Address: 10.0.0.66

[root@dlp2 ~]# nslookup www.server.net //Testing CNAME alias
Server: 10.0.0.66
Address: 10.0.0.66#53

www.server.net canonical name = node03.server.net.
Name: node03.server.net
Address: 10.0.0.67

[root@dlp2 ~]# nslookup 10.0.0.68 //Testing Reverse
Server: 10.0.0.66
Address: 10.0.0.66#53

68.0.0.10.in-addr.arpa name = node04.server.net.

Jika tidak ada pesan error tandanya semuanya sudah berhasil dan sudah dapat digunakan. Sekian terima kasih mohon maaf jika ada kesalahan.

[Lab 10.3] Mail server dengan SSL pada CentOS 7

Saya sudah beberapa kali membahas tentang Mail server pada postingan-postingan sebelumnya, tapi mail server tersebut belum cukup aman dikarenakan ketika pesan yang dikirim Mail server tersebut masih dapat terlihat ketika melewati jaringan komputer, agar lebih aman kita perlu mengkonfigurasi mail server kita menggunakan SSL sehingga protokol mail yang digunakan adalah SMTPS dan IMAPS.

Postfix dan Dovecot keduanya mendukung fitur SSL, kita tinggal buat saja sertifikat digital untuk server kita sendiri. Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server linux.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.50
    Domain : mail.linux.dz

Mail server diatas sudah saya konfigurasi mail server biasa dan juga web mailnya sudah ada, sekarang saya akan membahas detail tentang SSL nya saja.

Membuat Sertifikat

Pertama kita buat terlebih dahulu sertifikat yang nantinya akan digunakan oleh server untuk kebutuhan SSL.

[root@dz-mail2-server ~]# cd /etc/pki/tls/certs
[root@dz-mail2-server certs]# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.........................................................................+++
...................+++
e is 65537 (0x10001)
Enter pass phrase: >> Ketikan password
Verifying - Enter pass phrase: >> Konfirmasi password
[root@dz-mail2-server certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: >> Ketikan password sebelumnya
writing RSA key
[root@dz-mail2-server certs]# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ID
State or Province Name (full name) []:Jawa Barat
Locality Name (eg, city) [Default City]:Bekasi
Organization Name (eg, company) [Default Company Ltd]:TKJ
Organizational Unit Name (eg, section) []:SysAdmin
Common Name (eg, your name or your server's hostname) []:linux.dz
Email Address []:dzikra@linux.dz

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@dz-mail2-server certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=/C=ID/ST=Jawa Barat/L=Bekasi/O=TKJ/OU=SysAdmin/CN=linux.dz/emailAddress=dzikra@linux.dz
Getting Private key

Konfigurasi Postfix

Setelah selesai, sekarang kita konfigurasi postfix agar menjalankan fitur SSL. Edit file main.cf

[root@dz-mail2-server certs]# nano /etc/postfix/main.cf 

tambahkan script ini dibagian paling bawah file tersebut.

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

Konfigurasi file master.cf

[root@dz-mail2-server certs]# nano /etc/postfix/master.cf 

Pada baris 26 sampai 28 uncomment script tersebut.

smtps     inet  n       -       n       -       -       smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes

Konfigurasi Dovecot

Kita lanjut pada dovecot agar protokol IMAP menjadi menggunakan SSL untuk mengamankan isi pesan emailnya. Konfigurasi file 10-ssl.conf

[root@dz-mail2-server certs]# nano /etc/dovecot/conf.d/10-ssl.conf
  • Pada baris ke 8 ganti penjadi yes agar dovecot menggunakan fitur SSLnya.
  • ssl = yes
  • Pada baris ke 14 dan 15 tentukan letak file sertifikat yang telah dibuat sebelumnya.
  • ssl_cert = </etc/pki/tls/certs/server.crt     
    ssl_key = </etc/pki/tls/certs/server.key

Setelah itu konfigurasi firewall agar server membuka akses ke layanan SMTPS, POP3S, dan IMAPS.

[root@dz-mail2-server certs]# firewall-cmd --add-service={pop3s,imaps} --permanent
success
[root@dz-mail2-server certs]# firewall-cmd --add-port=465/tcp --permanent
success
[root@dz-mail2-server certs]# firewall-cmd --reload
success

Terakhir restart layanan postfix dovecot.

[root@dz-mail2-server certs]# systemctl restart postfix dovecot

WebMail RainLoop

Saya juga sudah menyiapkan server web untuk rainloop, jadi kali ini saya akan membahas cara menambahkan domain untuk mail server SSL yang sudah saya buat.

Saya login dengan salah satu user yang ada dimail server.

Saya cek hasilnya pada user yang tadi dikirimi email.

[Lab 10.3] Mail server dengan SSL pada CentOS 7

Saya sudah beberapa kali membahas tentang Mail server pada postingan-postingan sebelumnya, tapi mail server tersebut belum cukup aman dikarenakan ketika pesan yang dikirim Mail server tersebut masih dapat terlihat ketika melewati jaringan komputer, agar lebih aman kita perlu mengkonfigurasi mail server kita menggunakan SSL sehingga protokol mail yang digunakan adalah SMTPS dan IMAPS.

Postfix dan Dovecot keduanya mendukung fitur SSL, kita tinggal buat saja sertifikat digital untuk server kita sendiri. Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server linux.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.50
    Domain : mail.linux.dz

Mail server diatas sudah saya konfigurasi mail server biasa dan juga web mailnya sudah ada, sekarang saya akan membahas detail tentang SSL nya saja.

Membuat Sertifikat

Pertama kita buat terlebih dahulu sertifikat yang nantinya akan digunakan oleh server untuk kebutuhan SSL.

[root@dz-mail2-server ~]# cd /etc/pki/tls/certs
[root@dz-mail2-server certs]# make server.key
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
.........................................................................+++
...................+++
e is 65537 (0x10001)
Enter pass phrase: >> Ketikan password
Verifying - Enter pass phrase: >> Konfirmasi password
[root@dz-mail2-server certs]# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: >> Ketikan password sebelumnya
writing RSA key
[root@dz-mail2-server certs]# make server.csr
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ID
State or Province Name (full name) []:Jawa Barat
Locality Name (eg, city) [Default City]:Bekasi
Organization Name (eg, company) [Default Company Ltd]:TKJ
Organizational Unit Name (eg, section) []:SysAdmin
Common Name (eg, your name or your server's hostname) []:linux.dz
Email Address []:dzikra@linux.dz

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@dz-mail2-server certs]# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
Signature ok
subject=/C=ID/ST=Jawa Barat/L=Bekasi/O=TKJ/OU=SysAdmin/CN=linux.dz/emailAddress=dzikra@linux.dz
Getting Private key

Konfigurasi Postfix

Setelah selesai, sekarang kita konfigurasi postfix agar menjalankan fitur SSL. Edit file main.cf

[root@dz-mail2-server certs]# nano /etc/postfix/main.cf 

tambahkan script ini dibagian paling bawah file tersebut.

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt
smtpd_tls_key_file = /etc/pki/tls/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

Konfigurasi file master.cf

[root@dz-mail2-server certs]# nano /etc/postfix/master.cf 

Pada baris 26 sampai 28 uncomment script tersebut.

smtps     inet  n       -       n       -       -       smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes

Konfigurasi Dovecot

Kita lanjut pada dovecot agar protokol IMAP menjadi menggunakan SSL untuk mengamankan isi pesan emailnya. Konfigurasi file 10-ssl.conf

[root@dz-mail2-server certs]# nano /etc/dovecot/conf.d/10-ssl.conf
  • Pada baris ke 8 ganti penjadi yes agar dovecot menggunakan fitur SSLnya.
  • ssl = yes
  • Pada baris ke 14 dan 15 tentukan letak file sertifikat yang telah dibuat sebelumnya.
  • ssl_cert = </etc/pki/tls/certs/server.crt     
    ssl_key = </etc/pki/tls/certs/server.key

Setelah itu konfigurasi firewall agar server membuka akses ke layanan SMTPS, POP3S, dan IMAPS.

[root@dz-mail2-server certs]# firewall-cmd --add-service={pop3s,imaps} --permanent
success
[root@dz-mail2-server certs]# firewall-cmd --add-port=465/tcp --permanent
success
[root@dz-mail2-server certs]# firewall-cmd --reload
success

Terakhir restart layanan postfix dovecot.

[root@dz-mail2-server certs]# systemctl restart postfix dovecot

WebMail RainLoop

Saya juga sudah menyiapkan server web untuk rainloop, jadi kali ini saya akan membahas cara menambahkan domain untuk mail server SSL yang sudah saya buat.

Saya login dengan salah satu user yang ada dimail server.

Saya cek hasilnya pada user yang tadi dikirimi email.

[Lab 10.2] WebMail RainLoop pada CentOS 7

Aplikasi yang berfungsi sebagai WebMail adalah RainLoop yang menyediakan tampilan GUI berbasis Web pada Mail Server, sehingga client tinggal mengakses Mail Server lewat browser untuk mengirim maupun menerima E-Mail, tanpa aplikasi tambahan lainnnya seperti Thunderbird ataupun Outlook. Aplikasi yang menjalankan WebMail yang akan kita gunakan kali ini adalah Apache2 yang mendukung PHP. Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server centos.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.40
    Domain : mail.centos.dz

Server diatas sudah saya konfigurasi Mail Server lengkap (SMTP, POP3, IMAP) pada postingan sebelumnya, sekarang kita akan berkonsentrasi mengkonfigurasi WebMail RainLoop.

Server centos.dz

Pertama kita install paket web server apache dan juga php agar webmail dapat berjalan dengan baik.

[root@dz-mail-server ~]# yum -y install httpd php php-mbstring php-pear

Kemudian download paket rainloop dari situs resminya.

[root@dz-mail-server ~]# curl -O http://repository.rainloop.net/v2/webmail/rainloop-latest.zip

Lalu unzip pada folder directory root dari apache.

[root@dz-mail-server ~]# unzip rainloop-latest.zip -d /var/www/html/rainloop/
[root@dz-mail-server ~]# find /var/www/html/rainloop -type d -exec chmod 755 {} \;
[root@dz-mail-server ~]# find /var/www/html/rainloop -type f -exec chmod 644 {} \;
[root@dz-mail-server ~]# chown -R apache. /var/www/html/rainloop/

Kemudian konfigurasi SELinux.

[root@dz-mail-server ~]# chcon -R -t httpd_sys_rw_content_t /var/www/html/rainloop/data
[root@dz-mail-server ~]# setsebool -P httpd_can_network_connect on

Konfigurasi virtual host untuk webmail.

[root@dz-mail-server ~]# nano /etc/httpd/conf.d/mail.conf

Tambahkan script dibawah ini :

<VirtualHost *:80>
DocumentRoot /var/www/html/rainloop
ServerName mail.centos.dz
</VirtualHost>

Restart layanan apache untuk memperbarui konfigurasi.

[root@dz-mail-server ~]# systemctl restart httpd

Pada client coba buka url http://mail.centos.dz/?Admin, kemudian kita coba login dengan user admin dan password 12345.

Kemudian klik change untuk mengganti password default admin.

Ketikan password lama kemudian ketikan password yang baru.

Setelah itu klik tab domain >> add domain untuk mengkonfigurasi mail server.

Tentukan domain name dan juga subdomain mail server.

Pada tab general tuliskan default domain pada saat login.

Buka url http://mail.centos.dz dan login dengan salah satu user.

Seperti ini tampilan GUI dari rainloop, kita coba kirim pesan ke salah satu user lainnya.

Ketikan alamat email tujuan beserta isi dari pesannya.

Setelah itu logout kemudian masuk lagi ke akun yang satunya tadi, cek inbox dari akun tersebut.

[Lab 10.2] WebMail RainLoop pada CentOS 7

Aplikasi yang berfungsi sebagai WebMail adalah RainLoop yang menyediakan tampilan GUI berbasis Web pada Mail Server, sehingga client tinggal mengakses Mail Server lewat browser untuk mengirim maupun menerima E-Mail, tanpa aplikasi tambahan lainnnya seperti Thunderbird ataupun Outlook. Aplikasi yang menjalankan WebMail yang akan kita gunakan kali ini adalah Apache2 yang mendukung PHP. Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server centos.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.40
    Domain : mail.centos.dz

Server diatas sudah saya konfigurasi Mail Server lengkap (SMTP, POP3, IMAP) pada postingan sebelumnya, sekarang kita akan berkonsentrasi mengkonfigurasi WebMail RainLoop.

Server centos.dz

Pertama kita install paket web server apache dan juga php agar webmail dapat berjalan dengan baik.

[root@dz-mail-server ~]# yum -y install httpd php php-mbstring php-pear

Kemudian download paket rainloop dari situs resminya.

[root@dz-mail-server ~]# curl -O http://repository.rainloop.net/v2/webmail/rainloop-latest.zip

Lalu unzip pada folder directory root dari apache.

[root@dz-mail-server ~]# unzip rainloop-latest.zip -d /var/www/html/rainloop/
[root@dz-mail-server ~]# find /var/www/html/rainloop -type d -exec chmod 755 {} \;
[root@dz-mail-server ~]# find /var/www/html/rainloop -type f -exec chmod 644 {} \;
[root@dz-mail-server ~]# chown -R apache. /var/www/html/rainloop/

Kemudian konfigurasi SELinux.

[root@dz-mail-server ~]# chcon -R -t httpd_sys_rw_content_t /var/www/html/rainloop/data
[root@dz-mail-server ~]# setsebool -P httpd_can_network_connect on

Konfigurasi virtual host untuk webmail.

[root@dz-mail-server ~]# nano /etc/httpd/conf.d/mail.conf

Tambahkan script dibawah ini :

<VirtualHost *:80>
DocumentRoot /var/www/html/rainloop
ServerName mail.centos.dz
</VirtualHost>

Restart layanan apache untuk memperbarui konfigurasi.

[root@dz-mail-server ~]# systemctl restart httpd

Pada client coba buka url http://mail.centos.dz/?Admin, kemudian kita coba login dengan user admin dan password 12345.

Kemudian klik change untuk mengganti password default admin.

Ketikan password lama kemudian ketikan password yang baru.

Setelah itu klik tab domain >> add domain untuk mengkonfigurasi mail server.

Tentukan domain name dan juga subdomain mail server.

Pada tab general tuliskan default domain pada saat login.

Buka url http://mail.centos.dz dan login dengan salah satu user.

Seperti ini tampilan GUI dari rainloop, kita coba kirim pesan ke salah satu user lainnya.

Ketikan alamat email tujuan beserta isi dari pesannya.

Setelah itu logout kemudian masuk lagi ke akun yang satunya tadi, cek inbox dari akun tersebut.

[Lab 10.1] Membuat mail server pada CentOS 7 Postfix Dovecot

Mail Server adalah server yang menyediakan layanan E-Mail yang dapat digunakan untuk berkirim surat lewat jaringan komputer seperti Internet. Mail Server menggunakan protokol SMTP (Simple Mail Transfer Protocol) untuk mengirim pesan E-Mail dari satu server ke server lainnya, SMTP menggunakan TCP pada port 25. Dan ketika kita ingin mengakses isi  Mail Server dari Client, protokol yang digunakan adalah POP3 dan IMAP, protokol POP3 menggunakan port 110 sedangkan IMAP menggunakan port 143. Intinya SMTP untuk berikirim pesan antar Mail Server sedangkan POP3 dan IMAP untuk mengambil pesan dari Server oleh Client.

Pada CentOS 7 aplikasi yang menjalankan protocol SMTP adalah postfix yang berperan sebagai MTA (Mail Transfer Agent) untuk mengirim pesan E-Mail pada tujuannya, sedangkan aplikasi yang dapat menjalankan POP3 dan IMAP adalah dovecot, aplikasi dovecot ini akan membuka layanan POP3 dan IMAP agar pesan-pesan pada Mail Server dapat diambil oleh Client seperti aplikasi Thunderbird, Microsoft Outlook, dll.

Seperti inilah Mail Server yang akan kita konfigurasi :

  • Mail Server memiliki domain server1.xyz, dan Record MX (Mail Exchange) pada DNS Server lokal, anda dapat melihat tutorial DNS Server Record MX di google atau pada postingan blog saya yang ini.
  • Aplikasi Mail Transfer Agent yang digunakan adalah Postfix dengan protokol SMTP.
  • Dan untuk pengambilan pesan E-Mail menggunakan aplikasi courier dengan protokol IMAP maupun POP3.

Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server centos.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.40
    Domain : mail.centos.dz

Mail Server linux.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.50
    Domain : mail.linux.dz

Mail Server centos.dz

Pertama yang kita lakukan adalah konfigurasi IP Address agar server dapat terhubung dengan jaringan dan juga terhubung dengan Internet. Edit file konfigurasi /etc/sysconfig/network-scripts/ifcfg-enp0s3

[root@dz-mail-server ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
  • Edit dan tambahkan beberapa opsi, dan sesuaikan IP Address dengan jaringan yang anda gunakan.
  • ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

Menginstall Postfix & Dovecot

Pertama kita akan menginstall MTA postfix  untuk keperluan SMTP dan juga akan mengkonfigurasinya, kemudian juga menginstall paket Dovecot.

[root@dz-mail-server ~]# yum -y install postfix dovecot

Kita lakukan beberapa konfigurasi pada file konfigurasi postfix di /etc/postfix/main.cf

[root@dz-mail-server ~]# nano /etc/postfix/main.cf 
  • Pada baris ke 75 uncomment dan tentukan hostname dari mail server kita.
  • myhostname = mail.centos.dz 
  • Pada baris ke 83 uncomment dan tentukan nama domain dari mail server.
  • mydomain = centos.dz 
  • Pada baris ke 99 uncomment saja.
  • myorigin = $mydomain
  • Pada baris ke 116 ganti interface untuk menerima mail menjadi all untuk semuanya.
  • inet_interfaces = all 
  • Pada baris ke 164 tambahkan script ini.
  • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  • Pada baris ke 264 uncomment tuliskan 0.0.0.0/0 agar mail server dapat menerima mail darimana pun.
  • mynetworks =  127.0.0.0/8, 0.0.0.0/0
  • Pada baris 419 uncomment dan gunakan Maildir untuk menyimpan pesan.
  • home_mailbox = Maildir/
  • Pada baris 574 tambahkan script ini untuk banner.
  • smtpd_banner = $myhostname ESMTP
  • Lalu pada baris paling bawah tambahkan script ini untuk menentukan ukuran pesan maksimal dan kotak pesan.
  • message_size_limit = 10485760
    mailbox_size_limit = 1073741824
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Setelah itu restart service postfix.

[root@dz-mail-server ~]# systemctl restart postfix

Buka firewall untuk protokol SMTP.

[root@dz-mail-server ~]# firewall-cmd --add-service=smtp --permanent
[root@dz-mail-server ~]# firewall-cmd --reload

Kemudian kita edit file konfigurasi dovecot.

[root@dz-mail-server ~]# nano /etc/dovecot/dovecot.conf 
  • Pada baris ke 24 uncomment untuk menentukan protokol.
  • protocols = imap pop3 lmtp
  • Pada baris ke 30 uncomment dan ganti menjadi bintang.
  • listen = * 

Konfigurasi authentication.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-auth.conf 
  • Pada baris ke 10 uncomment kita aktifkan plain text login.
  • disable_plaintext_auth = no 
  • Pada baris ke 100 tambahkan script ini.
  • auth_mechanisms = plain login

Konfigurasi mail untuk menentukan Maildir.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-mail.conf 

Pada baris ke 30 uncomment dan tambahkan script ini.

mail_location = maildir:~/Maildir

Kemudian kita edit file konfigurasi master.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-master.conf 

Pada baris ke 96 uncomment dan tambahkan script ini.

  unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix

}

Terakhir konfigurasi SSL.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-ssl.conf 

Pada baris ke 8 ganti menjadi no karena kali ini tidak menggunakan SSL.

ssl = no 

Buka firewall untuk protokol IMAP dan POP.

[root@dz-mail-server ~]# firewall-cmd --add-port={110/tcp,143/tcp} --permanent
[root@dz-mail-server ~]# firewall-cmd --reload

Jalankan layanan dovecot dan enable.

[root@dz-mail-server ~]# systemctl start dovecot
[root@dz-mail-server ~]# systemctl enable dovecot

User E-Mail

Kita buat beberapa user yang akan digunakan untuk akun email mail server yang telah kita buat.

[root@dz-mail-server ~]# adduser linux
[root@dz-mail-server ~]# adduser ubuntu
[root@dz-mail-server ~]# passwd linux
[root@dz-mail-server ~]# passwd linux

Mail Server linux.dz

Pertama yang kita lakukan adalah konfigurasi IP Address agar server dapat terhubung dengan jaringan dan juga terhubung dengan Internet. Edit file konfigurasi /etc/sysconfig/network-scripts/ifcfg-enp0s3

[root@dz-mail2-server ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
  • Edit dan tambahkan beberapa opsi, dan sesuaikan IP Address dengan jaringan yang anda gunakan.
  • ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.56.50
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

Menginstall Postfix & Dovecot

Pertama kita akan menginstall MTA postfix  untuk keperluan SMTP dan juga akan mengkonfigurasinya, kemudian juga menginstall paket Dovecot.

[root@dz-mail2-server ~]# yum -y install postfix dovecot

Kita lakukan beberapa konfigurasi pada file konfigurasi postfix di /etc/postfix/main.cf

[root@dz-mail2-server ~]# nano /etc/postfix/main.cf 
  • Pada baris ke 75 uncomment dan tentukan hostname dari mail server kita.
  • myhostname = mail.linux.dz 
  • Pada baris ke 83 uncomment dan tentukan nama domain dari mail server.
  • mydomain = linux.dz 
  • Pada baris ke 99 uncomment saja.
  • myorigin = $mydomain
  • Pada baris ke 116 ganti interface untuk menerima mail menjadi all untuk semuanya.
  • inet_interfaces = all 
  • Pada baris ke 164 tambahkan script ini.
  • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  • Pada baris ke 264 uncomment tuliskan 0.0.0.0/0 agar mail server dapat menerima mail darimana pun.
  • mynetworks =  127.0.0.0/8, 0.0.0.0/0
  • Pada baris 419 uncomment dan gunakan Maildir untuk menyimpan pesan.
  • home_mailbox = Maildir/
  • Pada baris 574 tambahkan script ini untuk banner.
  • smtpd_banner = $myhostname ESMTP
  • Lalu pada baris paling bawah tambahkan script ini untuk menentukan ukuran pesan maksimal dan kotak pesan.
  • message_size_limit = 10485760
    mailbox_size_limit = 1073741824
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Setelah itu restart service postfix.

[root@dz-mail2-server ~]# systemctl restart postfix

Buka firewall untuk protokol SMTP.

[root@dz-mail2-server ~]# firewall-cmd --add-service=smtp --permanent
[root@dz-mail2-server ~]# firewall-cmd --reload

Kemudian kita edit file konfigurasi dovecot.

[root@dz-mail2-server ~]# nano /etc/dovecot/dovecot.conf 
  • Pada baris ke 24 uncomment untuk menentukan protokol.
  • protocols = imap pop3 lmtp
  • Pada baris ke 30 uncomment dan ganti menjadi bintang.
  • listen = * 

Konfigurasi authentication.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-auth.conf 
  • Pada baris ke 10 uncomment kita aktifkan plain text login.
  • disable_plaintext_auth = no 
  • Pada baris ke 100 tambahkan script ini.
  • auth_mechanisms = plain login

Konfigurasi mail untuk menentukan Maildir.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-mail.conf 

Pada baris ke 30 uncomment dan tambahkan script ini.

mail_location = maildir:~/Maildir

Kemudian kita edit file konfigurasi master.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-master.conf 

Pada baris ke 96 uncomment dan tambahkan script ini.

  unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix

}

Terakhir konfigurasi SSL.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-ssl.conf 

Pada baris ke 8 ganti menjadi no karena kali ini tidak menggunakan SSL.

ssl = no 

Buka firewall untuk protokol IMAP dan POP.

[root@dz-mail2-server ~]# firewall-cmd --add-port={110/tcp,143/tcp} --permanent
[root@dz-mail2-server ~]# firewall-cmd --reload

Jalankan layanan dovecot dan enable.

[root@dz-mail2-server ~]# systemctl start dovecot
[root@dz-mail2-server ~]# systemctl enable dovecot

User E-Mail

Kita buat beberapa user yang akan digunakan untuk akun email mail server yang telah kita buat.

[root@dz-mail2-server ~]# adduser dzikra
[root@dz-mail2-server ~]# adduser debian
[root@dz-mail2-server ~]# passwd dzikra
[root@dz-mail2-server ~]# passwd debian

Testing Mail Service

Pertama kita lakukan telnet pada mail server yang pertama kemudian kirim pesan email antar user yang berada di satu mail server yang sama.

dzikra@D-x455lf:~$ telnet mail.centos.dz smtp
Trying 192.168.56.40...
Connected to mail.centos.dz.
Escape character is '^]'.
220 mail.centos.dz ESMTP
mail from:ubuntu
250 2.1.0 Ok
rcpt to:linux
250 2.1.5 Ok
data
354 End data with .
PESAN EMAIL YANG INI
.
250 2.0.0 Ok: queued as 1E91717A7B3D
mail from:linux
250 2.1.0 Ok
rcpt to:dzikra@linux.dz
250 2.1.5 Ok
data
354 End data with .
PESAN DIKIRIM KE MAIL SERVER SEBELAHNYA
.
250 2.0.0 Ok: queued as 632E217A7B3D
quit
221 2.0.0 Bye
Connection closed by foreign host.

Kemudian telnet POP3 untuk mengecek E-mail yang masuk pada mail server.

dzikra@D-x455lf:~$ telnet mail.centos.dz pop3
Trying 192.168.56.40...
Connected to mail.centos.dz.
Escape character is '^]'.
+OK Dovecot ready.
user linux
+OK
pass password
+OK Logged in.
stat
+OK 1 268
retr 1
+OK 268 octets
Return-Path: <ubuntu@centos.dz>
X-Original-To: linux
Delivered-To: linux@centos.dz
Received: from unknown (unknown [192.168.56.1])
by mail.centos.dz (Postfix) with SMTP id 1E91717A7B3D
for <linux>; Fri, 2 Jun 2017 03:51:25 +0100 (BST)

PESAN EMAIL YANG INI
.
quit
+OK Logging out.
Connection closed by foreign host.

Mail server sebelahnya.

dzikra@D-x455lf:~$ telnet mail.linux.dz pop3
Trying 192.168.56.50...
Connected to mail.linux.dz.
Escape character is '^]'.
+OK Dovecot ready.
user dzikra
+OK
pass password
+OK Logged in.
stat
+OK 2 1373
retr 2
+OK 488 octets
Return-Path: <linux@centos.dz>
X-Original-To: dzikra@linux.dz
Delivered-To: dzikra@linux.dz
Received: from mail.centos.dz (www.centos.dz [192.168.56.40])
by mail.linux.dz (Postfix) with ESMTP id 0D14A10BA61A
for <dzikra@linux.dz>; Fri, 2 Jun 2017 03:53:05 +0100 (BST)
Received: from unknown (unknown [192.168.56.1])
by mail.centos.dz (Postfix) with SMTP id 632E217A7B3D
for <dzikra@linux.dz>; Fri, 2 Jun 2017 03:52:43 +0100 (BST)

PESAN DIKIRIM KE MAIL SERVER SEBELAHNYA
.
quit
+OK Logging out.
Connection closed by foreign host.

[Lab 10.1] Membuat mail server pada CentOS 7 Postfix Dovecot

Mail Server adalah server yang menyediakan layanan E-Mail yang dapat digunakan untuk berkirim surat lewat jaringan komputer seperti Internet. Mail Server menggunakan protokol SMTP (Simple Mail Transfer Protocol) untuk mengirim pesan E-Mail dari satu server ke server lainnya, SMTP menggunakan TCP pada port 25. Dan ketika kita ingin mengakses isi  Mail Server dari Client, protokol yang digunakan adalah POP3 dan IMAP, protokol POP3 menggunakan port 110 sedangkan IMAP menggunakan port 143. Intinya SMTP untuk berikirim pesan antar Mail Server sedangkan POP3 dan IMAP untuk mengambil pesan dari Server oleh Client.

Pada CentOS 7 aplikasi yang menjalankan protocol SMTP adalah postfix yang berperan sebagai MTA (Mail Transfer Agent) untuk mengirim pesan E-Mail pada tujuannya, sedangkan aplikasi yang dapat menjalankan POP3 dan IMAP adalah dovecot, aplikasi dovecot ini akan membuka layanan POP3 dan IMAP agar pesan-pesan pada Mail Server dapat diambil oleh Client seperti aplikasi Thunderbird, Microsoft Outlook, dll.

Seperti inilah Mail Server yang akan kita konfigurasi :

  • Mail Server memiliki domain server1.xyz, dan Record MX (Mail Exchange) pada DNS Server lokal, anda dapat melihat tutorial DNS Server Record MX di google atau pada postingan blog saya yang ini.
  • Aplikasi Mail Transfer Agent yang digunakan adalah Postfix dengan protokol SMTP.
  • Dan untuk pengambilan pesan E-Mail menggunakan aplikasi courier dengan protokol IMAP maupun POP3.

Ini adalah sedikit informasi tentang server yang saya konfigurasi :

Mail Server centos.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.40
    Domain : mail.centos.dz

Mail Server linux.dz

    OS : Linux CentOS 7 x64
    IP Address (enp0s3) : 192.168.56.50
    Domain : mail.linux.dz

Mail Server centos.dz

Pertama yang kita lakukan adalah konfigurasi IP Address agar server dapat terhubung dengan jaringan dan juga terhubung dengan Internet. Edit file konfigurasi /etc/sysconfig/network-scripts/ifcfg-enp0s3

[root@dz-mail-server ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
  • Edit dan tambahkan beberapa opsi, dan sesuaikan IP Address dengan jaringan yang anda gunakan.
  • ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.56.40
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

Menginstall Postfix & Dovecot

Pertama kita akan menginstall MTA postfix  untuk keperluan SMTP dan juga akan mengkonfigurasinya, kemudian juga menginstall paket Dovecot.

[root@dz-mail-server ~]# yum -y install postfix dovecot

Kita lakukan beberapa konfigurasi pada file konfigurasi postfix di /etc/postfix/main.cf

[root@dz-mail-server ~]# nano /etc/postfix/main.cf 
  • Pada baris ke 75 uncomment dan tentukan hostname dari mail server kita.
  • myhostname = mail.centos.dz 
  • Pada baris ke 83 uncomment dan tentukan nama domain dari mail server.
  • mydomain = centos.dz 
  • Pada baris ke 99 uncomment saja.
  • myorigin = $mydomain
  • Pada baris ke 116 ganti interface untuk menerima mail menjadi all untuk semuanya.
  • inet_interfaces = all 
  • Pada baris ke 164 tambahkan script ini.
  • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  • Pada baris ke 264 uncomment tuliskan 0.0.0.0/0 agar mail server dapat menerima mail darimana pun.
  • mynetworks =  127.0.0.0/8, 0.0.0.0/0
  • Pada baris 419 uncomment dan gunakan Maildir untuk menyimpan pesan.
  • home_mailbox = Maildir/
  • Pada baris 574 tambahkan script ini untuk banner.
  • smtpd_banner = $myhostname ESMTP
  • Lalu pada baris paling bawah tambahkan script ini untuk menentukan ukuran pesan maksimal dan kotak pesan.
  • message_size_limit = 10485760
    mailbox_size_limit = 1073741824
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Setelah itu restart service postfix.

[root@dz-mail-server ~]# systemctl restart postfix

Buka firewall untuk protokol SMTP.

[root@dz-mail-server ~]# firewall-cmd --add-service=smtp --permanent
[root@dz-mail-server ~]# firewall-cmd --reload

Kemudian kita edit file konfigurasi dovecot.

[root@dz-mail-server ~]# nano /etc/dovecot/dovecot.conf 
  • Pada baris ke 24 uncomment untuk menentukan protokol.
  • protocols = imap pop3 lmtp
  • Pada baris ke 30 uncomment dan ganti menjadi bintang.
  • listen = * 

Konfigurasi authentication.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-auth.conf 
  • Pada baris ke 10 uncomment kita aktifkan plain text login.
  • disable_plaintext_auth = no 
  • Pada baris ke 100 tambahkan script ini.
  • auth_mechanisms = plain login

Konfigurasi mail untuk menentukan Maildir.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-mail.conf 

Pada baris ke 30 uncomment dan tambahkan script ini.

mail_location = maildir:~/Maildir

Kemudian kita edit file konfigurasi master.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-master.conf 

Pada baris ke 96 uncomment dan tambahkan script ini.

  unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix

}

Terakhir konfigurasi SSL.

[root@dz-mail-server ~]# nano /etc/dovecot/conf.d/10-ssl.conf 

Pada baris ke 8 ganti menjadi no karena kali ini tidak menggunakan SSL.

ssl = no 

Buka firewall untuk protokol IMAP dan POP.

[root@dz-mail-server ~]# firewall-cmd --add-port={110/tcp,143/tcp} --permanent
[root@dz-mail-server ~]# firewall-cmd --reload

Jalankan layanan dovecot dan enable.

[root@dz-mail-server ~]# systemctl start dovecot
[root@dz-mail-server ~]# systemctl enable dovecot

User E-Mail

Kita buat beberapa user yang akan digunakan untuk akun email mail server yang telah kita buat.

[root@dz-mail-server ~]# adduser linux
[root@dz-mail-server ~]# adduser ubuntu
[root@dz-mail-server ~]# passwd linux
[root@dz-mail-server ~]# passwd linux

Mail Server linux.dz

Pertama yang kita lakukan adalah konfigurasi IP Address agar server dapat terhubung dengan jaringan dan juga terhubung dengan Internet. Edit file konfigurasi /etc/sysconfig/network-scripts/ifcfg-enp0s3

[root@dz-mail2-server ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 
  • Edit dan tambahkan beberapa opsi, dan sesuaikan IP Address dengan jaringan yang anda gunakan.
  • ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.56.50
    NETMASK=255.255.255.0
    GATEWAY=192.168.56.1
    DNS1=192.168.56.40
    DNS2=8.8.8.8

Menginstall Postfix & Dovecot

Pertama kita akan menginstall MTA postfix  untuk keperluan SMTP dan juga akan mengkonfigurasinya, kemudian juga menginstall paket Dovecot.

[root@dz-mail2-server ~]# yum -y install postfix dovecot

Kita lakukan beberapa konfigurasi pada file konfigurasi postfix di /etc/postfix/main.cf

[root@dz-mail2-server ~]# nano /etc/postfix/main.cf 
  • Pada baris ke 75 uncomment dan tentukan hostname dari mail server kita.
  • myhostname = mail.linux.dz 
  • Pada baris ke 83 uncomment dan tentukan nama domain dari mail server.
  • mydomain = linux.dz 
  • Pada baris ke 99 uncomment saja.
  • myorigin = $mydomain
  • Pada baris ke 116 ganti interface untuk menerima mail menjadi all untuk semuanya.
  • inet_interfaces = all 
  • Pada baris ke 164 tambahkan script ini.
  • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  • Pada baris ke 264 uncomment tuliskan 0.0.0.0/0 agar mail server dapat menerima mail darimana pun.
  • mynetworks =  127.0.0.0/8, 0.0.0.0/0
  • Pada baris 419 uncomment dan gunakan Maildir untuk menyimpan pesan.
  • home_mailbox = Maildir/
  • Pada baris 574 tambahkan script ini untuk banner.
  • smtpd_banner = $myhostname ESMTP
  • Lalu pada baris paling bawah tambahkan script ini untuk menentukan ukuran pesan maksimal dan kotak pesan.
  • message_size_limit = 10485760
    mailbox_size_limit = 1073741824
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Setelah itu restart service postfix.

[root@dz-mail2-server ~]# systemctl restart postfix

Buka firewall untuk protokol SMTP.

[root@dz-mail2-server ~]# firewall-cmd --add-service=smtp --permanent
[root@dz-mail2-server ~]# firewall-cmd --reload

Kemudian kita edit file konfigurasi dovecot.

[root@dz-mail2-server ~]# nano /etc/dovecot/dovecot.conf 
  • Pada baris ke 24 uncomment untuk menentukan protokol.
  • protocols = imap pop3 lmtp
  • Pada baris ke 30 uncomment dan ganti menjadi bintang.
  • listen = * 

Konfigurasi authentication.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-auth.conf 
  • Pada baris ke 10 uncomment kita aktifkan plain text login.
  • disable_plaintext_auth = no 
  • Pada baris ke 100 tambahkan script ini.
  • auth_mechanisms = plain login

Konfigurasi mail untuk menentukan Maildir.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-mail.conf 

Pada baris ke 30 uncomment dan tambahkan script ini.

mail_location = maildir:~/Maildir

Kemudian kita edit file konfigurasi master.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-master.conf 

Pada baris ke 96 uncomment dan tambahkan script ini.

  unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix

}

Terakhir konfigurasi SSL.

[root@dz-mail2-server ~]# nano /etc/dovecot/conf.d/10-ssl.conf 

Pada baris ke 8 ganti menjadi no karena kali ini tidak menggunakan SSL.

ssl = no 

Buka firewall untuk protokol IMAP dan POP.

[root@dz-mail2-server ~]# firewall-cmd --add-port={110/tcp,143/tcp} --permanent
[root@dz-mail2-server ~]# firewall-cmd --reload

Jalankan layanan dovecot dan enable.

[root@dz-mail2-server ~]# systemctl start dovecot
[root@dz-mail2-server ~]# systemctl enable dovecot

User E-Mail

Kita buat beberapa user yang akan digunakan untuk akun email mail server yang telah kita buat.

[root@dz-mail2-server ~]# adduser dzikra
[root@dz-mail2-server ~]# adduser debian
[root@dz-mail2-server ~]# passwd dzikra
[root@dz-mail2-server ~]# passwd debian

Testing Mail Service

Pertama kita lakukan telnet pada mail server yang pertama kemudian kirim pesan email antar user yang berada di satu mail server yang sama.

dzikra@D-x455lf:~$ telnet mail.centos.dz smtp
Trying 192.168.56.40...
Connected to mail.centos.dz.
Escape character is '^]'.
220 mail.centos.dz ESMTP
mail from:ubuntu
250 2.1.0 Ok
rcpt to:linux
250 2.1.5 Ok
data
354 End data with .
PESAN EMAIL YANG INI
.
250 2.0.0 Ok: queued as 1E91717A7B3D
mail from:linux
250 2.1.0 Ok
rcpt to:dzikra@linux.dz
250 2.1.5 Ok
data
354 End data with .
PESAN DIKIRIM KE MAIL SERVER SEBELAHNYA
.
250 2.0.0 Ok: queued as 632E217A7B3D
quit
221 2.0.0 Bye
Connection closed by foreign host.

Kemudian telnet POP3 untuk mengecek E-mail yang masuk pada mail server.

dzikra@D-x455lf:~$ telnet mail.centos.dz pop3
Trying 192.168.56.40...
Connected to mail.centos.dz.
Escape character is '^]'.
+OK Dovecot ready.
user linux
+OK
pass password
+OK Logged in.
stat
+OK 1 268
retr 1
+OK 268 octets
Return-Path: <ubuntu@centos.dz>
X-Original-To: linux
Delivered-To: linux@centos.dz
Received: from unknown (unknown [192.168.56.1])
by mail.centos.dz (Postfix) with SMTP id 1E91717A7B3D
for <linux>; Fri, 2 Jun 2017 03:51:25 +0100 (BST)

PESAN EMAIL YANG INI
.
quit
+OK Logging out.
Connection closed by foreign host.

Mail server sebelahnya.

dzikra@D-x455lf:~$ telnet mail.linux.dz pop3
Trying 192.168.56.50...
Connected to mail.linux.dz.
Escape character is '^]'.
+OK Dovecot ready.
user dzikra
+OK
pass password
+OK Logged in.
stat
+OK 2 1373
retr 2
+OK 488 octets
Return-Path: <linux@centos.dz>
X-Original-To: dzikra@linux.dz
Delivered-To: dzikra@linux.dz
Received: from mail.centos.dz (www.centos.dz [192.168.56.40])
by mail.linux.dz (Postfix) with ESMTP id 0D14A10BA61A
for <dzikra@linux.dz>; Fri, 2 Jun 2017 03:53:05 +0100 (BST)
Received: from unknown (unknown [192.168.56.1])
by mail.centos.dz (Postfix) with SMTP id 632E217A7B3D
for <dzikra@linux.dz>; Fri, 2 Jun 2017 03:52:43 +0100 (BST)

PESAN DIKIRIM KE MAIL SERVER SEBELAHNYA
.
quit
+OK Logging out.
Connection closed by foreign host.