Rekomendasi ini tidak masuk akal dan tidak dimaksudkan untuk komprehensif.
Lihat Bastille, ini adalah serangkaian skrip yang mengimplementasikan praktik terbaik di Linux.
Jangan mengirim data autentikasi melalui protokol plaintext. Misalnya, nonaktifkan FTP. Jika Anda mengirim data otentikasi melalui Apache, gunakan SSL.
Nonaktifkan dan hapus semua perangkat lunak yang tidak perlu termasuk antarmuka GUI.
Audit semua file dengan bit SUID yang diatur dan dihapus. (Ini akan sangat membatasi kemampuan non-root. Memahami implikasi untuk setiap perubahan individu.)
Audit direktori publik yang dapat ditulis dan hapus bit yang dapat ditulis. (Biarkan / tmp sendirian.)
Hindari menjalankan daemon apa pun sebagai root.
Teliti semua perangkat lunak multi-pengguna yang mendengarkan pada soket secara terperinci untuk praktik terbaik keamanan.
Menghindari menambahkan pengguna ke sistem adalah salah satu pendekatan terbaik. Sistem multi-pengguna membutuhkan perhatian yang lebih besar terhadap detail.
Menegakkan standar kata sandi. Misalnya: minimal 10 karakter, karakter non-alfanumerik, menggunakan huruf dan angka. Ini untuk membuat brute memaksa lebih sulit dalam hal kompromi file kata sandi. Terapkan ini melalui sistem.
Mengunci pengguna setelah 5 upaya otentikasi gagal dengan minimal 10 menit penguncian. Pertahankan riwayat kata sandi sehingga pengguna tidak dapat menggunakan 5 kata sandi yang lalu.
Jika Anda memiliki lingkungan yang lebih besar, menggunakan segregasi jaringan dengan beberapa subnet untuk mengisolasi risiko adalah persyaratan mutlak. Jika lingkungan yang lebih kecil, disarankan untuk menjalankan firewall pada sistem lokal untuk membatasi paparan. Misalnya, hanya mengizinkan SSH ke IP Anda. tcpwrappers dapat digunakan juga untuk lapisan tambahan. (/etc/hosts.allow, /etc/hosts.deny)
Dan, tentu saja, memperbarui semua perangkat lunak. Terutama menghadapi dasmon publik.
Dengan SSH:
- Nonaktifkan protokol SSH 1
- Hanya izinkan otentikasi root
without-password
(hanya keypair)
Dengan Apache:
- Nonaktifkan semua modul yang tidak diperlukan
- Nonaktifkan .htaccess dan direktori publik
- Nonaktifkan FollowSymlink dan opsi yang tidak perlu
- Jangan menginstal PHP jika Anda tidak membutuhkannya.
Dengan MySQL:
- Nonaktifkan pengguna default.
- Jangan gunakan host wildcard.
- Pastikan untuk mengatur host unik untuk setiap pengguna.
- Jangan dengarkan di tcp kecuali diperlukan. (Tidak bisa dihindari.)
- Batasi hak pengguna aplikasi sebanyak mungkin. (SELECT, INSERT, UPDATE, DELETE ideal untuk menulis dan SELECT untuk dibaca)
Saya akan merekomendasikan meneliti penyetelan php.ini untuk keamanan secara khusus. Ini perangkat lunak yang berisiko secara default.
Benteng