Sebelum instalasi siapkan dulu yang diperlukan:
Untuk Ejabberd aku pakai versi 2.1.3, bisa diambil sorcenya disini
Modul log message-nya diambil disini
Asumsi server ejabberd pakai IP 192.168.1.1 , domain anu.com
Ok sekarang kita mulai
1. Sebelumnya, install paket pendukung (aku pakai ubuntu 10.04 /lucid)
$ sudo apt-get install libncurses5-dev
$ sudo apt-get install openssl libssl-dev
$ sudo apt-get install erlang
2. Extract source Ejabberd dan patch modulnya (asumsi patch ditaruh di folder src ejabberd)
$ tar xzvf ejabberd-2.1.3.tar.gz
$ cd ejabberd-2.1.3/src
$ patch -p0 < patch-src-mod_logdb-2.1.3.diff (extract dahulu zip filenya)
3. Tahap instalasi ejabberd
src$./configure
apabila saat configure keluar error "configure: error: Could not find development files of Expat library", itu tandanya harus install expat-devel dulu di ubuntu, caranya:
$sudo apt-get install libexpat1-dev
src$make
src$ sudo make install4. Setelah semua terinstall dengan baik, sekarang tahap konfigurasi /etc/ejabberd/ejabberd.cfg
Yang aku edit cuma :
4.1. Ganti host (host disini bisa berupa domain ataupun IP address servernya).
Host disini adalah host server chat yang dilayani oleh linux server, bisa lebih dari satu (ini kelihatan sebagai virtual hostnya)
misal : {hosts, ["localhost", "192.168.1.1", "anu.com"]}.
4.2. Untuk support koneksi SSL aktifkan baris ini
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled in and you installed a SSL
%% certificate, specify the full path to the
%% file and uncomment this line:
%%
{certfile, "/etc/ejabberd/server.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
cara generate certificate lihat bagian note dibawah
4.3. Untuk mendukung Loging Message, tambahkan baris berikut:
a. Di seksi akses
{access, mod_logdb, [{allow, all}]}.
{access, mod_logdb_admin, [{allow, nama_user_admin}]}.
b. Di seksi Modul, tambahkan baris berikut
{mod_logdb, [
{dbs, [
{mnesia, []}
]},
{vhosts, [{"localhost", mnesia},{"192.168.1.1", mnesia}, {"anu.com", mnesia}]},
{ignore_jids, ["nama_user_admin@192.168.1.1"]}, // user yg tidak dilog messagenya
{groupchat, none},
{purge_older_days, 365},
{dolog_default, true},
{poll_users_settings, 5}
]}
5. Jalankan server Ejabberd
$ sudo /sbin/ejabberdctl start
6. Buat user admin ejabberd
$ sudo /sbin/ejabberdctl register nama_user_admin 192.168.1.1 some_password
7. Agar user admin bisa akses sebagai admin, tambahkan baris berikut di baris ACL
{acl, admin, {user, "nama_user_admin", "192.168.1.1"}}.
{access, configure, [{allow, admin}]}.
8. Restart server ejabberd...
$ sudo /sbin/ejabberdctl stop
$ sudo /sbin/ejabberdctl start
9. Administrasi, penambahan user, pengaturan departemen (Shared Roster Group), Dan pengaturan Log message bisa dilakukan lewat browser dengan cara akses :
http://192.168.1.1:5280/admin
user : nama_user_admin
pass : some_password
10. Menu logging akan kelihatan di baris paling bawah di virtual host > Users Messages
dan masing masing user juga bisa diset apa di log chatnya atau tidak....
Silakan coba sendiri....
Note:
Membuat Self-Signed Certificate
Buat self-signed certificate, dalam contoh di bawah ini di set valid kurang lebih untuk 10 tahun (3650 hari)
$openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
Jika saat membuat certificate Anda set password, maka setiap menjalankan ejabberd, Anda akan diminta memasukkan password untuk certificate tadi, dan tentu saja itu menjadi masalah ketika ejabberd dijalankan otomastis saat boot.
Untuk itu kita perlu buat versi privkey.pem yang tidak mengunakan password. Lalu hasilnya kita masukkan ke berkas server.pem. Lalu mengapa harus digabung? Karena konfigurasi di ejabberd mensyaratkannya begitu. Direktif certifle harus diarahkan ke berkas yang berisikan private key dan certificate.
$openssl rsa -in privkey.pem -out privkey.pem.tanpa-password
$cat privkey.pem.tanpa-password >> server.pem
$rm privkey.pem
Kemudian salin berkas certificate server.pem ke lokasi instalasi ejabberd.
$sudo mv server.pem /etc/ejabberd/server.pem
Dan untuk menerapkan konfigurasi, Anda harus merestart service ejabberd.
$sudo /sbin/ejabberdctl stop
$sudo /sbin/ejabberdctl start
Mengaktifkan koneksi SSL di port 5223
Sunting berkas konfigurasi /etc/ejabberd/ejabberd.cfg, cari baris seperti dibawah ini dan sesuaikan seperti contoh di bawah ini.
{5222, ejabberd_c2s, [
{certfile, "/etc/ejabberd/server.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method in port 5223:
%%
{5223, ejabberd_c2s, [
{certfile, "/etc/ejabberd/server.pem"}, tls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
Sama seperti di atas, untuk menerapkan konfigurasi yang baru, Anda harus merestart service ejabberd.
$sudo /sbin/ejabberdctl stop
$sudo /sbin/ejabberdctl start
Sekarang Anda bisa mengakses jabber server menggunakan TLS di port 5222 atau SSL di port 5223.
No comments:
Post a Comment