Panduan Keamanan

Panduan ini mencakup praktik terbaik keamanan untuk menjalankan platform Chamilo 2.0 dalam lingkungan produksi. Keamanan adalah tanggung jawab bersama antara perangkat lunak platform, konfigurasi server Anda, dan praktik operasional yang berkelanjutan.

Selalu Perbarui Chamilo

Praktik keamanan yang paling penting adalah menjaga instalasi Chamilo Anda tetap diperbarui.

  • Berlangganan ke akun X keamanan Chamilo (@chamilosecurity) atau pantau repositori GitHub untuk pengumuman rilis.

  • Terapkan patch keamanan dengan segera. Pembaruan minor dalam cabang 2.0 dirancang agar aman untuk diterapkan.

  • Ikuti proses peningkatan untuk setiap pembaruan.

HTTPS

Selalu layani Chamilo melalui HTTPS dalam lingkungan produksi.

  • Dapatkan sertifikat SSL/TLS (Let's Encrypt menyediakan sertifikat gratis melalui Certbot).

  • Konfigurasikan server web Anda untuk mengalihkan semua lalu lintas HTTP ke HTTPS.

  • Aktifkan header HSTS (HTTP Strict Transport Security) untuk mencegah serangan downgrade:

    Strict-Transport-Security: max-age=31536000; includeSubDomains

Tanpa HTTPS, kredensial login, cookie sesi, dan semua data pengguna dikirim dalam teks biasa dan dapat dicegat di jaringan.

Izin File

Batasi izin file seminimal mungkin.

Jalur
Pemilik
Izin
Catatan

File aplikasi (kode sumber)

root atau pengguna deploy

755 (direktori), 644 (file)

Server web hanya membutuhkan akses baca.

var/

pengguna server web

775

Harus dapat ditulis untuk cache Symfony, log, dan unggahan file

.env

root atau pengguna deploy

640

Berisi rahasia. Server web hanya membutuhkan akses baca selama penggunaan normal, tetapi membutuhkan akses tulis selama instalasi.

config/

root atau pengguna deploy

750

Berisi rahasia. Server web hanya membutuhkan akses baca selama penggunaan normal, tetapi membutuhkan akses tulis selama instalasi.

Jangan pernah mengatur izin ke 777. Jangan pernah menjalankan server web sebagai root.

Kebijakan Kata Sandi

Konfigurasikan persyaratan kata sandi yang kuat di Pengaturan Keamanan:

  • Panjang minimum 8 karakter (disarankan 12+).

  • Wajibkan kombinasi huruf besar, huruf kecil, angka, dan karakter khusus.

  • Pertimbangkan untuk mengaktifkan kedaluwarsa kata sandi untuk lingkungan yang mematuhi kepatuhan.

  • Edukasi pengguna tentang memilih kata sandi yang kuat dan unik.

Pembatasan Tingkat dan Perlindungan Brute-Force

Tingkat Aplikasi

  • Atur Jumlah maksimum percobaan login sebelum memblokir akun (login_max_attempt_before_blocking_account) ke nilai kecil (misalnya 5).

  • Aktifkan CAPTCHA di halaman login. CAPTCHA aktif/nonaktif — tidak diaktifkan secara otomatis setelah N kali gagal login. Pasangkan dengan Kesalahan CAPTCHA sebelum memblokir (captcha_number_mistakes_to_block_account) untuk mengunci akun yang terus gagal CAPTCHA.

Tingkat Server

Gunakan fail2ban untuk memantau kegagalan login dan memblokir alamat IP yang melanggar:

Buat filter yang sesuai di /etc/fail2ban/filter.d/chamilo-auth.conf untuk mencocokkan entri log kegagalan otentikasi.

Manajemen Sesi

  • Atur masa pakai sesi yang wajar (misalnya, 3600 detik / 1 jam) di pengaturan keamanan.

  • Konfigurasikan flag cookie sesi di konfigurasi Symfony Anda:

  • Pertimbangkan untuk menonaktifkan "Ingat saya" pada platform dengan konten sensitif.

Header Keamanan HTTP

Konfigurasikan server web Anda untuk mengirim header keamanan:

Header
Nilai
Tujuan

X-Content-Type-Options

nosniff

Mencegah sniffing tipe MIME.

X-Frame-Options

SAMEORIGIN

Mencegah clickjacking melalui iframe.

X-XSS-Protection

1; mode=block

Perlindungan XSS lama untuk browser lama.

Referrer-Policy

strict-origin-when-cross-origin

Mengontrol kebocoran informasi referrer.

Content-Security-Policy

Bervariasi

Mengontrol sumber daya yang dapat dimuat. Memerlukan penyesuaian cermat untuk Chamilo.

Contoh untuk Apache:

Contoh untuk Nginx:


Keamanan Unggahan Berkas

  • Blokir ekstensi berkas yang dapat dieksekusi (exe, bat, sh, php, phtml, cgi) di Pengaturan Keamanan.

  • Konfigurasikan server web Anda untuk tidak pernah mengeksekusi berkas yang diunggah. Untuk Apache, tambahkan ke seluruh direktori var/:

  • Pindai berkas yang diunggah dengan antivirus (ClamAV) jika lingkungan Anda membutuhkannya.

Keamanan Basis Data

  • Gunakan pengguna basis data khusus untuk Chamilo dengan hanya hak akses yang diperlukan (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX pada basis data Chamilo).

  • Jangan gunakan akun root basis data.

  • Pastikan basis data tidak dapat diakses dari internet publik. Ikat ke localhost atau jaringan pribadi.

  • Aktifkan pencatatan audit basis data untuk lingkungan yang sensitif terhadap kepatuhan.

Cadangan (Backup)

  • Jadwalkan cadangan otomatis harian untuk basis data dan berkas yang diunggah.

  • Simpan cadangan di lokasi terpisah dari server (offsite atau penyimpanan cloud).

  • Uji pemulihan cadangan secara berkala untuk memastikan cadangan dapat digunakan.

  • Enkripsi cadangan jika mengandung data sensitif.

Lihat Cadangan untuk petunjuk terperinci.

Pemantauan

  • Pantau log Chamilo di var/log/prod.log untuk mendeteksi kesalahan dan aktivitas mencurigakan.

  • Siapkan pemantauan server (CPU, memori, disk) untuk mendeteksi kehabisan sumber daya.

  • Konfigurasikan peringatan untuk kegagalan autentikasi yang berulang.

  • Tinjau akun pengguna secara berkala untuk mendeteksi akun yang tidak sah atau tidak aktif.

Daftar Periksa

Gunakan daftar periksa ini saat menerapkan atau mengaudit instalasi Chamilo:

Terakhir diperbarui

Apakah ini membantu?