7 Daftar Konfigurasi Keamanan Dasar LAMP Stack, Wajib Tahu!
Halo, DomaiNesians! Pernah nggak kalian mendengar tentang istilah LAMP Stack? atau bahkan kalian pernah melakukan konfigurasi keamanan dasar LAMP Stack? LAMP (Linux, Apache, MySQL, PHP) sendiri adalah salah satu stack server paling populer untuk meng-host aplikasi web.Â
Namun, seperti halnya teknologi lainnya, LAMP stack juga rentan terhadap berbagai ancaman keamanan jika tidak dikonfigurasi dengan benar. Nah, untuk menjaga LAMP Stack kalian tetap aman, kalian perlu mengetahui apa saja konfigurasi keamanan dasar yang bisa dilakukan pada LAMP Stack.
Tujuannya adalah untuk memastikan bahwa server kita bisa lebih tahan terhadap serangan, menjaga data pengguna tetap aman, dan meningkatkan stabilitas aplikasi. Jadi, yuk simak artikelnya sampai habis ya!
Konfigurasi Keamanan Dasar Sistem Operasi Linux
Sebelum kita masuk ke konfigurasi Apache, MySQL, dan PHP, pastikan server Linux kalian sudah dikonfigurasi dengan aman.
1. Mengupdate sistem secara berkala
Sebelum menginstal apapun di VPS, pastikan untuk selalu memperbarui sistem operasi untuk mendapatkan patch keamanan terbaru:
|
1 |
sudo apt update && sudo apt upgrade -y |
2. Mengaktifkan firewall (UFW)
Menggunakan firewall akan membatasi akses hanya pada port yang diperlukan:
|
1 2 3 4 |
sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable |
Pastikan hanya port yang diperlukan yang diizinkan, seperti 22 (SSH), 80 (HTTP), dan 443 (HTTPS).
3. Menonaktifkan Login Root SSH
Menonaktifkan login root SSH akan mengurangi risiko brute-force attack dengan mencegah login root:
|
1 |
sudo nano /etc/ssh/sshd_config |
Kemudian, ubah baris berikut:
|
1 |
PermitRootLogin no |
Simpan, lalu restart SSH:
|
1 |
sudo systemctl restart ssh |
4. Menggunakan kunci SSH
Ganti autentikasi berbasis password dengan kunci SSH untuk keamanan yang lebih kuat.
Konfigurasi Keamanan Dasar Apache Web Server
Selanjutnya, setelah melakukan konfigurasi keamanan dasar pada sistem operasi Linux, sekarang kita masuk ke konfigurasi komponen LAMP Stack selanjutnya yaitu Apache web server.
1. Menyembunyikan versi Apache
Hapus informasi versi Apache untuk mengurangi risiko serangan berdasarkan versi:
|
1 |
sudo nano /etc/apache2/conf-available/security.conf |
Kemudian, ubah atau tambahkan baris berikut:
|
1 2 |
ServerTokens Prod ServerSignature Off |
Terakhir, restart Apache untuk menerapkan perubahan:
|
1 |
sudo systemctl restart apache2 |
2. Menggunakan modul Mod_Evasive dan Mod_Security
Mod_Evasive melindungi dari serangan DDoS, sementara Mod_Security berfungsi sebagai Web Application Firewall (WAF):
|
1 |
sudo apt install libapache2-mod-security2 libapache2-mod-evasive -y |
Aktifkan Mod_Security:
|
1 2 |
sudo a2enmod security2 sudo systemctl restart apache2 |
3. Melindungi direktori dengan .htaccess
Buat file .htaccess untuk melindungi direktori sensitif:
|
1 |
nano /var/www/html/.htaccess |
Masuk ke konfigurasi berikut:
|
1 2 3 |
<FilesMatch "^\.ht"> Â Â Require all denied </FilesMatch> |
Konfigurasi Keamanan Dasar Database MySQL
Setelah melakukan konfigurasi keamanan dasar untuk Apache web server, selanjutnya kita bisa mengkonfigurasi database MySQL untuk menjaga akses database kita tetap aman dan terjaga.
1. Mengganti password root MySQL
Sebaiknya jangan menggunakan password default untuk akun root:
|
1 |
sudo mysql -u root -p |
Lalu, di dalam MySQL prompt tambahkan atau ubah query berikut:
|
1 2 3 |
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password_baru'; FLUSH PRIVILEGES; EXIT; |
2. Menghapus database dan user tidak terpakai
Menghapus database default dan pengguna yang tidak diperlukan bertujuan untuk mengurangi resiko akses dari pengguna yang tidak diinginkan:
|
1 2 3 |
DROP DATABASE test; DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES; |
3. Membatasi akses ke database
Untuk mengamankan database MySQL, sebaiknya kita hanya memberikan izin akses dari aplikasi yang memerlukan database, bukan dari server lain kecuali diperlukan:
|
1 2 3 |
UPDATE mysql.user SET Host='localhost' WHERE User='admin_keuangan'; FLUSH PRIVILEGES; EXIT; |
Konfigurasi Keamanan Dasar PHP
Terakhir, dalam konfigurasi keamanan dasar LAMP Stack, kita juga perlu melakukan konfigurasi pada PHP untuk mencegah kebocoran informasi-informasi yang bersifat sensitif atau rahasia.
1. Membatasi informasi error
Hindari menampilkan error PHP ke pengguna untuk mencegah pengungkapan informasi sensitif:
|
1 |
sudo nano /etc/php/8.2/apache2/php.ini |
Cari dan ubah baris berikut:
|
1 2 |
display_errors = Off log_errors = On |
2. Membatasi ukuran upload file
Kurangi risiko serangan melalui file upload dengan membatasi ukuran file yang diizinkan:
|
1 2 |
upload_max_filesize = 2M post_max_size = 2M |
3. Menonaktifkan eksekusi fungsi yang berbahaya
Terakhir, nonaktifkan fungsi PHP yang sering dieksploitasi:
|
1 |
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source |
Aktifkan HTTPS dengan SSL/TLS
Gunakan SSL/TLS untuk mengenkripsi data yang dikirim antara server dan pengguna:
|
1 2 |
sudo apt install certbot python3-certbot-apache -y sudo certbot --apache |
Kemudian, lakukan pembaruan SSL secara otomatis:
|
1 |
sudo systemctl reload apache2 |
Monitoring dan Logging
Monitoring dan logging juga merupakan tahap konfigurasi keamanan dasar dalam LAMP Stack yang dibutuhkan untuk memantau aktivitas server secara berkala.
1. Aktifkan logging Apache dan MySQL
Pantau aktivitas server secara berkala untuk mendeteksi anomali lebih awal:
|
1 |
sudo nano /etc/apache2/apache2.conf |
Kemudian, tambahkan baris berikut ke dalam file konfigurasi tersebut:
|
1 |
LogLevel warn |
Periksa log secara rutin:
|
1 2 |
sudo tail -f /var/log/apache2/error.log sudo tail -f /var/log/mysql/error.log |
Backup dan Recovery
Terakhir, jangan lupa untuk selalu membuat backup data secara rutin untuk memastikan data kita tetap aman jika terjadi serangan secara tiba-tiba:
|
1 |
mysqldump -u root -p database_name > database_backup.sql |
Kesimpulan
Mengamankan LAMP stack adalah langkah penting untuk melindungi data pengguna dan menjaga stabilitas aplikasi. Dengan mengikuti panduan ini, kamu sudah berada di jalur yang tepat untuk membuat server kamu lebih aman. Ingat, keamanan adalah proses berkelanjutan, jadi pastikan untuk terus memantau dan memperbarui sistem secara berkala.
Nah, selain melakukan konfigurasi keamanan dasar untuk LAMP Stack, pastikan juga jika server yang kita gunakan terjamin keamanannya. DomaiNesia menyediakan Cloud VPS yang sudah teruji kehandalan dan keamanannya. Jadi, kalau kalian mau punya server yang aman, pastikan pakai Cloud VPS dari DomaiNesia ya!
