Bagaimana prosedur untuk mengamankan Linux, Apache, MySQL, PHP Server (atau bahkan Perl) untuk penggunaan produksi?
Selain mengatur kata sandi MySQL dan kata sandi root untuk Linux apa langkah lain (mungkin tidak begitu jelas) yang harus diambil?
Juga langkah apa yang bisa saya ambil, jika saya akan menjadi paranoid ekstra, yang biasanya tidak diperlukan?
Ini untuk penggunaan situs tunggal dasar tetapi harus aman.
Jawaban:
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:
without-password
(hanya keypair)Dengan Apache:
Dengan MySQL:
Saya akan merekomendasikan meneliti penyetelan php.ini untuk keamanan secara khusus. Ini perangkat lunak yang berisiko secara default.
Benteng
sumber
Berikut ini adalah artikel bagus yang dapat Anda gunakan sebagai basis untuk pengaturan Anda dan mengubahnya sesuai dengan pembagian Anda: http://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- server-dengan-centos-5-36786
sumber
The Information Security Agency Pertahanan memiliki seperangkat daftar periksa keamanan yang adalah tempat yang baik untuk memulai. Yang lebih baik adalah memahami alasan untuk setiap entri, tetapi itu bukan jawaban cepat. Saya akan merekomendasikan Anda melihat STIG , Enclave, Network, Unix, dan Web Server .
sumber