Mengamankan server tidak menuntut alat mahal. Sebagian besar penyusupan yang benar-benar terjadi bisa dicegah oleh langkah-langkah dasar yang tidak berbiaya — dan yang justru sering dilewati karena terlihat terlalu sederhana.
Mulai dari Aplikasi, Bukan dari Server
Sebagian besar website yang diretas ditembus lewat aplikasi yang berjalan di atasnya, bukan lewat sistem operasinya. Karena itu urutan pengerjaannya perlu dibalik dari yang biasa dibayangkan orang:
- Perbarui aplikasi, tema, dan plugin secara rutin. Ini langkah tunggal dengan dampak terbesar. Celah yang sudah diumumkan publik akan dipindai secara otomatis dalam hitungan hari.
- Hapus yang tidak dipakai. Plugin dan tema nonaktif tetap berisi berkas yang bisa dijalankan. Menonaktifkan tidak sama dengan menghapus.
- Jangan pakai tema atau plugin bajakan. Berkas yang disisipi kode berbahaya adalah jalan masuk yang paling sering ditemui pada situs WordPress di Indonesia.
- Aktifkan autentikasi dua langkah untuk semua akun administrator.
Mengamankan Akses ke Server
Akses masuk adalah pintu yang paling sering dicoba paksa, dan menutupnya tidak memerlukan biaya sama sekali.
- Pakai kunci SSH, bukan kata sandi. Kunci tidak bisa ditebak dengan percobaan berulang. Setelah kunci berfungsi, matikan login berbasis kata sandi.
- Matikan login langsung sebagai root. Masuk sebagai pengguna biasa lalu naikkan hak akses saat diperlukan.
- Batasi akses SSH ke alamat tertentu bila alamat Anda tetap. Kalau tidak, cukup andalkan kunci dan pemblokir percobaan masuk paksa.
- Pasang pemblokir percobaan masuk paksa. Program yang membaca log dan memblokir sementara alamat yang berkali-kali gagal login. Ringan dan menutup ancaman yang paling sering benar-benar terjadi.
- Beri setiap orang akun sendiri. Akun bersama membuat Anda tidak bisa tahu siapa melakukan apa, dan tidak bisa mencabut akses satu orang saja.
Menutup yang Tidak Perlu Terbuka
Prinsipnya: tutup semuanya, lalu buka hanya yang benar-benar dibutuhkan.
- Port. Untuk web server, yang perlu terbuka ke publik biasanya hanya port
httpsdanhttp. Port database tidak perlu terbuka ke internet sama sekali. Rinciannya dibahas di artikel firewall. - Layanan yang tidak dipakai. Setiap layanan yang berjalan adalah permukaan yang bisa diserang. Matikan yang tidak diperlukan.
- Hak akses berkas. Folder yang bisa ditulis publik sebaiknya tidak bisa menjalankan skrip. Ini yang mencegah berkas yang berhasil diunggah dari dijalankan.
- Informasi versi. Server yang mengumumkan versi persisnya di header respons mempermudah pemindai memilih sasaran.
Enkripsi dan Sertifikat
Pasang sertifikat SSL, paksa seluruh lalu lintas ke https, dan pastikan perpanjangannya berjalan otomatis.
Sertifikat kedaluwarsa membuat browser menolak membuka situs, dan itu terjadi pada tanggal yang sudah pasti — sepenuhnya bisa dicegah. Perlu diingat, https mengamankan data yang berpindah antara pengunjung dan server; ia tidak melindungi dari plugin usang atau kata sandi lemah.
Cadangan: Lapisan Terakhir yang Paling Sering Gagal
Cadangan yang belum pernah diuji pemulihannya belum tentu bisa dipakai, dan itu baru ketahuan pada saat Anda paling membutuhkannya.
Empat hal yang membedakan cadangan yang berguna:
- Tersimpan di tempat terpisah dari servernya. Cadangan yang berada di server yang sama akan ikut hilang.
- Berjalan otomatis dan terjadwal. Yang bergantung pada ingatan pasti terlewat.
- Menyimpan beberapa versi ke belakang. Penyusupan sering baru ketahuan berhari-hari kemudian, jadi cadangan terbaru bisa saja sudah ikut terinfeksi.
- Pernah diuji dikembalikan. Setidaknya sekali, ke lingkungan uji coba.
Pemantauan agar Tahu Lebih Dulu
Sebagian besar pemilik situs baru tahu ada masalah setelah diberi tahu orang lain. Yang layak dipantau untuk keperluan keamanan:
- Perubahan berkas di folder aplikasi, terutama berkas PHP di folder unggahan.
- Akun administrator baru yang tidak Anda buat.
- Lonjakan pemakaian sumber daya tanpa kenaikan pengunjung.
- Masa berlaku sertifikat SSL dan domain.
Pengaturan pemantauan dibahas terpisah di monitoring performa server.
Pertanyaan yang Sering Diajukan
Apakah semua ini berlaku untuk shared hosting? Sebagian besar berlaku, kecuali yang menyangkut konfigurasi server. Di shared hosting, penambalan sistem operasi dan pengaturan firewall ada di tangan penyedia. Yang tetap tanggung jawab Anda adalah aplikasi, plugin, kata sandi, dan cadangan.
Seberapa sering server perlu diperbarui? Tambalan keamanan sebaiknya dipasang secepatnya, dan sebagian besar sistem bisa memasangnya otomatis. Peningkatan versi besar dijadwalkan terpisah dengan cadangan dan pengujian.
Apakah plugin keamanan sudah cukup untuk WordPress? Membantu, tetapi tidak menggantikan pembaruan rutin. Plugin keamanan yang terpasang di atas WordPress usang tidak menutup celah yang sudah diketahui publik.
Apa langkah pertama kalau server terlanjur disusupi? Putuskan akses publik bila memungkinkan, ubah semua kata sandi dan kunci, lalu kembalikan dari cadangan yang dibuat sebelum kejadian. Setelah itu tutup jalan masuknya sebelum situs dibuka kembali — membersihkan berkas saja hanya menunda kejadian berikutnya.