Praktikum WEB MAIL Server - Ubuntu 24.04

📌 Tujuan Praktikum

Setelah mengikuti praktikum ini, Anda diharapkan mampu:

  • Memahami fungsi dan cara kerja WEB MAIL Server
  • Memahami perbedaan Roundcube dan SquirrelMail
  • Menginstall dan mengkonfigurasi Roundcube Webmail
  • Menginstall dan mengkonfigurasi SquirrelMail (opsional)
  • Mengintegrasikan Webmail dengan Postfix dan Dovecot
  • Menguji akses email melalui browser
1. Fungsi WEB MAIL Server Teori

WEB MAIL Server adalah aplikasi berbasis web yang memungkinkan pengguna mengakses email melalui browser tanpa perlu menginstal mail client (seperti Thunderbird atau Outlook). WEB MAIL Server berinteraksi dengan Mail Server (Postfix + Dovecot) untuk mengirim, menerima, dan mengelola email.

Analogi WEB MAIL Server:

WEB MAIL Server seperti "ATM yang bisa diakses dari mana saja". Anda tidak perlu datang ke bank (mail client), cukup akses melalui website (webmail) dari komputer mana pun yang terhubung ke internet.

🔑 Fungsi Utama WEB MAIL Server

  • Antarmuka Web: Menyediakan GUI untuk mengelola email
  • Integrasi IMAP/SMTP: Terhubung ke Mail Server (Postfix + Dovecot)
  • Manajemen Email: Membaca, mengirim, menghapus, dan mengelola folder
  • Fitur Tambahan: Address book, kalender, filter spam
  • Akses Universal: Bisa diakses dari perangkat apapun dengan browser

📋 Perbandingan WEB MAIL Client

Roundcube
Keunggulan:
✅ Tampilan modern & responsif
✅ Fitur lengkap (drag & drop)
✅ Plugin support
✅ AJAX untuk interaksi cepat

Kekurangan:
❌ Membutuhkan database
❌ Konfigurasi lebih kompleks
SquirrelMail
Keunggulan:
✅ Ringan dan cepat
✅ Mudah diinstall
✅ Tidak butuh database
✅ Kompatibel dengan PHP lama

Kekurangan:
❌ Tampilan kuno
❌ Fitur terbatas
💡 Pada Praktikum Ini:
  • ✅ Akan menginstall Roundcube sebagai Webmail utama
  • ✅ Akan menginstall SquirrelMail sebagai alternatif (opsional)
  • ✅ Integrasi dengan Postfix dan Dovecot yang sudah dibuat sebelumnya
2. Skenario & Topologi Desain

Pada praktikum ini, kita akan membangun WEB MAIL Server dengan spesifikasi berikut:

KomponenKeterangan
Sistem OperasiUbuntu Server 24.04 LTS
IP Address Server192.168.10.20/24
Gateway192.168.10.1
Web ServerApache2 + PHP
DatabaseMariaDB (untuk Roundcube)
Webmail UtamaRoundcube
Webmail AlternatifSquirrelMail (opsional)
Domainwebmail.smk-tkj.lmn
ClientBrowser (Firefox, Chrome, Edge)
Topologi Jaringan WEB MAIL Server
Gambar 1: Topologi Jaringan WEB MAIL Server
Keterangan Topologi:
  • Router → Gateway (192.168.10.1) dan sumber jaringan
  • Switch → Menghubungkan semua perangkat dalam satu jaringan
  • WEB MAIL Server → Server dengan IP 192.168.10.20 menjalankan Roundcube + SquirrelMail
  • Client → Komputer yang mengakses webmail melalui browser
3. Persiapan DNS untuk Webmail Step 1

Tambahkan record A untuk subdomain webmail.smk-tkj.lmn pada DNS Server.

📝 Langkah-langkah

1. Edit file zone DNS Server (/etc/bind/db.smk-tkj):

sudo nano /etc/bind/db.smk-tkj

2. Tambahkan record berikut:

; A Record untuk Webmail
webmail IN  A   192.168.10.20

3. Restart DNS Server:

sudo systemctl restart bind9

4. Uji DNS:

dig webmail.smk-tkj.lmn
nslookup webmail.smk-tkj.lmn
✅ DNS untuk Webmail berhasil dikonfigurasi!

Subdomain: webmail.smk-tkj.lmn → 192.168.10.20

4. Install Roundcube Step 2

Roundcube adalah webmail open source dengan tampilan modern dan fitur lengkap. Roundcube menggunakan database untuk menyimpan pengaturan dan address book user.

📝 Langkah-langkah Install Roundcube

1. Install dependensi Roundcube:

sudo apt update
sudo apt install wget unzip php php-mysql php-xml php-curl php-zip php-gd php-intl php-mbstring php-cli -y

2. Download Roundcube:

cd /var/www/html
sudo wget https://github.com/roundcube/roundcubemail/releases/download/1.6.7/roundcubemail-1.6.7-complete.tar.gz
sudo tar -xzf roundcubemail-1.6.7-complete.tar.gz
sudo mv roundcubemail-1.6.7 roundcube

3. Set permission:

sudo chown -R www-data:www-data /var/www/html/roundcube
sudo chmod -R 755 /var/www/html/roundcube

4. Buat direktori untuk file temp dan logs:

sudo mkdir -p /var/www/html/roundcube/temp
sudo mkdir -p /var/www/html/roundcube/logs
sudo chown -R www-data:www-data /var/www/html/roundcube/temp /var/www/html/roundcube/logs
sudo chmod 770 /var/www/html/roundcube/temp /var/www/html/roundcube/logs
✅ Roundcube berhasil di-download!

Lokasi: /var/www/html/roundcube

5. Konfigurasi Database Roundcube Step 3

Roundcube membutuhkan database untuk menyimpan data pengguna, address book, dan pengaturan.

📝 Langkah-langkah

1. Login ke MariaDB:

sudo mysql -u root -p

2. Buat database dan user untuk Roundcube:

CREATE DATABASE roundcube;
CREATE USER 'roundcube_user'@'localhost' IDENTIFIED BY 'P@ssw0rd123';
GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. Import skema database Roundcube:

sudo mysql -u root -p roundcube < /var/www/html/roundcube/SQL/mysql.initial.sql
💡 Catatan: Masukkan password MariaDB root ketika diminta.
✅ Database Roundcube berhasil dibuat!
  • Database: roundcube
  • User: roundcube_user
  • Password: P@ssw0rd123
6. Konfigurasi Roundcube Step 4

Konfigurasi Roundcube untuk terhubung ke database dan Mail Server.

📝 Langkah-langkah

1. Copy file konfigurasi default:

sudo cp /var/www/html/roundcube/config/config.inc.php.sample /var/www/html/roundcube/config/config.inc.php

2. Edit file konfigurasi:

sudo nano /var/www/html/roundcube/config/config.inc.php

3. Sesuaikan konfigurasi berikut:

<?php
// Database Configuration
$config['db_dsnw'] = 'mysql://roundcube_user:P@ssw0rd123@localhost/roundcube';

// IMAP Configuration (Dovecot)
$config['default_host'] = 'localhost';
$config['default_port'] = 143;
$config['imap_auth_type'] = 'LOGIN';
$config['imap_conn_options'] = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
    ),
);

// SMTP Configuration (Postfix)
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;
$config['smtp_auth_type'] = 'LOGIN';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';

// Application Settings
$config['product_name'] = 'Webmail SMK TKJ';
$config['support_url'] = '';
$config['skin'] = 'elastic';

// Language & Timezone
$config['language'] = 'id_ID';
$config['timezone'] = 'Asia/Jakarta';

// Session & Security
$config['des_key'] = 'RANDOM_KEY_32_CHARACTERS_STRING';
$config['session_lifetime'] = 30;

// Upload Settings
$config['max_message_size'] = '10M';

// Logging
$config['log_driver'] = 'file';
$config['log_dir'] = '/var/www/html/roundcube/logs/';
$config['syslog_id'] = 'roundcube';
📖 Penjelasan Konfigurasi:
  • db_dsnw → Koneksi ke database Roundcube
  • default_host → IMAP Server (Dovecot)
  • smtp_server → SMTP Server (Postfix)
  • des_key → Kunci enkripsi session (ganti dengan random)
  • skin → Tema Elastic (modern)

4. Generate random key untuk des_key:

openssl rand -base64 32

Copy hasilnya dan ganti RANDOM_KEY_32_CHARACTERS_STRING

✅ Roundcube berhasil dikonfigurasi!
7. Konfigurasi Virtual Host Roundcube Step 5

Buat Virtual Host untuk mengakses Roundcube melalui subdomain webmail.smk-tkj.lmn.

📝 Langkah-langkah

1. Buat file Virtual Host:

sudo nano /etc/apache2/sites-available/webmail.conf

2. Isi dengan konfigurasi berikut:

<VirtualHost *:80>
    ServerAdmin admin@smk-tkj.lmn
    ServerName webmail.smk-tkj.lmn
    DocumentRoot /var/www/html/roundcube

    <Directory /var/www/html/roundcube>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/webmail_error.log
    CustomLog ${APACHE_LOG_DIR}/webmail_access.log combined
</VirtualHost>

3. Aktifkan Virtual Host:

sudo a2ensite webmail.conf
sudo systemctl reload apache2

4. Uji akses Roundcube:

Buka browser dan ketik alamat: http://webmail.smk-tkj.lmn

Jika berhasil, akan muncul halaman login Roundcube.

Login dengan username admin@smk-tkj.lmn dan password yang sudah dibuat.

✅ Roundcube berhasil diakses!

URL: http://webmail.smk-tkj.lmn

8. Install SquirrelMail (Opsional) Step 6

SquirrelMail adalah webmail alternatif yang lebih ringan dan sederhana. Cocok untuk server dengan spesifikasi rendah atau sebagai backup webmail.

💡 Catatan: Bagian ini opsional. Jika sudah menggunakan Roundcube, Anda bisa melewati bagian ini.

📝 Langkah-langkah Install SquirrelMail

1. Install SquirrelMail:

sudo apt install squirrelmail -y

2. Konfigurasi SquirrelMail:

sudo squirrelmail-configure
📖 Panduan konfigurasi SquirrelMail:
  • Pilih 2. Server Settings → tekan Enter
  • Pilih A. Update IMAP Settings → tekan Enter
  • Isi 1. imapServerAddress → localhost
  • Isi 2. imapPort → 143
  • Pilih B. Update SMTP Settings → tekan Enter
  • Isi 1. smtpServerAddress → localhost
  • Isi 2. smtpPort → 25
  • Kembali ke menu utama dengan q
  • Pilih S. Save Data → tekan Enter
  • Pilih Q. Quit → tekan Enter

3. Buat link ke direktori SquirrelMail:

sudo ln -s /usr/share/squirrelmail /var/www/html/squirrelmail

4. Uji akses SquirrelMail:

Buka browser dan ketik alamat: http://webmail.smk-tkj.lmn/squirrelmail

Login dengan username admin@smk-tkj.lmn dan password yang sudah dibuat.

✅ SquirrelMail berhasil diinstall!

URL: http://webmail.smk-tkj.lmn/squirrelmail

9. Konfigurasi HTTPS untuk Webmail (Opsional) Step 7

Untuk keamanan, sebaiknya webmail diakses melalui HTTPS. Gunakan sertifikat self-signed atau Let's Encrypt.

💡 Catatan: Bagian ini opsional. Untuk testing, HTTP sudah cukup.

📝 Langkah-langkah

1. Aktifkan modul SSL Apache2:

sudo a2enmod ssl
sudo systemctl restart apache2

2. Buat sertifikat self-signed untuk webmail:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
 -keyout /etc/ssl/private/webmail.key \
 -out /etc/ssl/certs/webmail.crt

Isi Common Name dengan webmail.smk-tkj.lmn

3. Buat Virtual Host HTTPS untuk webmail:

sudo nano /etc/apache2/sites-available/webmail-ssl.conf

4. Isi dengan konfigurasi:

<VirtualHost *:443>
    ServerAdmin admin@smk-tkj.lmn
    ServerName webmail.smk-tkj.lmn
    DocumentRoot /var/www/html/roundcube

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/webmail.crt
    SSLCertificateKeyFile /etc/ssl/private/webmail.key

    <Directory /var/www/html/roundcube>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/webmail_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/webmail_ssl_access.log combined
</VirtualHost>

5. Aktifkan Virtual Host HTTPS:

sudo a2ensite webmail-ssl.conf
sudo systemctl reload apache2

6. Akses webmail melalui HTTPS:

Buka browser dan ketik alamat: https://webmail.smk-tkj.lmn

Jika menggunakan self-signed, browser akan menampilkan peringatan keamanan.

Klik "Advanced" → "Proceed to webmail.smk-tkj.lmn (unsafe)" untuk melanjutkan.

✅ HTTPS untuk Webmail berhasil dikonfigurasi!

URL: https://webmail.smk-tkj.lmn

10. Pengujian WEB MAIL Server Step 8

Lakukan pengujian untuk memastikan WEB MAIL Server berjalan dengan baik.

10.1 Uji Login

1. Buka browser dan akses: http://webmail.smk-tkj.lmn

2. Login dengan:

  • Username: admin@smk-tkj.lmn
  • Password: [password admin]

Jika berhasil, akan masuk ke dashboard Roundcube.

10.2 Uji Kirim Email

1. Klik "Compose" atau "Tulis"

2. Isi:

  • To: user@smk-tkj.lmn
  • Subject: Test Email dari Webmail
  • Message: Halo user, ini email test dari webmail!

3. Klik "Send"

Jika berhasil, email akan terkirim dan masuk ke inbox user.

10.3 Uji Terima Email

1. Login sebagai user@smk-tkj.lmn

2. Cek inbox, seharusnya ada email dari admin

3. Buka email dan balas

10.4 Uji SquirrelMail (Opsional)

Buka browser dan akses: http://webmail.smk-tkj.lmn/squirrelmail

Login dengan username admin@smk-tkj.lmn dan password yang sudah dibuat.

Coba kirim email melalui SquirrelMail.

⚠️ Troubleshooting:
  • Connection failed: Pastikan Postfix dan Dovecot berjalan
  • Login failed: Periksa username (gunakan email lengkap) dan password
  • Cannot send email: Periksa konfigurasi SMTP di Roundcube
  • Blank page: Periksa error log /var/log/apache2/error.log
✅ WEB MAIL Server berhasil diuji!
  • ✅ Login berhasil
  • ✅ Kirim email berhasil
  • ✅ Terima email berhasil
  • ✅ SquirrelMail (opsional) berfungsi
11. Kesimpulan Selesai

Dalam praktikum ini, Anda telah berhasil melakukan:

Ringkasan Akses Webmail:
  • Roundcube: http://webmail.smk-tkj.lmn
  • Roundcube HTTPS: https://webmail.smk-tkj.lmn (jika dikonfigurasi)
  • SquirrelMail: http://webmail.smk-tkj.lmn/squirrelmail
  • Email Login: admin@smk-tkj.lmn atau user@smk-tkj.lmn