
Saya mempunyai beberapa situs berbasis wordpress. Memang enak membuat situs dengan basis wordpress, tinggal install klik-klik selesai.
Namun ada yang harus dibayar dibalik kemudahannya. Salah satunya lokasi file tempat interaksi sistem keluar diketahui semua orang. Setidaknya wp-login.php dan xmlrpc.php.
Sebelumnya salah satu situs yang saya kelola (bukan situs ini) diretas dimana peretas yang menurut saya “bot” berhasil melakukan bruteforce untuk mendapatkan password, lalu emnggani password, dan membuat postingan untuk mengarahkan pengakses ke situs lain.
Kemarin sore saya iseng-iseng cek htop di home server saya (tempat situs ini di host). Cukup terkejut karena suhu hampir mencapai 70°C tanpa kipas saya nyalakan. Dalam keadaan normal, jika saya tidak menyalakan kipas server, suhu hanya 55°C. Lalu saya melihat 2 service php8.3-fpm yang dengan load CPU mencapai 42% dan 40%. Waduh, ini pasti ada sesuatu.
9247 www-data 20 0 313184 56256 44428 R 42.1 3.0 5:11.36 php-fpm8.3 6564 www-data 20 0 313684 57108 44560 R 40.1 3.1 5:36.83 php-fpm8.3
Setelah saya melihat access.log
tail -n 100 /var/log/nginx/access.log
Terlihat bahwa terjadi akses bertubi-tubi ke file wp-login.php dan xmlrpc.php. Bahkan karena letak wp-login.php saya sembunyikan, bot menelusuri semua folder wordpress untuk mendapatkan wp-login.php.
Dari situ maka kamu harus mulai memperhatikan keamanan situs yang dibuat dari WordPress. Banyak aspeknya, namun paling tidak beberapa yang harus saya sampaikan.
Dari sisi WordPress
- Upgrade WordPress, plugin dan semua teknologi yang menyertainya secara berkala selama memungkinkan. Yang dimaksud tidak memungkinkan misalnya kamu harus upgrade ke PHP 8.3 namun kamu masih punya aplikasi lain yang hanya disukung PHP 7.4 dan hosting tidak mendukung multiple PHP.
- Install pluginWPS Hide Login untuk situs tidak bisa langsung di akses menggunakan wp-admin/
- Install plugin Simple Login Lockdown untuk mempersulit bruteforce bekerja
- Kalau perlu install 2FA login atau plugin security lain terutama untuk menghindari login brute force.
Dari sisi Cloudflare
Saya melakukan instalasi pada server sendiri dengan akses internet rumahan, sulit bagi saya kalau tidak memutar ke cludflare. Beberapa fasilitas yang saya aktifkan antara lain:
- Cludflare DNS dan Proxy
- Mengaktifkan Security Rules terutama untuk melindungi /wp-login.php dan /xml-rpc.php
Rule Name: Protect wp-login When: URI Path contains "/wp-login.php" Then: Challenge (CAPTCHA)
Okey itu dulu ya, terimakasih Cloudflare 🙂

