Minggu, 05 April 2020

Konfigurasi Mail Server pada Debian 9


Mail server adalah sebuah server atau layanan internet berbasis cloud computing yang digunakan untuk mengirim dan menerima email dalam satu jaringan server mail yang sama. Mail server dapat mengumpulkan, mengolah, dan mengirim data-data serta informasi dalam bentuk email / surat elektronik dengan menggunakan domain email khusus atau domain email tersendiri. Mail server menggunakan daasr layanan client-server, dimana client dapat mengakses server email melalui aplikasi.

Ada tiga protocol utama dalam mengirimkan email melalui mail server, yaitu protocol SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol V3), dan IMAP SMTP. SMTP lebih banyak digunakan untuk menampung data serta mengirimkan email ke alamat email lain yang ingin dituju. Protocol POP3 dan protocol IMAP lebih banyak digunakan untuk memudahkan user dalam membaca dan mengakses email secara remote.

Mail server memiliki dua server yang berbeda fungsinya, yaitu server yang berfungsi sebagai outgoing server (sending email) serta yang kedua adalah incoming server (receiving email). Outgoing server dihandle oleh server SMTP pada port 25. Sedangkan incoming server dihandle oleh POP3 pada port 110 atau IMAP pada port 143. Port adalah semacam konektor yang berfungsi untuk konektor atau pintu buka tutup akses, koneksi, serta distribusi dan transmisi data dari komputer satu ke komputer maupun jaringan lainnya.

Bagaimana cara pengiriman dan penerimaan email? Tentu cara kerja email ini bervariasi tergantung dari program dan aplikasinya. Proses mengiriman email melalui TCP/IP dapat dianalogikan sebagai berikut :

Sender (pengirim) -> user agent -> waiting list email -> MTA -> user mailbox -> user agent -> receiver (penerima).

Cara kerja mail server secara sederhana dapat dijelaskan sebagai berikut, pada awalnya email-email yang telah dikirimkan oleh sender, maka akan dikumpulkan dan disimpan menjadi satu file dalam database mail server. Pengelompokkan ini berdasarkan atas tujuan email. Dalam sebuah email yang dikirimkan tentu telah terdapat informasi tentang tujuan penerima email dan asal email sender tersebut, serta informasi tanggal dan waktu pengiriman email. Ketika receiver email membaca email dari pengirim email, itu artinya penerima email tersebut telah mengakses mail server dan membaca pesan / file yang tersimpan dalam database mail server yang ditampilkan melalui aplikasi dan browser oleh user tersebut.

Pada dasarnya mail server bekerja dalam mode client server. Maka dari itu, ada beberapa aplikasi dan program mail server yang dapat dibedakan berdasarkan komponennya menjadi tiga macam, yaitu sebagai berikut :
  • Komponen Mail Transfer Agent (MTA), contohnya aplikasi Sendmail, Postfix, Exim, Qmail, MAilX, Pine, dan Netscape.
  • Komponen Mail Delivery Agent (MDA), contohnya mail server  yang berfungsi mendistribusikan email yang datang ke MTA sesuai mailbox masing-masing user.
  • Komponen Mail User Agent (MUA), contohnya Thunderbird, Outlook, Eudora Mail, Kmail, dan Evolution.
Dibawah ini akan dijelaskan mengenai konfigurasi Mail Server menggunakan Postfix sebagai SMTP untuk mengirim, dan Dovecot sebagai POP3 dan IMAP untuk menerima surat.

KONFIGURASI

1. Lakukan konfigurasi IP address pada interface agar terhubung ke jaringan dan internet.


2. Pasang DNS server pada server Debian kita dengan menggunakan BIND9. Kemudian pada direktori /etc/bind/, copy file db.local sebagai forwarder dan db.127 sebagai reverse DNS dengan nama salinan sesuai keinginan anda. Disini saya namakan file db.local menjadi belajar, dan db.127 menjadi ip.


3. Buka file forwarder (dalam hal ini salinan db.local). Ubah isinya yang semula localhost menjadi nama domain sesuai keinginan anda. Masukkan juga IP address server dan subdomain mail.



4. Selanjutnya buka file reverse (salinan db.127). Ubah teks localhost menjadi nama domain dan



