Wednesday, June 17, 2015

STREAMING DENGAN FFMPEG DAN NGINX

Oke gan, sebelum mulai membuat streaming server dengan ffmpeg dan nginx ada yang harus dijelaskan terlebih dahulu, diantaranya :
  • Bit rate : besar data sebuah file video, audio atau integrasi audio dan video dalam satu detik.
  • Frame rate : jumlah gambar (frame) sebuah video dalam satu detik.
  • Bitrate berpengaruh pada kualitas gambar, yang berbanding luru dengan jenis codecnya.
  • Codec adalah sebuah coding (bahasa pemrograman) yang membentuk sebuah file video
  • misalnya, pada sebuah video DV PAL, dengan codec Microsoft DV, bit rate nya 25Mbps. Saat video tersebut di convert ke codec MPEG 2, hanya membutuhkan 6Mbps untuk kualitas yang menyerupai (tidak sama persis) dengan kualitas DV. Karena setiap codec memiliki karakteristik kualitas gambar sendiri" (tergantung cara codingnya), maka kita tidak bisa bilang sama persis kualitasnya.
  • Sementara frame rate pada awalnya tergantung media dan lokasinya, dimana :
  • Film : 24 fps 
  • PAL : 25 fps, sistem televisi yang digunakan di Eropa dan daerah bekas jajahanya(Indonesia, Australia, dsb)
  • NTSC : 29,978 fps, sistem televisi yang digunakan oleh Amerika dan negara konsianya (Jepang, dsb)

Selanjutnya kita akan menginstall ffmpeg dan paket" yang dibutuhkan.


Update paket compiler :

sudo apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev

Buat direktori agar mempermudah proses penginstallan :
sudo mkdir ~/souceffmpeg

Compile library video dan audio yang dibutuhkan :

YASM library :
cd ~/sourceffmpeg
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
sudo make install
sudo make distclean

LIBX264 UNTUK VIDEO CODEC H264
cd ~/sourceffmpeg
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
cd x264-snapshot*
./configure --enable-static
make
sudo make install
sudo make distclean

LIBFDK-AAC UNTUK CODEC AUDIO AAC
cd ~/sourceffmpeg
wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zip
cd mstorsjo-fdk-aac*
autoreconf -fiv
./configure --disable-shared
make
sudo make install
sudo make distclean

LIBMP3LAME UNTUK CODEC AUDIO MP3
Install terlebih dahulu aplikasi nasm
sudo apt-get install nasm
cd ~/sourceffmpeg
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --enable-nasm --disable-shared
make
sudo make install
sudo make distclean

LIBOPUS UNTUK CODEC AUDIO OPUS
cd ~/sourceffmpeg
wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
tar xzvf opus-1.1.tar.gz
cd opus-1.1
./configure --disable-shared
make
sudo make install
sudo make distclean

LIBVPX UNTUK CODEC VIDEO WEBM (VP8/VP9)
cd ~/sourceffmpeg
wget http://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2
tar xjvf libvpx-v1.3.0.tar.bz2
cd libvpx-v1.3.0
./configure --disable-examples
make
sudo make install
sudo make clean

COMPILE FFMPEG
cd ~/sourceffmpeg
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
./configure --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
make
sudo make install
sudo make distclean
hash -r 

Jika sudah, ketik ffmpeg di terminal. Hasilnya akan seperti ini jika berhasil :

Selanjutnya install nginx dan paket pendukung  :

Install paket pendukung :
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev

Download dan ekstrak Source nginx :
wget http://nginx.org/download/nginx-1.4.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -zxvf nginx-1.4.2.tar.gzunzip master.zip

Masuk direktorik nginx :
cd nginx-1.4.2

Compile nginx :
./configure --add-module=../nginx-rtmp-module-master

$ make
$ sudo make install

Konfiguras nginx :

