Thursday, 11th March 2010

13 Tips Memproteksi Ruang Admin Blog WordPress

Posted on 21. Aug, 2009 by abbie in WP Plugin 

Proteksi WP AdminYap. Ruang admin blog WordPress kita memang seharusnya diproteksi. Sudah tahu kan, WP versi 2.8.3 ternyata juga punya security hole? Seseorang bisa saja mereset password akun admin kita di WP 2.8.3. Memang, password yang baru akan di email dan si orang iseng tidak bisa melakukan remote access. Tapi hal ini tentu saja menyebalkan. Yang ndak percaya, silahkan baca WordPress security release. Akhirnya, upgrade ke WordPress 2.8.4 adalah musti.

Setelah ikutan upgrade blog ini ke 2.8.4, saya lalu cari-cari artikel tentang cara memproteksi admin area. Ada postingan yang bagus ( menurut saya ) di WPBeginner.com, 13 vital tips and hacks to protect your WordPress admin area. Postingan ini adalah interpretasi artikel English itu oleh saya, seorang blogger jowo. :mrgreen: Jadi kalau rasanya rada-rada aneh, wis.. maklum aja ya.

Disclaimer: Saat tulisan ini di-publish, saya belum mencoba semua tips yang ditulis di sini, kecuali tips2 general semisal password yang unik, tidak memakai admin sebagai username atau selalu update dengan WP versi terakhir. Postingan ini lebih dilatarbelakangi pada berbagi temuan artikel yang (mungkin) bermanfaat.

Inilah 13 tips memproteksi ruang admin blog WordPress kita. Tidak harus semuanya, tapi mengimplementasi sedikit diantaranya akan memastikan admin area kita aman dari tangan-tangan hacker kurang kerjaan.

1. Mengkustomisasi link login

Login ke admin WordPress biasanya dengan url /wp-login.php. Nah.. jika kita menggunakan password yang  sama di beberapa tempat yang ‘berbahaya’, maka blog kita akan berpotensi mudah di-hack. Kita bisa menginstal plugin Stealth Login yang akan membantu kita menciptakan custom url untuk login, logout dan registrasi ke blog kita. Juga ada opsi “Stealth Mode” yang akan mencegah user mengakses wp-login.php secara langsung, termasuk mengeset url login kita menjadi lebih tersembunyi.

Cara ini tidak akan mengamankan blog kita dengan sempurna. Tapi paling tidak, seseorang yang mencoba ngecrack password kita akan kesulitan menemukan link untuk login. Cara ini juga mencegah bot-bot maling mengakses wp-login.php dan mencoba masuk ruang admin tanpa ijin.

2. Gunakan password yang kuat ( baca: unik )

Manfaatkan WordPress Password Strength Detector untuk memastikan password kita sangat strong. Jangan menggunakan password yang sama di tempat yang lain. Cobalah untuk membuat password yang masing-masing berbeda dan sangat sulit ditebak.

Hal yang lain yang sebaiknya kita lakukan adalah mengubah password kita secara berkala. Jadi jika password kita bisa ditebak oleh seseorang, password itu tidak akan ada gunanya karena kita telah mengubahnya. Kacian deh gue..

3. Membatasi jumlah login

Kadang seorang hacker berpikir bahwa dia tahu password kita. Atau mungkin dia mengembangkan sebuah script untuk menebak password. Jika ini masalahnya, kita bisa membatasi jumlah login. Hanya 3 kali login misalnya. Plugin Login Lockdown bisa kita install untuk mengunci user setelah beberapa kali salah memasukkan password. Mereka akan locked out selama beberapa waktu tertentu. Setting jumlah login dan waktu lock out bisa kita lakukan di panel wp-admin.

4. Menggunakan halaman SSL untuk login

Kita dapat login ke ruang admin WordPress dengan menggunakan encrypted channel seperti SSL. Dengan cara ini url login kita akan menjadi https://. Masalahnya, kita harus menanyakan terlebih dahulu ke webhosting, apakah kita memiliki Shared SSL atau SSL certificate. Jika iya, kita bisa meng-copy kode berikut ini ke dalam file wp-config.php :