5. Kemudian buka file named.conf.local. Masukkan skrip seperti pada gambar dibawah ini. Masukkan forward zone (nama domain), dan arahkan path ke file forwarder. Masukkan juga reverse zone (alamat_ip_dibalik.in-addr.arpa) dan arahkan path ke file reverse.



6. Lakukan restart pada BIND9 dengan perintah  systemctl restart bind9. Dan cek statusnya dengan perintah systemctl status bind9. Pastikan service sudah berjalan (active).


7. Lakukan pengecekan domain dengan perintah dig dan ping.



8. Saatnya kita menginstal paket postfix, dovecot-pop3d, dan dovecot-imapd yang merupakan komponen mail server untuk mengirim dan menerima surat. Sebelum menginstal paket-paket tersebut, masukkan dulu CD atau ISO debian ke server. Disini saya menggunakan VirtualBox, berikut cara memasukkan file ISO debian.


Jika kita belum memasukkan CD atau ISO tersebut, maka akan muncul pesan seperti pada gambar dibawah ini saat menginstal paket-paket tersebut (setelah memasukkan perintah pada step nomor 11).


9. Setelah file ISO dimasukkan melalui VirtualBox, mount ISO tersebut dengan perintah apt-cdrom add.


10. Setelah ISO di mount, maka akan masuk ke file /etc/apt/source.list. Buka file source.list dengan perintah nano source.list.



11. Lakukan instalasi paket postfix, dovecot-pop3d, dan dovecot-imapd dengan perintah apt-get install postfix dovecot-pop3d dovecot-imapd, kemudian tekan Y dan enter untuk melanjutkan instalasi.


12. Pada Postfix Configuration, pilih general type Internet Site.


13. Masukkan FQDN (Fully Qualified Domain Name) dari mail yang telah kita daftarkan pada DNS server kita (BIND9).


14. Lakukan restart pada postfix dan dovecot dengan perintah systemctl restart (nama_program). Dan cek statusnya dengan perintah systemctl status (nama_program), pastikan sudah berjalan (active).



15. Buat 2 user sebagai pengirim dan penerima nantinya, dengan perintah adduser (nama_user).



PENGUJIAN

1. Pengiriman melalui telnet dengan port 25. Masukkan mail from:(dari user 1 sebagai pengirim), rcpt to:(kepada user 2 sebagai penerima), data (tulis isi surat), dan untuk keluar dengan perintah quit.


2. Kemudian untuk melihat isi surat yang diterima user 2, kita buka mail dengan telnet dan port 110. Masukkan user (user penerima), pass (kata sandi yang dimasukkan saat membuat user pada step 15), stat (untuk melihat pesan masuk), retr (nomor surat yang diterima). Dan akan muncul isi dari surat yang dikirim oleh user 1. Untuk keluar, silahkan masukkan perintah quit.


Sumber:

Minggu, 29 Maret 2020

Konfigurasi Apache dan Nginx pada Debian 9


Assalamu'alaikum warahmatullahi wabarakatuh

Pada kesempatan kali ini, kita akan mengulas mengenai web server yang banyak digunakan di dunia, yaitu Nginx dan Apache. Web server sendiri adalah sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada klien yang dikenal dan biasanya kita kenal dengan nama web browser (Mozilla Firefox, Google Chrome) dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML.

Fungsi utama Server atau Web server adalah untuk melakukan atau akan mentransfer berkas permintaan pengguna melalui protokol komunikasi yang telah ditentukan sedemikian rupa. Halaman web yang diminta terdiri dari berkas teks, video, gambar, file dan banyak lagi. Pemanfaatan web server berfungsi untuk mentransfer seluruh aspek pemberkasan dalam sebuah halaman web termasuk yang di dalam berupa teks, video, gambar dan banyak lagi.