Edit file /etc/usr/local/nginx/conf/nginx.conf menjadi seperti ini :
worker_processes  1;
events {
    worker_connections  1024;
}
#Konfigurasi Untuk Live Streaming HLS dan Ondemand File pergunakan video format mp4
http {
    server {
        listen      8080;
        location /hls {
            # HLS Live Streaming sumber dari RTMP
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /var/live;
            add_header Cache-Control no-cache;
        }
    location /ond {
            # HLS untuk ondemand Streaming
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp4 ts;
            }
            alias /var/video;
            add_header Cache-Control no-cache;
        }
    }
}
#Streaming Live  RTMP
rtmp {
    server {
        listen 1935;
        chunk_size 4000;
     #Untuk Live Streaming RTMP
      application hls {
            live on;
            hls on;
            hls_path /var/live/hls;
        }
      #Untuk Ondemand Live Streaming RTMP
       application ond {
            play /var/www;
        }
    }
}

Jalankan nginx :
sudo /usr/local/nginx/sbin/nginx
untuk memastikan apakah port 1935 pada nginx berfungsi , ketik
netstat -nltp

Berikut ini sedikit option dari perintah ffmpeg :
  • -acodec aac sets the audio codec (internal AAC encoder)
  • -strict experimental allows use of some experimental codecs (the internal AAC encoder is experimental)
  • -ar 44100 set the audio sample rate
  • -ac 2 specifies two channels of audio
  • -b:a 96k sets the audio bit rate
  • -vcodec libx264 sets the video codec
  • -r 25 set the frame rate
  • -b:v 500k set the video bit rate
  • -f flv says to deliver the output stream in an flv wrapper
Sekarang saatnya kita tes ffmpeg heheheheh 

Pertama saya akan menampilkan sebuah film yaitu "Hello Ghost", dengan format mkv menjadi mp4 :

ffmpeg -i HELLO_GHOST.mkv -vcodec libx264 -s 600x480 -b:v 200k -acodec libfdk_aac -ar 22050 -ac 1 -b:a 16k -f flv rtmp://localhost/hls/testing.mp4

Tampilkan dengan ffplay :
ffplay rtmp://localhost:1935/hls/testing.mp4



Selanjutnya saya akan mencoba input video dari android menggunakan aplikasi "arutcam"


Berikut ini adalah settingan yang saya gunakan di arutcam. Pastikan server dan hp android terubung, 192.168.43.45 adalah ip server, tes adalah nama video/file yang akan di kirim






Tampilkan dengan ffplay :
ffplay rtmp://localhost/hls/tes -> saya mencoba di server jadi localhost



gunakan perintah berikut untuk mengurangi delay :
ffplay rtmp://localhost/hls/tes -analyzeduration 1000

Selanjutnya saya akan mencoba untuk menambahkan logo, logo.png adalah nama logo yg saya gunakan.

input dari android --> ffmpeg --> output. 

rtmp://localhost/hls/tes adalah input
rtmp://localhost/hls/tes1 adalah output yang sudah ditambahkan logo.png

ffmpeg -i rtmp://localhost/hls/tes -i logo.png -vcodec libx264 -acodec libfdk_aac -filter_complex overlay -f flv rtmp://localhost/hls/tes1



Tampilkan dengan ffplay :
ffplay rtmp://localhost/hls/tes1


selesai, mohon maaf apabila ada kesalahan dalam penulisan maupun penjelasan pada postingan saya kali ini

referensi :
http://andrijohandri.blogspot.com/2014/08/konfigurasi-live-streaming-mobile-hls.html
http://andrijohandri.blogspot.com/2014/05/encoder-live-rtmp-dengan-ffmpeg-di.html
http://andrijohandri.blogspot.com/2014/05/streaming-server-rtmp-dengan-nginx.html
https://trac.ffmpeg.org/wiki/StreamingGuide#Latency





Thursday, June 4, 2015

ModSecurity


