Panduan untuk memperkuat server web Anda
Diterbitkan: 2022-03-15Karena fungsinya, server web berbeda dari banyak perangkat lain di lingkungan jaringan yang khas—server web tidak hanya terpapar ke internet berdasarkan desain, tetapi mereka kemungkinan melayani lalu lintas web untuk orang asing. Selain itu, dalam banyak situasi, server web cenderung melayani aplikasi dinamis seperti situs web WordPress atau bertindak sebagai proxy terhadap aplikasi internal lainnya. Oleh karena itu, tidak mengherankan jika server web menjadi target yang menarik bagi penyerang.
Pengerasan sistem mengacu pada proses meningkatkan pertahanan sistem sedemikian rupa sehingga mempersulit peretas jahat untuk berkompromi dengan sistem itu dan mendapatkan pijakan dalam jaringan.
Proses pengerasan server web akan, tentu saja, tergantung pada jenis server web yang Anda gunakan (misalnya Apache HTTP Server, Nginx, Microsoft IIS…), namun, ada sejumlah prinsip inti dan praktik terbaik untuk meningkatkan Anda keamanan server web yang harus Anda ingat, terlepas dari server web mana yang Anda gunakan.
Artikel ini adalah panduan pengerasan server web. Di dalamnya, kita akan melihat sejumlah praktik terbaik agnostik teknologi yang dengannya Anda dapat meningkatkan keamanan server web Anda. Untuk pengerasan WordPress, lihat panduan keamanan & pengerasan WordPress kami.
1. Tetap perbarui server web Anda
Menjaga perangkat lunak tetap mutakhir mungkin tidak terdengar seperti masalah besar, tetapi menerapkan patch keamanan tepat waktu bisa dibilang salah satu pertahanan terpenting yang dapat Anda terapkan. Selain peningkatan kinerja dan stabilitas, pembaruan server web dan sistem operasi sering kali berisi perbaikan untuk kerentanan keamanan.
Di permukaan, mungkin terdengar sepele, namun, setiap profesional keamanan informasi akan memberi tahu Anda bahwa patching lebih rumit daripada kedengarannya—bukan karena menginstal versi terbaru dari sebagian besar perangkat lunak sangat sulit, tetapi karena patching selalu dilihat sebagai sesuatu yang dapat ditunda.
Pendekatan terbaik untuk memastikan bahwa perangkat lunak server web Anda terus diperbarui adalah dengan menemukan sistem atau rutinitas yang sesuai untuk Anda atau siapa pun yang ditugaskan untuk memperbarui server web dan perangkat lunak sistem operasi Anda. Sebagian besar waktu itu bermuara pada pengingat berkala (misalnya mengatur acara kalender berulang) yang akan Anda luangkan waktu.
2. Hapus perangkat lunak dan modul yang tidak perlu
Meskipun mungkin tidak selalu seperti itu, server web adalah perangkat lunak yang kompleks. Beberapa server web, seperti Apache HTTP Server, dikirimkan dengan serangkaian "modul" (mirip dengan plugin untuk WordPress) yang dapat Anda aktifkan atau nonaktifkan tergantung pada kasus penggunaan Anda. Penyerang jahat diketahui memanfaatkan fitur dan kerentanan modul server web untuk mengumpulkan lebih banyak informasi tentang server web Anda. Meskipun ini mungkin bukan satu-satunya alasan untuk serangan yang berhasil, inti dari pengerasan server web adalah mengambil pendekatan pertahanan yang mendalam dan mempersulit pelaku jahat untuk mendapatkan pijakan terkecil sekalipun.
Contoh praktisnya adalah modul seperti mod_status Apache HTTP Server. Modul ini dirancang untuk mendapatkan gambaran umum tentang aktivitas dan kinerja server (host saat ini, jumlah permintaan yang diproses, jumlah pekerja yang tidak aktif, dan penggunaan CPU) melalui URL /server-status. Fitur seperti itu dapat memberikan indikasi yang cukup baik kepada penyerang tentang seberapa baik kinerja server web Anda—alat yang cukup berguna jika terjadi serangan Denial of Service (DoS).
Demikian pula, perangkat lunak lain yang tidak digunakan yang berjalan di server web Anda mungkin menimbulkan risiko yang tidak perlu. Misalnya:
- Apakah Anda menjalankan server FTP, seperti vsftpd yang tidak Anda perlukan?
- Apakah ada agen transfer surat seperti Sendmail atau Postfix yang tidak Anda butuhkan lagi? Jika Anda menggunakan layanan pihak ketiga untuk meningkatkan kemampuan pengiriman email WordPress, Anda tidak memerlukan layanan seperti itu.
Aplikasi / layanan ini dan banyak lainnya di server adalah semua komponen yang memiliki kebiasaan keamanan, kerentanan, dan persyaratan patch sendiri.
Singkatnya—jalankan lebih sedikit perangkat lunak jika memungkinkan. Jika Anda tidak menggunakan modul atau layanan, Anda harus mempertimbangkan untuk menonaktifkan atau menghapusnya. Secara alami, jangan hanya menonaktifkan modul atau aplikasi tanpa pengujian menyeluruh dalam lingkungan pengembangan atau staging (terkadang mungkin tidak sepenuhnya jelas bahwa modul atau aplikasi server web sedang digunakan).
3. Kencangkan kontrol akses
Mengontrol akses ke server web Anda sangat penting untuk mendapatkan yang benar. Lagi pula, Anda ingin meminimalkan kemungkinan akses ke server web Anda jatuh ke tangan yang salah. Berikut ini adalah sejumlah praktik terbaik yang harus diikuti terkait dengan pemeliharaan kontrol akses yang tepat.
- Jangan gunakan pengguna root. Jika Anda perlu melakukan tugas administratif, gunakan sudo sebagai gantinya;
- Gunakan kata sandi sistem (dan WordPress) yang kuat;
- Gunakan kunci SSH untuk kata sandi saat menggunakan SSH;
- Pertimbangkan untuk membatasi akses SSH/RDP dari alamat IP tertentu;
- Aktifkan Otentikasi Dua Faktor (2FA) di akun penyedia cloud apa pun;
- Pastikan bahwa setiap orang yang mengakses server web memiliki pengguna mereka sendiri—jangan berbagi akun pengguna antar pengguna;
- Batasi akses Shell/SSH/Remote Desktop secara eksplisit kepada orang-orang yang membutuhkannya.
4. Mengatur Pemantauan Integritas File (FIM)
Pemantauan Integritas File (FIM) membantu administrator sistem mengidentifikasi saat file berubah di server web. Sementara beberapa file cukup sering berubah sebagai bagian dari operasi server web normal, file seperti instalasi WordPress tidak boleh berubah kecuali jika administrator membuat perubahan (misalnya memperbarui file wp-config.php) atau memperbarui WordPress itu sendiri.
Meskipun ada banyak opsi yang dapat Anda pilih untuk digunakan dalam hal Pemantauan Integritas File, disarankan untuk tetap menggunakan sesuatu yang khusus untuk aplikasi yang Anda jalankan, mudah disiapkan dan dioperasikan, dan tidak memerlukan banyak penyetelan. Jika tidak, Anda akan tenggelam dalam pemberitahuan yang tidak berarti dan sebelum Anda menyadarinya, kelelahan waspada akan muncul, menghapus upaya Anda untuk bersama. Singkatnya, lebih banyak peringatan dan fitur tidak sama dengan lebih baik dalam hal FIM, alih-alih mencari solusi yang memberikan nilai paling banyak dengan jumlah overhead paling sedikit.
5. Gunakan layanan mitigasi DDoS dan WAF
Alih-alih mengekspos server web Anda langsung ke Internet, Anda harus mempertimbangkan untuk menggunakan layanan seperti Cloudflare, Fastly, Akamai atau serupa untuk melindungi diri Anda dari berbagai macam serangan termasuk serangan Distributed Denial of Service (DDoS). Serangan Denial of Service (DoS) adalah jenis serangan di mana penyerang bertujuan membanjiri situs web dengan permintaan, dan akibatnya, mencegah server web Anda melayani permintaan ke pengguna yang sah.
Selain mitigasi Denial of Service, layanan cloud semacam itu biasanya juga menawarkan kemampuan Web Application Firewall (WAF) yang mampu menghentikan banyak serangan aplikasi web run-of-the-mill seperti injeksi SQL dasar (SQLi) dan Cross-site sederhana. Skrip (XSS). Meskipun WAF bukanlah solusi untuk kerentanan aplikasi web, mereka menawarkan perlindungan terhadap eksploitasi—terutama dengan aturan WAF yang dioptimalkan untuk situs web WordPress.
Apa langkah selanjutnya?
Meskipun artikel ini membahas beberapa teknik pengerasan server web yang umum, tidak ada masalah keamanan yang merupakan peluru perak. Dengan demikian, tidak ada satu pun metode untuk mempertahankan sistem yang sangat mudah, terutama dalam menghadapi musuh yang gigih. Karenanya, mengapa Anda perlu mengamankan setiap komponen yang membentuk situs WordPress Anda. Anda tidak dapat mengamankan server web Anda dan mengabaikan keamanan WordPress, atau komputer Anda sendiri.
Namun, patching yang konstan, dan mengikuti praktik keamanan dan kebersihan yang baik dapat secara drastis meningkatkan upaya yang perlu dilakukan penyerang untuk berhasil melakukan serangan—yang, seringkali, membuat penyerang frustrasi, memaksa mereka ke target yang lebih lunak.