Dibawah ini merupakan perbedaan antara Apache dengan Nginx:
  • Apache adalah server HTTP open-source sedangkan Nginx adalah open-source, web server asinkron berkinerja tinggi, dan server proxy terbalik.
  • Perbaikan bug, dukungan, pemeliharaan, dan pengembangan aplikasi di server HTTP Apache dikelola dan dikelola oleh komunitas pengguna dari seluruh dunia dan dikoordinasikan oleh Yayasan Perangkat Lunak Apache sedangkan Nginx ditangani oleh perusahaan dengan nama yang sama yang didirikan di 2011.
  • Perbedaan utama antara keduanya adalah bagaimana mereka menangani permintaan klien. Apache menyediakan berbagai modul multiprosesor yang berbeda untuk menangani permintaan klien dan trafik web. Sedangkan Nginx dirancang sedemikian rupa untuk menangani beberapa permintaan klien secara bersamaan dengan sumber daya perangkat keras minimal.
  • Di Apache, single thread dikaitkan dengan hanya satu koneksi sedangkan single thread di Nginx dapat menangani beberapa koneksi. Semua proses dimasukkan ke dalam event loop bersama dengan koneksi lain dan dikelola secara tidak sinkron. Proses ini menghabiskan lebih sedikit memori sehingga meningkatkan kinerja.
  • Apache HTTP Server memiliki arsitektur multi-threaded yang tidak memiliki skalabilitas. Sedangkan Nginx mengikuti pendekatan event-driven asinkron untuk menangani beberapa permintaan klien. Arsitektur event-driven dirancang untuk memfasilitasi kinerja yang lebih baik bahkan di bawah trafik yang padat.
  • Server Apache menyajikan konten statis menggunakan metode konvensional dan memproses konten dinamis secara asli di dalam web server itu sendiri. Nginx tidak dapat memproses konten dinamis secara internal. Itu bergantung pada proses eksternal untuk eksekusi.

KONFIGURASI APACHE

1. Konfigurasi IP Address, sesuaikan dengan jaringan yang ada di tempat anda.


2. Konfigurasi DNS, sebelum melakukan konfigurasi ini kita membutuhkan aplikasi BIND9, silahkan diinstal terlebih dahulu di server anda. Jika sudah diinstal, masuk ke direktori /etc/bind/, kemudian copy file db.local. Untuk nama file yang dicopy terserah saja, seperti contoh dibawah ini saya namakan file "belajar". Buka file tersebut, dan ubah teks localhost menjadi nama domain yang anda inginkan.


3. Lakukan pengujian koneksi terhadap domain tersebut.


4. Install aplikasi dan paket-paket apache web server, dengan perintah apt install apache2. Kemudian tekan Y dan enter untuk melanjutkan instalasi.


5. Pindah ke direktori /etc/apache2/sites-available/, dan copy file 000-default.conf menjadi (namafile).conf. Disini saya contohkan nama filenya adalah belajar.conf. Untuk perintah copy nya adalah cp (file yang ingin dicopy) (nama file setelah dicopy).


6. Buka file yang tadi dicopy, kemudian ubah ServerName menjadi nama domain yang sebelumnya telah dikonfigurasi.


7. Untuk merubah konten website default apache, filenya bisa diubah di direktori /var/www/html/, ubah file index.html. Disini dicontohkan hanya merubah teks saja, untuk membuat konten website yang baik, diperlukan pengetahuan tentang coding dan pemrograman website.




8. Matikan file 000-default.conf dengan perintah a2dissite (namafile).


9. Dan aktifkan file belajar.conf (yang tadi dikonfigurasi) dengan perintah a2ensite (namafile).


10. Restart web server apache dengan perintah /etc/init.d/apache2 restart.



PENGUJIAN APACHE

1. Arahkan alamat DNS pada komputer client ke IP server.


2. Pastikan client sudah bisa melakukan ping ke nama domain.


3. Lakukan pengetesan di web browser menggunakan alamat IP dan menggunakan nama domain.




Selanjutnya kita akan mencoba membuat 2 domain pada Debian, yang nantinya akan kita akses web servernya menggunakan domain tersebut. Filenya akan diletakkan pada /var/www/(namadomain).html, dan kita akan mencoba script html dengan marquee (teks berjalan).

KONFIGURASI

1. Kita buat 2 nama domain yang berbeda. Copy file db.local menjadi 2 file untuk forward DNS dengan nama file sesuai yang anda inginkan.


2. Buka kedua file tersebut, dan ubah isinya yang semula localhost menjadi nama domain. Kemudian masukkan juga alamat IP dari server kita.





3. Buka file named.conf.local, dan buat zone untuk kedua nama domain yang sebelumnya kita buat. Path file arahkan ke masing-masing file forward DNS.



4. Restart BIND9 untuk menerapkan perubahan yang telah kita lakukan.


5. Lakukan pengujian terhadap kedua nama domain yang telah dikonfigurasi. Pastikan DNS telah bekerja.