Apa itu ModSecurity ?, ModSecurity adalah Web Application Firewall (WAF) yang bekerja untuk Apache, Nginx dan IIS. Dengan manambahkan WAF pada web server kita, tentu akan meningkatkan keamanan web server dari serangan cracker yang tidak bertanggung jawab. Di sini saya menggunakan sitem operasi ubuntu server 14.04 LTS 64 bit dan menggunakan apache2 untuk web server nya.

Install apache webserver dan paket pendukung :

sudo apt-get install apache2 php5 php5-xmlrpc php5-mysql php5-gd php5-cli \
php5-curl mysql-client mysql-server

Install dependensi yang dibutuhkan ModSecurity :

sudo apt-get install libxml2 libxml2-dev libxml2-utils \
libaprutil1 libaprutil1-dev

Untuk mengguna 64bit, perlu menambahkan link berikut :

ln -s /usr/lib/x86_64-linux-gnu/libxml2.so /usr/lib/libxml2.so
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1 /usr/lib/libxml2.so.2.9.1

Tes webserver dengan php script yang sudah saya buat (tugas kampus gan hehe), teman" bisa mendownload nya di :


Taruh di /var/www/html/ :

cp rizal.zip /var/www/html

ektrack file zip :

cd /var/www/html/
unzip rizal.zip --> lakukan apt-get install unzip, jika unzip belum terinstall
mv rizal chat --> rename file

Rubah kepemilikan folder :

