29 July 2013

Cara meremote MySQL dengan Phpmyadmin di Linux Ubuntu

Ada baiknya sebuah server database tidak dibuka untuk publik karena sangat rentan sekali untuk diserang pihak-pihak yang tidak bertanggung jawab. Seorang sistem administrator pasti menjadi sasaran bully perusahaan ketika data perusahaannya berhasil dibobol oleh seorang hacker. Apalagi jika data-data tersebut adalah data-data yang sangat krusial. Serangan hacker seakan menjadi terror bagi para sistem administrator. Berbagai cara mereka lakukan untuk mengamankan server mereka, tidak jarang juga mereka mendapatkan bencana ini padahal mereka sudah mengamankan server sebaik mungkin. Pada dasarnya kata AMAN 100% pada sebuah jaringan itu tidak ada, brand sebesar facebook saja mempunyai celah keamanan untuk diretas, apalagi jika kita tidak melakukan apapun untuk mengamankan server?

Port 3360 (MySql) adalah salah satu sasaran para hacker untuk diretas, serangan MySql injection menjadi salah satu cara mereka untuk memasukinya. Apalagi jika kita menginstall phpmyadmin dan tidak membuat sistem keamanan diatasnya? Lewat sana, bahkan para hacker mungkin sekali untuk masuk sebagai root. Mengerikan!

Pada linux hal ini bisa diatasi dengan berbagai cara, yang pertama adalah mungkin kita mengubah URL phpmyadmin di linux menjadi nama lain yang menurut kita susah ditebak siapapun, metode ini menurut saya sangat recommended. Cara yang kedua adalah membuka portal phpmyadmin by request, artinya portal ini hanya akan dibuka jika ada rekan kerja kita yang meminta akses, jika sudah selesai kita bisa menutupnya lagi, menurut saya cara ini juga cukup recommended untuk diterapkan di server kita. Cara yang ketiga adalah, Memberikan hak akses pada server lain yang juga diinstall phpmyadmin agar dapat meremote server kita.

Dari ketiga metode yang saya jelaskan, alangkah sangat baik sekali jika kita menerapkan ketiganya. Kenapa tidak? Lebih aman lebih baik bukan. Dalam artikel ini saya akan menjelaskan ketiga metode tadi dengan step by step sejelas-jelasnya. Dalam percobaan ini saya menggunakan Linux Ubuntu Server 12.04 LTS.

Pertama-tama kita install dulu phpmyadmin di server yang akan digunakan untuk kita meremote database. Cara menginstall phpmyadmin :


sudo apt-get install phpmyadmin


Pilih webserver yang anda gunakan. Disini saya menggunakan apache.


Pada bagian ini saya memilih "no" karena saya ingin settingan phpmyadmin saya sama persis dengan mysql saya

Sampai disini installasi phpmyadmin selesai. Selanjutnya, karena kita akan menerapkan ketiga metode tadi pada server kita, maka kita akan mengubah url phpmyadmin sesuai keinginan kita. Untuk melakukannya kita buka file /etc/phpmyadmin/apache.conf lalu ubah bagian ini dibagian paling atas. Cara merubah url phpmyadmin di linux :

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin
Ubah menjadi seperti ini :
# phpMyAdmin default Apache configuration

Alias /restrictedarea /usr/share/phpmyadmin
Anda melihat bedanya kan? Setelah perubahan, jangan lupa untuk merestart apache anda!

Sampai disini metode pertama "merubah url phpmyadmin di linux" telah selesai! Kita akan lanjut ke metode selanjutnya kita akan membuka atau menutup phpmyadmin kita by request. Caranya sangat mudah, anda cukup masuk kedalam file tadi (/etc/phpmyadmin/apache.conf). Pada bagian anda merubah url, berikan tanda comment untuk mendisable nya.
# phpMyAdmin default Apache configuration

#Alias /restrictedarea /usr/share/phpmyadmin
Untuk membuktikannya silahkan datangi url anda, misalnya http://webanda/restrictedarea, maka yang muncul adalah URL NOT FOUND. Metode kedua, selesai! Selalu restart apache anda setelah melakukan perubahan ini.

Sekarang kita lanjut ke metode ketiga, yaitu menghubungkan phpmyadmin yang baru saja kita install, ke server lain. Pada sisi server tujuan, kita tidak diharuskan menginstall phpmyadmin. Itu optional! Yang perlu dicatat adalah bahwa kita harus memberikan hak akses dari Server utama kepada server phpmyadmin kita. Dari sisi server utama, kita hanya cukup melakukan GRANT ACCESS saja. Silahkan masuk ke mysql server utama anda. Syntax dibawah adalah cara memberikan hak akses dan membuat user di mysql.
GRANT SELECT ON database.* TO 'user'@'host' IDENTIFIED BY 'password';
Perlu dicatat bahwa grant access diatas adalah hanya untuk select saja. Setelah melakukan grant access, lupakan server utama anda. Sekarang kita memberikan beberapa konfigurasi di sisi server phpmyadmin. Pertama kita copy file /etc/phpmyadmin/config.inc.php menjadi /etc/phpmyadmin/config.inc.php.ori. Kedua kita buka file /etc/phpmyadmin/config.inc.php dan tambahkan sintaks ini pada line 85 :
$cfg['Servers'][$i]['verbose'] = 'DB_CRUCIAL';
$cfg['Servers'][$i]['host'] = 'SERVER_TUJUAN_ANDA';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Setelah melakukan perubahan ini jangan lupa merestart apache. Sampai disini anda bisa meremote server penting anda dengan phpmyadmin di server yang lain dengan hak akses yang terbatas. Bahkan kita bisa memberikan hak akses untuk beberapa tabel saja. Untuk memberikan grant access beberapa tabel saja cukup mudah, sintaksnya seperti ini :
GRANT SELECT ON database.table_anda TO 'user'@'host' IDENTIFIED BY 'password';
Lakukan seperti diatas sampai table-table yang anda grant selesai.

Sampai disini saya pikir sudah cukup, jika anda mempunyai pertanyaan silahkan posting di komentar. Saya pasti usahakan untuk menjawab pertanyaan anda.

Semoga bermanfaat,
Salam penguin! :)

No comments:

Post a Comment