Checklist Keamanan Produksi
Gunakan daftar periksa (checklist) ini sebelum meluncurkan aplikasi ke lingkungan produksi untuk memastikan seluruh lapisan keamanan telah terpasang dengan benar.
1. Verifikasi Konfigurasi Lingkungan (.env)
Bagian berjudul “1. Verifikasi Konfigurasi Lingkungan (.env)”-
APP_DEBUG=false: Wajib dimatikan agar pesan stack trace dan kredensial database tidak bocor saat terjadi error. -
APP_ENV=production. -
SESSION_SECURE_COOKIE=true: Memastikan cookie sesi hanya dikirim melalui koneksi terenkripsi HTTPS. -
SECURITY_MONITOR_ENABLED=true: Sakelar WAF aktif. -
SECURITY_BLOCK_ENFORCEMENT=true: Penolakan HTTP 403 aktif untuk IP yang terblokir. -
SECURITY_INSTANT_BLOCK_ENABLED=true: Blokir langsung 30 hari untuk zero-tolerance attack. -
SECURITY_LOGIN_LOCKOUT_ENABLED=true: Proteksi stepped brute force aktif. -
SECURITY_SUPPORT_EMAIL: Diisi alamat email resmi helpdesk/keamanan instansi Anda.
2. Integritas Berkas & Baseline
Bagian berjudul “2. Integritas Berkas & Baseline”- Buat Baseline SHA-256 Pertama Kali:
Segera setelah deployment rilis selesai dijalankan:
Ini mengunci hash berkas inti resmi (
Terminal window php artisan security:baseline --forceapp/,config/,routes/,public/index.php,bootstrap/app.php).
3. Hak Akses Berkas & Direktori (Permissions)
Bagian berjudul “3. Hak Akses Berkas & Direktori (Permissions)”Terapkan prinsip Least Privilege pada sistem operasi Linux:
# Berikan kepemilikan kepada pengguna web serversudo chown -R www-data:www-data /var/www/aplikasi-anda
# Setel izin direktori standar (755) dan berkas (644)find /var/www/aplikasi-anda -type d -exec chmod 755 {} \;find /var/www/aplikasi-anda -type f -exec chmod 644 {} \;
# Folder storage dan cache WAJIB writable (775)chmod -R 775 /var/www/aplikasi-anda/storagechmod -R 775 /var/www/aplikasi-anda/bootstrap/cache4. Crontab & Otomasi Pemeliharaan
Bagian berjudul “4. Crontab & Otomasi Pemeliharaan”- Pastikan cron runner Laravel berjalan setiap menit:
Terminal window * * * * * cd /var/www/aplikasi-anda && php artisan schedule:run >> /dev/null 2>&1 - Pastikan cron pembersih log usang harian aktif (
security:prune-logspada jam 02:30).
5. Web Server Nginx Hardening
Bagian berjudul “5. Web Server Nginx Hardening”- Salin template
nginx.confyang telah dipublikasikan ke/etc/nginx/sites-available/. - Pastikan dua direktif
limit_req_zonediletakkan di dalam blokhttp { ... }. - Sesuaikan path socket PHP-FPM (
/var/run/php/php8.3-fpm.sockatau sesuai versi PHP server). - Jika berada di balik Reverse Proxy / Cloudflare, aktifkan direktif
set_real_ip_fromdanreal_ip_recursive on;. - Pastikan
server_tokens off;aktif untuk menyembunyikan versi Nginx. - Jalankan uji sintaks Nginx:
Terminal window sudo nginx -t - Reload Nginx:
Terminal window sudo systemctl reload nginx
6. Prosedur Darurat Buka Blokir (Emergency Runbook)
Bagian berjudul “6. Prosedur Darurat Buka Blokir (Emergency Runbook)”Jika karena suatu insiden tak terduga, IP kantor pusat atau IP pimpinan terblokir oleh WAF:
- Hubungkan ke server melalui SSH.
- Jalankan perintah unblock instan:
Atau jika darurat skala luas:
Terminal window php artisan security:unblock-ip 103.11.22.33Terminal window php artisan security:unblock-ip --all - Tambahkan IP tersebut ke variabel
SECURITY_WHITELISTdi berkas.envagar tidak terulang kembali.