chown www-data.www-data chat/*

Siapkan database :

mysql -u root -proot mysql < chat/DATABASE/SQL_SCRIPT.sql

Tampilan webserver apache2 :

 Tampilan Login form :


Tampilan login menggunakan user 'rizal' :


Login dengan sql-injection : ' or true --


Install ModSecurity :

apt-get install libapache2-modsecurity

Periksa modul ModSecurity :

apachectl -M | grep --color security

Rename modsecurity.conf :

mv /etc/modsecurity/modsecurity.conf{-recommended,}

restart apache2 :

/etc/init.d/apache2 restart

cek direktorik log apache :

ls -l /var/log/apache2/modsec_audit.log

konfigurasi modsecurity.conf :

vim /etc/modsecurity/modsecurity.conf
temukan SecRuleEngine DetectionOnly menjadi SecRuleEngine On.

Pada SecRuleEngine DetectionOnly ModSecurity hanya mencatat permintaan yang sesuai dengan aturan yang cocok tapi tidak memblokir apa-apa.

Hapus folder /usr/share/modsecurity-crs/ : rm -rf /usr/share/modesecurity-src/

Install OWASP Rule terbaru :

cd /tmp
tar zxvf modsecurity-crs_2.2.5.tar.gz -C /usr/share/modsecurity-crs/
cd /usr/share/modsecurity-crs/
mv modsecurity-crs_2.2.5 modsecurity-crs

Membuat symlinks di dalam directory activated_rules untuk mengaktifkan aturan :

cd /usr/share/modsecurity-crs/activated_rules/
ln -s /usr/share/modsecurity-crs/base_rules/* . --> mengaktifkan semua aturan di base_rules

Load aturan yang berada di activated_rules :

vim /etc/apache2/mods-enabled/security2.conf

Tambahkan aturan berikut di dalam <IfModule security2_module> </IfModule> :

Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/activated_rules/*.conf"

Restart apache2 :

/etc/init.d/apache2 restart

Tes web server : http://192.168.56.1/chat :

Tampilan di atas terjadi karena ada rules/aturan ModSecurity yang aktif, lihat di log :

more /var/log/apache2/modsec_audit.log

hasil :

--c71a265e-H--
Message: Access denied with code 403 (phase 2). Pattern match "^[\\d.:]+$" at REQUEST_HEADERS:Host. [file "/usr/share/modsecurity-crs/activated_rules/m
odsecurity_crs_21_protocol_anomalies.conf"] [line "98"] [id "960017"] [rev "2.2.5"] [msg "Host header is a numeric IP address"] [severity "CRITICAL"] [
tag "PROTOCOL_VIOLATION/IP_HOST"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [tag "http://technet.microsoft.com/en-us/magazine/2
005.01.hackerbasher.aspx"]
Action: Intercepted (phase 2)
Apache-Handler: application/x-httpd-php
Stopwatch: 1433394271606134 4710 (- - -)
Stopwatch2: 1433394271606134 4710; combined=1353, p1=812, p2=389, p3=0, p4=0, p5=151, sr=120, sw=1, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.7.7 (http://www.modsecurity.org/); OWASP_CRS/2.2.5.
Server: Apache/2.4.7 (Ubuntu)
Engine-Mode: "ENABLED"

usr/share/modsecurity-crs/activated_rules/modsecurity_crs_21_protocol_anomalies.conf --> adalah rules yang sedang aktif karena kita langsung mengakses host header dengan IP address

Hapus rules :

rm usr/share/modsecurity-crs/activated_rules/modsecurity_crs_21_protocol_anomalies.conf

Restart apache :

/etc/init.d/apache2 restart

Tes webserver :


ModSecurity log : vim /var/log/apache2/modsec_audit.log 


Selesai, mohon maaf jika ada kekurangan pada tutorial kali ini ...
referensi :
http://www.root25.com/2012/11/how-to-install-modsecurity-on-apache-ubuntu12-stepbystep-tutorial.html

http://cyberlearning.web.id/wiki/index.php/ModSecurity:_Instalasi

Sunday, August 17, 2014

Domain Controller with SAMBA

   Hello guys, i know a lot of you already know about this configuration, and you can find many tutorial about this configuration on the internet. The reason why i decided to made this tutorial because in my university used file system like this too but with windows server, so i wanna know how to it work but in this case i will use ubuntu server 12.04.
   You can find what is domain controller over here. Ok for details let's see when you used samba server without domain controller configuration
source :   http://data-analytics-tools.blogspot.com/2009/02/four-simple-steps-to-secure-samba.html

And when you used domain controller configuration the directory will be look like this
see melody is user, in this tutorial when you setting samba server with domain controller configuration you must log in for access the user directory. OK let's begin :
ip server = 192.168.56.1
domain = rizal.local
dns server 192.168.56.1
in this tutorial i'm just made 2 users "melody" and "nabilah"

setting ip address, i'm used virtual box so i need 2 lan card, first for connection to the internet and the another one for local connection, edit on /etc/network/interfaces and restart the networking

next step
  • apt-update
  • apt-get install samba samba-common samba-doc libcupsys2 winbind smbclient smbfs
edit file /etc/samba/smb.conf
[global] 
workgroup = rizal.local
netbios name = ubuntu 
server string = %h server (Samba, Ubuntu) 
passdb backend = tdbsam 
security = user 
username map = /etc/samba/smbusers 
name resolve order = wins lmhosts bcast hosts 
domain logons = yes 
preferred master = yes 
domain master = yes 
wins support = yes 
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 
os level = 65 
logon driver : H:
path = /var/tmp 
lm announce = yes 
lm interval = 10 

# Useradd scripts 
add user script = /usr/sbin/useradd -m %u 
delete user script = /usr/sbin/userdel -r %u 
add group script = /usr/sbin/groupadd %g 
delete group script = /usr/sbin/groupdel %g 
add user to group script = /usr/sbin/usermod -G %g %u 
add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u 

# sync smb passwords woth linux passwords 
passwd program = /usr/bin/passwd %u 
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . 
passwd chat debug = yes 
unix password sync = yes 
# set the loglevel 
log level = 3 

[homes] 
comment = Home 
valid users = %S 
read only = no 
browsable = no 

[netlogon] 
comment = Network Logon Service 
path = /home/samba/netlogon 
admin users = Administrator 
valid users = %U 
read only = no 

[profile] 
comment = User profiles 
path = /home/samba/profiles 
valid users = %U 
create mode = 0600 
directory mode = 0700 
writable = yes 
browsable = no 

find this word and edited to be like this (in smb.conf)

next step, make some file and folder
  • # mkdir /home/samba 
  • # mkdir /home/samba/netlogon 
  • # mkdir /home/samba/profiles 
  • # mkdir /var/spool/samba
  • # chmod 777 /var/spool/samba/
  • # chown -R root:users /home/samba/
  • # chmod -R 771 /home/samba/
  • # touch /home/samba/netlogon/logon.cmd
and then restart samba server : service smbd restart

next step, i will set the root to be Administrator :
  • smbdpasswd -a root
  • edit file /etc/samba/smbusers :
    • root = Administrator 
next step, test samba configuration : smbclient -L localhost -%U

next step, setup domain group for windows :
  • # net groupmap add ntgroup="Domain Users" unixgroup=users 
  • # net groupmap add ntgroup="Domain Guests" unixgroup=nogroup
  •  
next step, add user (nabilah and melody) :

next step, install dns server : apt-get install bind9 :
  • edit /etc/bind/name.conf.local to be like this
  • copy /etc/bind/db.local to /etc/bind/db.rizal and /etc/bind/db.192 and then edited to be like this :


next step, edit /etc/hosts to be like this and then restart bind  :

127.0.0.1         localhost
192.168.56.1   ubuntu rizal.local

next step, check dns configuration on resolv.conf

test your dns settings with nslookup


install dhcp server : apt-get install isc-dhcp-server, and then configure /etc/dhcp/dhcpd.conf to be like this :

and then, restart dhcp server : service isc-dhcp-server restart
now, we will switch to the client and join client to the samba server
first, setting ip client with dhcp and then make sure the configuration it's correct



next step, click start and right click on my computer and then choose properties, switch to then computer name tab,click change and then click more finally type the domain, in this case "rizal.local.".

next step, clik domain and then type the domain again "rizal.local"
finally, just restart you client and log in with account has created before


ok thx for visited my blog, see you next time

reference : http://www.samba.org/samba/docs/Samba3-HOWTO.pdf
                http://www.opikdesign.com/kios/tutorial_ubuntu/Domain_Controller.pdf

Wednesday, January 15, 2014

Mail server (using dovecot)

Finally, for a long time i'm not posting in my blog. Now i will make tutorial about mail server. If you see my old post, you can see i have make tutorial about mail server too ..., so what's different ?. In this tutorial i'm using dovecot for imap and pop3, roundcube v 0.9 (new) and non linux account.
well let's begin .. !!!

  • install linux ubuntu server version (i'm using ubuntu 12.04 LTS)
  • install postfix and mailutils : apt-get install postfix mailutils
  •   configure postfix
  • open file /etc/postfix/main.cf, edit to like this
  • restart postfix : /etc/init.d/postfix restart
  • test postfix configuration
  • create virtual mailbox group and virtual mailbox owner
  • add to /etc/postfix/main.cf
  • create new file:  /etc/postfix/vhosts (for your domain), i'm using rizal.net and ubuntu.com
  • create new file:  /etc/postfix/vmaps. To make an alias, map to same folder as another user.
  • convert vmaps into hash file by running : postmap /etc/postfix/vmaps
  • test send mail with postfix
  • install dovecot : apt-get install dovecot-common dovecot-imapd dovecot pop3d
  • configure dovecot, backup your dovecot default configuration : mv /etc/dovecot/dovecot.conf
  • create new file for dovecot configuration : nano /etc/dovecot/dovecot.conf
  • for reduce errors will be better if we using ftp server and then you can upload this file to your server. Download dovecot.conf file here
  • if you have upload dovecot.conf to your server, next step  you must copy dovecot.conf to /etc/dovecot/dovecot.conf
  • now i will make scripts for add and delete dovecot user, i hope you install ftp server, because that's really helpful
  • download script for add user here, and then upload with ftp server to your server, copy to /usr/local/sbin/
  • make file executable : chmod +x /usr/local/sbin/adddovecotuser
  • if you get error like this : /bin/sh^M bad interprenter, try this for fix it : perl -i -pe 'y|\r||d' /usr/local/sbin/adddovecotuser
  • add user like this (example) : adddovecotuser nabilah@rizal.net, and then press enter you will be required fill a password
  • download script for delete user here, and then upload and copy to : /usr/local/sbin/
  • make file executable : chmod +x /usr/local/sbin/deldovecotuser
  • if you get error like this : /bin/sh^M bad interprenter, try this for fix it : perl -i -pe 'y|\r||d' /usr/local/sbin/deldovecotuser
  • for delete user like this : deldovecotuser nabilah@rizal.net
  • restart postfix and dovecot service
  • now i will test the configuration
  • install clamav for filtering your email from virus : apt-get install clamav-daemon clamav clamsmtp
  • and then do this for completing clamav
  • now you can run clamav
  •  add to main.cf : nano /etc/postfix/main.cf
  • add to master.cf : nano /etc/postfix/master.cf
  • restart postfix : service postfix restart
  • restart dovecot: service dovecot restart
  • restart clamav: service clamav-daemon restart
  • now i will test clamav
  • install mutt : apt-get install mutt ( for attach file from command line)
  • download eicar_com.zip using wget
  • for attach eicar_com.zip do like this : mutt nabilah@rizal.net -a eicar_com.zip -s "<virus>"
  • if you finish, press enter until you see like this ..., and then press "Y" for send email
  • for check the clamav : tail /var/log/mail.log, you can see "Virus detected", and the message will be deleted
  • next step i will install roundcube 0.9 for webmail, but before install roundcube you must install lamp server : apt-get install lamp-server^
  • if you have finished install lamp server, configure mysql to like this :
  • download roundcube 0.9 from here, download complete package, and then upload to your server again with ftp and copy to /var/www
  • extrack roundcube : tar -xzvf roundcubemail-0.9.5.tar.gz
  • rename roundcubemail-0.9.5 to webmail : mv /var/www/roundcubemail-0.9.2 /var/www/webmail
  • change directory to /var/www/webmail : cd /var/www/webmail
  • change the owner for logs and temp
  • logs : chown -R www-data.www-data logs/
  • temp : chown -R www-data.www-data temp/
  • import roundcube database to mysql : mysql -u root -p roundcube < /var/www/webmail/SQL/mysql.initial.sql
  • edit file /etc/apache2/sites-available/default to like this
  • edit file /etc/apache2/httpd.conf to like this 
  • restart apache : service apache2 restart
  • go to client, open a browser and then go to roundcube installter
  • you can see there are some that not ok, for fix it do this : apt-get install php5-mcrypt php5-intl. Edit file /etc/php5/apache2/php.ini and fink "date.timezone" like this :
  •  restart you apache2 and refresh you browser
  •  click continue, edit database and imap setting to like this
  • edit smpt setting and display settings to like this
  • click create config, download main.inc.php and db.inc, upload to your server and then copy to /var/www/webmail/config
  • change the owner 
    • chown -R www-data.www-data /var/www/webmail/config/main.inc.php
    • chown -R www-data.www-data /var/www/webmail/config/db.inc.php
  •  restart apache2
  • and then click continue, if you have error like this 
  • back to mysql and do this :
    • GRANT ALL PRIVILEGES ON roundcube.* TO 'rizal'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
    • flush privileges;
    • quit on mysql and restart apache and refresh a browser
  • delete installer page
  • finish ... ^o ^
 

i am sorry about my English, i just want improve my English and if you have question contact me on  
  • email : rizalubuntuuser@gmail.com
  • facebook (you can see on this blog hehehe) but before ask please add me on facebook 
 reference : https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto#Install_Dovecot_IMAP.2BAC8-POP3_server