define(’FORCE_SSL_ADMIN’, true);

Atau, gunakan saja plugin Admin SSL yang akan menjadikan SSL untuk semua halaman. Dengan plugin ini lebih mudah, tapi hanya kompatibel untuk WordPress 2.7 ke atas.

5. Membuat password untuk folder wp-admin

Tidak ada yang salah dengan memakai 2 password. Ini hanya menambahkan lapisan keamanan ruang admin blog WP kita. Kita bisa menginstal plugin AskApache Password Protect untuk melakukan hal ini. AskApache Password Protect akan mengenkripsi password kita kemudian membuat file .htpasswd, termasuk mengeset file permissions yang seharusnya.

Dengan cPanel pada webhosting, kita juga dapat memakai cPanel Password Protection untuk memproteksi folder wp-admin kita dengan password.

6. Membatasi akses hanya dari IP Address tertentu

Kita dapat membuat wp-admin kita hanya bisa diakses dari IP address tertentu yang kita pilih. Caranya, buatlah file .htaccess di folder wp-admin, lalu tambahkan code di bawah ini. Jangan lupa ganti xx.xx.xx.xxx dengan IP address yang anda tentukan.

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName “WordPress Admin Access Control”
AuthType Basic

order deny,allow
deny from all
# whitelist Syed’s IP address
allow from xx.xx.xx.xxx
# whitelist David’s IP address
allow from xx.xx.xx.xxx
# whitelist Amanda’s IP address
allow from xx.xx.xx.xxx
# whitelist Muhammad’s IP address
allow from xx.xx.xx.xxx
# whitelist Work IP address
allow from xx.xx.xx.xxx

Jeleknya, kita tidak bisa mengakses wp-admin dari komputer lain yang IP addressnya belum kita allow, kecuali kita menambahkan IP-nya di file .htaccess ini.

7. Jangan pernah gunakan ‘admin’ sebagai username

Ndak usah panjang lebar ya. Pilih username yang lain, lalu setting rollnya sebagai administrator. Jangan lupa delete saja akun admin yang kita dapat default saat instalasi WordPress. Saya sedikit menulis cara mengubah username dan password admin pada postingan saya tentang cara menginstall WordPress ke komputer.

8. Menghilangkan Error Message pada halaman login

Jika kita salah memasukkan username atau password ketika login ke admin WP, kita akan mendapat error message. Bagi hacker yang berpengalaman, error message ini akan membantunya ( abbie: saya juga bingung, message simpel seperti itu gimana bisa jadi clue ya?? ). Untuk itu, error message ini direkomendasi untuk dihilangkan saja.

Caranya, buka file functions.php di folder theme lalu salin code berikut ini :

add_filter('login_errors',create_function('$a', "return null;"));

Atau kalau nggak mau repot, install saja plugin Secure WordPress untuk mengerjakannya. ;)

9. Menggunakan encrypted password untuk login

Jika kita tidak memiliki SSL, metode ini bisa digunakan. Sebuah plugin WordPress, Semisecure Login Reimagined, meningkatkan keamanan proses login dengan menggunakan RSA public key untuk mengenkripsi password di client-side ketika seorang user sedang login. Server kemudian mendekripsi password yang telah dienkripsi tadi dengan menggunakan private key. JavaScript harus diaktifkan untuk melakukan enkripsi.

10. WordPress AntiVirus Protection

AntiVirus adalah sebuah plugin WordPress yang efektif untuk melindungi blog kita dari injeksi spam. Fitur yang special dari plugin ini adalah testing manual dengan hasil yang langsung diperoleh berupa file-file yang terinfeksi. Juga ada cek otomatis setiap hari disertai dengan notifikasi per email.

11. Selalu update dengan WordPress versi terbaru

Setiap rilis versi terbaru WordPress selalu diikuti juga dengan rilis temuan-temuan bug atau celah keamanan pada WordPress versi sebelumnya. Sebaiknya segera upgrade daripada admin blog WP kita terkena resiko yang aneh-aneh.

12. One Time Password