6. Buat 2 folder konten untuk masing-masing domain di direktori /var/www/. Masukkan perintah mkdir (nama folder), dan buat sebuah file konten didalam folder tersebut dengan nama file index.html.



7. Masukkan script html dengan marquee. Untuk scriptnya silahkan browsing di internet, banyak yang sudah menyediakannya. Berikut ini adalah contoh sederhana dari script tersebut.


8. Lakukan hal yang sama pada folder konten yang satunya lagi. Dan buat file index.html, serta masukkan scriptnya.



9. Pada direktori /etc/apache2/sites-available/, kita buat VirtualHost dengan melakukan copy pada file 000-default.conf, dengan menggunakan perintah cp (nama file yang ingin dicopy) (nama file setelah dicopy).conf.


10. Ubah isi file tersebut. Masukkan nama domain pada ServerName dan path file tempat kita meletakkan file konten website.





11. Buat link pada kedua file tersebut, letakkan pada /etc/apache2/sites-enabled/. Kemudian restart apache dengan perintah systemctl restart apache2.


12. Lakukan pengetesan dengan memasukkan nama domain pada web browser. Pastikan domain dapat diakses, dan konten website sesuai dengan yang telah kita masukkan scriptnya.





KONFIGURASI NGINX

1. Bagi yang sebelumnya menginstall apache web server seperti pada step diatas, kita matikan dulu apache nya dengan perintah systemctl stop apache2, kemudian cek dengan perintah systemctl status apache2. Pastikan statusnya menjadi inactive.



2. Kemudian install nginx beserta paket-paketnya dengan perintah apt install nginx, kemudian tekan Y dan enter untuk melanjutkan instalasi.


3. Pada direktori /var/www/html/, pindahkan file index.html milik apache. Agar yang berada di direktori tersebut hanya ada 1 file konten milik nginx.


4. Sebelum kita cek melalui web browser, kita lihat status nginx dengan perintah systemctl status nginx. Pastikan statusnya active (running) seperti pada gambar dibawah ini.



PENGUJIAN NGINX

1. Pengujian pertama, kita masukkan alamat IP server pada web browser. Dan pastikan halaman web nginx berhasil muncul seperti pada gambar dibawah ini.


2. Jika pada sebelumnya sudah pernah dipasang DNS, maka pengujian dengan memanggil nama domain pada web browser pun harusnya sudah berhasil dilakukan seperti pada gambar dibawah ini.



Selanjutnya kita akan membuat web server nginx dengan 2 nama domain dan masing-masing domain tersebut memiliki konten web yang berbeda. File path nya akan diletakkan pada /home/(namaanda).

KONFIGURASI

1. Install BIND9, kemudian masuk ke direktori /etc/bind/. Copy file db.local menjadi 2 file baru untuk dijadikan sebagai forward DNS. 


2. Buka file tersebut, ubah localhost menjadi nama domain. Dan tambahkan subdomain www serta masukkan alamat IP dari server tersebut.





3. Buka file named.conf.local, dan masukkan zone dari masing-masing domain. Arahkan path file ke file yang sudah dicopy dan diedit sesuai dengan domainnya masing-masing.



4. Restart service bind9 dengan perintah systemctl restart bind9, dan uji koneksi ke masing-masing domain yang sudah dibuat.




5. Buat 2 folder untuk konten dari masing-masing domain pada direktori /home/(namauser)/. 


6. Copy file konten pada direktori /var/www/html/ ke folder yang sudah dibuat di /home/(namaanda)/. Beri nama index.html pada file tersebut.


7. Buka file index.html, dan silahkan ubah script pada file tersebut sesuai keinginan anda. Disini saya hanya akan merubah beberapa teks dengan tampilan web sederhana untuk pengujian.





8. Pada direktori /etc/nginx/sites-available/, copy file default menjadi 2 file untuk Server Blocks (VirtualHost) pada nginx.


9. Buka file tersebut, dan ubah pada bagian listen (port http), root (file path untuk konten website), dan server name (nama domain). Lakukan pada kedua file sesuai domainnya masing-masing.





10. Buat link pada kedua file tersebut, letakkan di /etc/nginx/sites-enabled/. Kemudian lakukan reload pada service nginx.



11. Lakukan pengujian dengan memanggil kedua domain melalui web browser. Pastikan konten website telah sesuai dengan domain masing-masing sesuai dengan konfigurasi yang telah dilakukan.



Sumber: