Roundcube: Instalasi di Ubuntu 24.04
Berikut setup webmail server sederhana di Ubuntu Server 24.04 untuk lab penetration test pemula. Jangan expose ke Internet; jalankan hanya di VM/LAN lab.
Stack yang dipakai:
Postfix = SMTP/mail transfer, Dovecot = IMAP untuk membaca mailbox, Roundcube = webmail berbasis browser. Ubuntu punya dokumentasi resmi Postfix untuk konfigurasi SMTP sederhana, Dovecot mendukung IMAP dan Maildir, dan Roundcube memang webmail berbasis browser/IMAP. (Ubuntu)
Saya pakai contoh:
IP server : 192.168.0.142 Domain lab : korban.com Hostname : mail.korban.com URL webmail : http://192.168.0.142/roundcube
1. Set hostname dan domain lokal
Di server Ubuntu:
sudo hostnamectl set-hostname mail.korban.com echo "korban.com" | sudo tee /etc/mailname
Edit /etc/hosts:
sudo nano /etc/hosts
Tambahkan:
192.168.0.142 mail.korban.com korban.com
Di mesin attacker/laptop lab, tambahkan juga ke /etc/hosts:
sudo nano /etc/hosts
Isi:
192.168.0.142 mail.korban.com korban.com
2. Install paket utama
sudo apt update sudo apt install -y postfix dovecot-core dovecot-imapd apache2 mariadb-server roundcube roundcube-mysql php php-mysql php-mbstring php-xml php-intl php-zip php-curl
Saat instalasi Postfix, pilih:
General type of mail configuration: Internet Site System mail name: korban.com
Saat instalasi Roundcube, jika ditanya:
Configure database for roundcube with dbconfig-common?
Pilih:
Yes
Gunakan MariaDB/MySQL default.
3. Konfigurasi Postfix
Jalankan:
sudo postconf -e 'myhostname = mail.korban.com' sudo postconf -e 'mydomain = korban.com' sudo postconf -e 'myorigin = /etc/mailname' sudo postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain' sudo postconf -e 'home_mailbox = Maildir/' sudo postconf -e 'mailbox_command =' sudo postconf -e 'inet_interfaces = all' sudo postconf -e 'inet_protocols = ipv4' sudo postconf -e 'mynetworks = 127.0.0.0/8 192.168.0.0/24' sudo postconf -e 'smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination'
Restart Postfix:
sudo systemctl restart postfix sudo systemctl enable postfix
4. Konfigurasi Dovecot IMAP
Edit konfigurasi mailbox:
sudo nano /etc/dovecot/conf.d/10-mail.conf
Cari mail_location, ubah menjadi:
mail_location = maildir:~/Maildir
Edit autentikasi:
sudo nano /etc/dovecot/conf.d/10-auth.conf
Pastikan ada:
disable_plaintext_auth = no auth_mechanisms = plain login
Untuk lab lokal, plaintext auth memudahkan latihan. Untuk server sungguhan, ini tidak aman tanpa TLS.
Restart Dovecot:
sudo systemctl restart dovecot sudo systemctl enable dovecot
5. Aktifkan Roundcube di Apache
Cek file konfigurasi:
sudo nano /etc/apache2/conf-available/roundcube.conf
Pastikan ada alias seperti ini:
Alias /roundcube /var/lib/roundcube
Kalau masih dikomentari dengan #, hapus tanda #.
Aktifkan konfigurasi:
sudo a2enconf roundcube sudo systemctl reload apache2
6. Set konfigurasi Roundcube
Edit:
sudo nano /etc/roundcube/config.inc.php
Tambahkan atau sesuaikan:
$config['imap_host'] = 'localhost:143'; $config['smtp_host'] = 'localhost:25'; $config['default_host'] = 'localhost'; $config['smtp_server'] = 'localhost'; $config['smtp_user'] = ; $config['smtp_pass'] = ; $config['product_name'] = 'Korban Webmail Lab';
Restart Apache:
sudo systemctl restart apache2
7. Buat user email lokal
Karena ini lab sederhana, mailbox memakai Linux system user.
Contoh buat tiga user:
sudo adduser budi sudo adduser siti sudo adduser adminlab
Contoh password lab boleh dibuat lemah, misalnya:
budi : budi123 siti : siti123 adminlab : admin123
Gunakan password lemah hanya di lab tertutup untuk latihan pemula.
8. Kirim email test lokal
Install tool mail sederhana:
sudo apt install -y mailutils
Kirim email dari server:
echo "Halo Budi, ini email test dari server korban.com" | mail -s "Test Email Lab" budi@korban.com
Cek apakah Maildir terbentuk:
sudo ls -lah /home/budi/Maildir
9. Akses webmail
Dari browser di laptop/attacker:
http://192.168.0.142/roundcube
Atau:
http://mail.korban.com/roundcube
Login:
Username: budi Password: budi123
Untuk mengirim email ke user lain:
To: siti@korban.com Subject: Latihan Webmail Body: Halo Siti, ini email dari Budi.
10. Buka firewall hanya untuk LAN lab
sudo ufw allow from 192.168.0.0/24 to any port 80 proto tcp sudo ufw allow from 192.168.0.0/24 to any port 25 proto tcp sudo ufw allow from 192.168.0.0/24 to any port 143 proto tcp sudo ufw enable sudo ufw status
Port penting:
80 = HTTP Roundcube 25 = SMTP Postfix 143 = IMAP Dovecot
Cek service:
sudo ss -tulpn | grep -E ':25|:80|:143'
11. Troubleshooting
Cek status service:
sudo systemctl status postfix sudo systemctl status dovecot sudo systemctl status apache2 sudo systemctl status mariadb
Cek log:
sudo journalctl -u postfix -n 50 --no-pager sudo journalctl -u dovecot -n 50 --no-pager sudo journalctl -u apache2 -n 50 --no-pager
Kalau Roundcube blank/error:
sudo tail -n 50 /var/log/apache2/error.log
Kalau login Roundcube gagal, biasanya masalahnya salah satu dari ini:
- User Linux belum dibuat.
- Password salah.
- Dovecot belum jalan.
- mail_location belum pakai Maildir.
- IMAP port 143 belum listening.
Cek IMAP:
nc -vz 127.0.0.1 143 nc -vz 192.168.0.142 143
Cek SMTP:
nc -vz 127.0.0.1 25 nc -vz 192.168.0.142 25
12. Latihan penetration test pemula yang aman
Untuk lab ini, latihan yang cocok:
- Service enumeration dengan nmap.
- Web enumeration pada /roundcube.
- Login testing dengan user/password lab.
- Analisis HTTP login tanpa HTTPS.
- Melihat log Postfix, Dovecot, dan Apache.
- Mengamati jejak login gagal.
- Hardening bertahap: HTTPS, password kuat, fail2ban, firewall.
Contoh enumeration dasar dari attacker:
nmap -sV -p 25,80,143 192.168.0.142
Cek web:
curl -I http://192.168.0.142/roundcube
13. Struktur lab yang disarankan
Attacker laptop / VM
|
| 192.168.0.0/24
|
Ubuntu Server 24.04
IP: 192.168.0.142 Hostname: mail.korban.com Domain: korban.com
Service:
- Apache + Roundcube : port 80
- Postfix SMTP : port 25
- Dovecot IMAP : port 143
Setelah ini server sudah cukup untuk latihan dasar webmail penetration test pemula. Langkah berikut yang bagus adalah menambahkan Wazuh Agent di server ini supaya setiap login webmail, IMAP, SMTP, dan Apache bisa dipantau dari Wazuh.