Untuk memproteksi wp-admin, kita bisa juga menginstal plugin One Time Password. Dengan plugin ini kita dapat login ke blog WordPress kita dengan menggunakan password yang hanya valid untuk satu kali session. One Time Password mencegah terjadinya pencurian password utama blog WordPress kita yang mungkin terjadi pada lokasi-lokasi yang kurang aman, seperti internet café yang menginstal keylogger.

13. WordPress Firewall

Plugin WordPress Firewall dapat mendeteksi, mencegah dan mencatat parameter-parameter mencurigakan yang mencoba masuk ke admin blog kita, lalu me-redirect mereka ke homepage. Plugin ini kemudian akan mengirim email ke kita setiap kali ada seseorang yang mencoba nge-hack ke wp-admin, lengkap dengan IP address-nya. Kita juga dapat memilihnya sebagai plugin pertama yang dieksekusi untuk mendapatkan keamanan maksimal.

Selesai. 13 tips untuk memproteksi ruang admin blog WordPress kita ternyata sangat dipermudah karena banyak yang menggunakan plugin. Hmm.. enaknya pake WordPress. ;)

Tags: , , , ,

24 Responses to “13 Tips Memproteksi Ruang Admin Blog WordPress”

  1. rismaka 22 August 2009 at 4:40 am #

    Lapor gan, ga semua tips itu saya pake… :lol:
    Lapor gan, gambarnya di hotlink protected sama wpbeginner :mrgreen:
    rismaka’s last blog.. Sebuah Diskusi : Mengapa Komentar Saya Tidak Ditanggapi? My ComLuv Profile

  2. abbie 22 August 2009 at 8:34 pm #

    Gak musti semua dipake Gan. Pilih aja yg paling enak.
    Sy jg mo coba beberapa. :mrgreen:

    Weh.. iya. Imagenya jadi ilang semua ya? Pdhal sy dah minta ijin lho.
    Kmrn malem jg msh gak papa. Ntar nyari lg deh..

  3. Zippy 22 August 2009 at 10:18 pm #

    Wah, diriku nggak pake Wp, jadi cuma bisa mangap2 aja ni bro, hehehehe….
    Banyak juga ya yang harus diproteksi :D
    Mw ini itu harus hati2 :D
    Zippy’s last blog.. Pendet Asli Malaysia? My ComLuv Profile

  4. cebong ipiet 23 August 2009 at 11:27 am #

    repot sekali se, makane aku luweh seneng blogger ixixixixix
    cebong ipiet’s last blog.. Ramadan 2009 Calendar and Greetings Card My ComLuv Profile

  5. cow 24 August 2009 at 10:48 am #

    mantap gan
    cow’s last blog.. Cara cepat melihat urutan Web ato blog kita di google My ComLuv Profile

  6. dendin 24 August 2009 at 3:27 pm #

    heheheh untung saya masih pake yang lama habis yang baru gak familiar alias bingung tapi infonya sangat membantu thanks……….

  7. Juliawan 25 August 2009 at 11:58 am #

    wao mantao bro infonya ^^ hehehe,kalo boleh tukeran link yuk bro ^^ hehehe
    Juliawan’s last blog.. Website Informasi Jual/Beli/Sewa Rumah/Apartemen/Tanah Paling Lengkap My ComLuv Profile

  8. izzue 25 August 2009 at 4:49 pm #

    salam kenal mas. btp tukar linknya mas yuk
    izzue’s last blog.. Ngeblog atau Lapar My ComLuv Profile

  9. abbie 25 August 2009 at 9:24 pm #

    @ Zippy,
    Tips ini sebnrnya pilihan klo kita mau proteksi admin area. Ndak hrs dipke semua kok. ;)

    @ Cebong,
    Ah.. ndak repot kok Jeng. Apalg kebanyakan pke plugin.
    Cuma instal, lgsg jln.
    eh.. tp sy blm nyobain ding.
    Ntar klo dah nyoba, ta’ceritain deh. :D

    @ Cow,
    Trm ksh dah komen Gan..

    @ Dendin,
    Maksudnya pke WP versi lama ya mas?
    Lebih baik diupgrade aja. Lebih safe. :)

    @ Juliawan,
    Sy brsan maen ke blognya kok gak bs2 ya mas?
    Loading mulu.. :roll:

    @ Izzue,
    Salam kenal lg mas.
    Tukeran link? Boleh mas.. :D

  10. Ash-Shaf media 10 October 2009 at 1:25 pm #

    Terima kasih tips-nya, sangat informatif
    Ash-Shaf media’s last blog.. Puasa 6 Hari pada Bulan Syawwal My ComLuv Profile

  11. willy 15 November 2009 at 3:33 am #

    very nice tips thank you so much
    willy’s last blog.. Comment on Personal Development and Network Marketing by Personal Development and Network Marketing | Another Story From Me My ComLuv Profile

  12. andrian 26 November 2009 at 7:38 am #

    mas kalo blogku sudah dihack dan gak bisa dibuka lagi apa harus beli domain baru

  13. abbie 4 December 2009 at 2:19 pm #

    @ Andrian,
    Duh.. Saya belum pernah pny pengalaman mas. Mg2 sih jgn :)
    Mgkn mas bs baca artikel ini. Siapa tau bermanfaat:
    http://ocaoimh.ie/89493734/did-your-wordpress-site-get-hacked/
    http://smackdown.blogsblogsblogs.com/2008/06/24/how-to-completely-clean-your-hacked-wordpress-installation/
    http://blog.oddhead.com/2009/06/22/un-hacking-my-blog/

  14. andrian 10 December 2009 at 10:42 pm #

    Mas cara instal java script untuk plugin semisecure-login-reimagined gimana aku masih bingung cara nginstalnya soalnya setiap kali diaktifkan pluginnya selalu ada tulisan “SemisecureLoginReimagined has not been activated!
    OpenSSL doesn’t appear to be available. This plugin relies on OpenSSL and won’t work until it’s been installed.”
    andrian’s last blog.. Daftar blog/web ke 132 mesin pencari My ComLuv Profile

  15. abbie 12 December 2009 at 9:46 pm #

    @ Andrian,
    Sy install plugin SLI ini yg versi 3.0.8.3 berjalan lancar.
    Baca di plugin homepagenya (meski gak mudeng istilah2nya :cry: ), hostingan kt mesti support OpenSSL, php 4.3+ dan WP 2.7+.
    Klo dicoba pke opsi “Force alt method” gmn mas?

    Sorry mas, sy asli gak ngerti coding / hacking. he..he..
    Coba konsul ke gandamanurung.com, daniiswara.net, ato rismaka.net.
    Mereka jago yg begituan mas. ;)

  16. ganda 14 December 2009 at 10:04 am #

    @andrian & @abbie :
    Seperti yang di jelaskan di plugin home page SLI, plugin ini bergantung terhadap OpenSSL. OpenSSL adalah module PHP yang digunakan sebagai alternatif apabila web server/hosting tidak support SSL(secure socket layer) connection. Pada dasarnya dengan menggunakan SSL ini, maka password dan username yang kita kirimkan ke Web Server akan di enkripsi dan di enkapsulasi, sehingga walau attacker menyerang dengan cara “Man in the Middle attack”, akan kewalahan karena password dan username yang di sadap telah di enkapsulasi dan di enkripsi.

    Solusinya, coba cek ke hosting mas andrian apakah OpenSSL module telah diinstall dan di aktifkan. Cara pengecekannya adalah, sediakan sebuah file bernama phpinfo.php dan isinya adalah

    phpinfo();

    Perhatikan bagian OpenSSL, pastikan OpenSSL module ada dan di aktifkan. :)

    thanx bro abbie, point 5 postingan ini membuat saya punya ide agar menggunakan login tambahan ke WP-Admin, dengan model seperti login network/cpanel.

    untuk point 8, thanx kembali, trik tersebut langsung saya pakai. :) Jelas bagi attacker error message ini sangat berguna. Contoh, jika password salah dan username benar, error message hanya mengatakan bahwa password salah, ini membuktikan bahwa username yang diserang sudah benar.

    untuk point 10, saya prefer untuk membuat sendiri anti spam tersebut. :D

    point 12, mirip dengan yang saya tulis tentang mengganti password admin per bulan ya? ini bisa diganti menjadi perhari. :D atau persesi login, asal kita ingat apa2 aja password listnya. :) )

    point 13, layak coba.. :D

    Thanx bro..
    ganda’s last blog.. [Enhancement] Programmatically Update Wordpress Admin Password Once A Month My ComLuv Profile

  17. ganda 14 December 2009 at 10:08 am #

    @andrian : jika opensll tidak ada atau tidak aktif, coba hubungi admin hosting untuk mengaktifkan modul tersebut. :) Selamat mencoba
    ganda’s last blog.. [Enhancement] Programmatically Update Wordpress Admin Password Once A Month My ComLuv Profile

  18. abbie 14 December 2009 at 11:45 pm #

    @ Ganda,
    First of all, thanks for your visit and comments bro. We really need you here. :D

    Kemarin sy baca, OpenSSL saat ini sdh jd fitur standar webhosting. Ada komentar di SLI plugin homepage, sdh dikonfirm klo hostingan support OpenSSL, tp error message spt mas Andrian ttp terjadi.

    ..coba cek ke hosting mas andrian apakah OpenSSL module telah diinstall dan di aktifkan. Cara pengecekannya adalah, sediakan sebuah file bernama phpinfo.php dan isinya adalah phpinfo();

    Ini file diupload ke hostingan gtu ya bro? Kemana persisnya?
    He..he.. sorry ndak faham. :newbie here:

    Thanks-nya bnyk bgt bro. Baik.. nanti sy teruskan ke WPbeginner.com.
    Wong ini sy cuma baca di sana, sangat berguna, lalu translate, trs publish deh.. ;)

  19. ganda 15 December 2009 at 9:12 am #

    @abbie:
    Mungkin modul OpenSSL memang sudah ada di hosting, tapi belum di aktifkan, dalam hal ini setting pengaktifan modul dalam file php.ini

    File phpinfo.php nya bebas di letakin di folder manapun di hosting.

    Oh.. ini tulisan dari Wpbeginner toh, boleh dong saya nya ikutan di promosiin. hihihihi
    ganda’s last blog.. [Enhancement] Programmatically Update Wordpress Admin Password Once A Month My ComLuv Profile

  20. ganda 15 December 2009 at 9:17 am #

    Tambahan 1 lagi, sebaiknya informasi blog engine meta name="generator" di hapus.

    Caranya adalah meletakkan kode berikut ke functions.php dari theme yang digunakan.

    remove_action('wp_head', 'wp_generator');

    Anyway, halaman ini tidak valid XHTML transitional ya bro?
    ganda’s last blog.. [Enhancement] Programmatically Update Wordpress Admin Password Once A Month My ComLuv Profile

  21. abbie 16 December 2009 at 9:45 pm #

    @ Ganda,
    Thx bgt responnya bos. Berguna bgt tuh. :)
    Iya ini aslinya pny WPbeginner. Dulu komen disana minta ijin ditranslate. Pas baca TOSnya ternyata gak boleh. Tp krn udah publish, males ngeditnya. Akhirnya ya dbiarin aja. he..he.. :P

    Anyway, halaman ini tidak valid XHTML transitional ya bro?

    Dont put my skill too high bos. I try to fix those errors when I check my page’ XHTML validity. But the bad thing is I dont even know how to read the html errors noted by w3.org properly. Looks like I have to spend more time to learn codes from all of your posts. ;)

  22. ganda 17 December 2009 at 11:07 am #

    @abbie :
    ah, biarkan saja lah. Wong saya juga jarang baca di Wp beginner. Untung ada si bro yang publish beginian. Hihihi.. Jadinya saya gak ketinggalan informasi.

    FYI : Comment luv break your XHTML validation bro.


Leave a Reply

CommentLuv Enabled

Please fill the required box or you can’t comment at all. Your e-mail address will not be published.

Polite behaviour is a must. Comments with unkind words won't be tolerated.

Best regards. Abbie