it-swarm-id.com

Praktik terbaik untuk pengerasan Server Apache?

Apa sajakah praktik terbaik, rekomendasi, bacaan wajib untuk mengamankan Server Apache?

104
Eric Warriner

Ambil panduan Pusat Keamanan Internet (CIS) untuk mengamankan Apache (ini menjelaskan secara rinci cara meningkatkan keamanan):

Sunting: Tautan yang Diperbarui Tolok Ukur CIS Apache HTTP Server 2.2.x

Jika Anda memiliki lisensi untuk Nessus , maka Anda dapat menjalankan pemeriksaan otomatis dengan mengambil templat audit mereka:

alt text

31
Tate Hansen
  • Gunakan login berbasis kunci SSH
  • Amankan MySQL
  • Nonaktifkan phpMyAdmin, webmin, dll
  • Tutup semua port/proses yang tidak diperlukan
  • Gunakan pemeriksa integritas file
  • Gunakan mod_security
  • Tetapkan izin/grup yang tepat

Ini panduan yang bagus:
(https://serverfault.com/questions/212269/tips-for-securing-a-lamp-server

Panduan dasar untuk pengerasan: http://www.wpsecure.net/server-guide/

Jika Anda menjalankan php: http://www.madirish.net/?article=229

Temukan 404 (atau kode status lainnya) di log Apache
awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

12
Wyck

Jawaban yang awalnya sangat dipilih untuk pertanyaan ini yang diterima telah dihapus karena itu adalah plagiarisme langsung 20 cara untuk mengamankan konfigurasi Apache Anda . Halaman itu adalah sumber yang fantastis.

@RoryMcCune juga memposting ini sebagai tautan pada jawaban itu: Ada proyek OWASP untuk mengembangkan ModSecurity Core Rule Set here yang dapat digunakan.

7
Jeff Ferland

Ada banyak saran bagus di sini, jadi saya tidak akan mengulangi hal-hal yang telah disebutkan. Tapi yang akan saya katakan adalah:

Jangan lupa untuk mengganti halaman kesalahan standar dengan hal-hal yang tidak memberikan rilis Server Web Anda atau revisi kernel. Saya cenderung mengganti setiap html default dengan 1 liner yang mirip "Kesalahan 400." Ini memberi sedikit tentang sistem pergi. Prinsip ini berlaku untuk semua server web yang mampu menampilkan halaman kesalahan khusus, semuanya cukup standar untuk memberikan terlalu banyak informasi daripada yang diperlukan. Anda akan berpikir bahwa ServerSignature akan menyembunyikan ini, tetapi dalam banyak kasus tidak.

Juga, jangan lupa untuk menghapus semua konten HTML default (khusus bahasa dll.) Sehingga sidik jari jauh lebih sulit.

Sejauh membaca baik ada whitepaper dari Apcon 2008 itu layak dibaca.

Mod_Security disebutkan beberapa kali, ini lebih cocok untuk aplikasi web, jadi jika Anda hanya menyajikan konten statis, itu tidak akan membantu Anda juga Banyak, meskipun ada beberapa serangan yang membantu bertahan selama penanganan permintaan yang dapat mempengaruhi Server Web statis.

Hal lain yang saya sebutkan adalah manajemen log yang baik, jika Anda tidak membuat log off dan mengawasi dengan cermat pada sistem Anda menjalankan risiko penyerang menghantamnya tanpa memiliki kesadaran akan hal itu.

6
Ori

Semua prinsip keamanan umum berlaku: jalankan hanya modul yang Anda butuhkan, matikan fitur yang tidak Anda butuhkan, rapikan izin/kepemilikan Anda (sebagian besar konten hanya dapat dibaca, jadi mengapa file memerlukan lebih dari 400 perm?).

Hal-hal yang khusus untuk Apache, seperti pekerjaan CGI, atau vhost yang berbeda yang menyajikan konten yang sama dua kali dengan dua mekanisme keamanan berbeda pada mereka jauh lebih sulit dikenali; bukan pemeriksaan otomatis, Anda benar-benar harus tahu Apache, OS yang mendasarinya, dan apa yang sedang dilakukan aplikasi di Apache.

Demi kelengkapan berikut ini adalah Apache 2.2 Daftar Periksa Keamanan dari DISA. UPDATE: Berikut ini tautan ke seluruh koleksi mereka dokumen pengerasan server web.

6
Marcin

Mungkin layak memberi Apache mod_security lihat.

Saya telah mencobanya di beberapa server saya akhir-akhir ini tidak hanya melakukan beberapa konfigurasi tweak untuk Apache itu sendiri seperti mengubah nomor versi dll tetapi juga bertindak sebagai firewall aplikasi web yang membantu melindungi terhadap berbagai serangan seperti SQL injeksi dll.

4
Mark Davidson

Bagaimana Saya Mengamankan Server Web Apache

Apa jawaban yang Anda harapkan jika Anda bertanya "Bagaimana saya menerbangkan jet-jumb" atau "Bagaimana saya melakukan operasi otak" - hal yang sama berlaku untuk membuat server web aman - Anda perlu melakukan 1000 jam pelatihan, latihan, dan penelitian . Tapi karena semua orang harus memulai dari suatu tempat ...

Ada banyak daftar periksa dasar di internet tentang cara mengeraskan server - tetapi sesuai komentar saya di tempat lain, kualitasnya sangat bervariasi .

Saya akan merekomendasikan yang sans sebagai sumber yang baik.

Setelah Anda mengikuti daftar periksa, Anda perlu menentukan cara yang dapat Anda gunakan

  • memverifikasi integritas server Anda (Anda pasti membutuhkan IDS berbasis Host seperti tripwire bersama dengan detektor rootkit)
  • waspadai dan terapkan tambalan
  • pulihkan sistem Anda ke kondisi baik yang diketahui

Jangan merencanakan bagaimana Anda menangani insiden keamanan jika itu terjadi. Rencanakan apa yang harus dilakukan ketika itu terjadi.

Setelah Anda mendapatkan pengaturan sistem Anda dan dikonfigurasi kemudian tukar hard disk dan lihat berapa lama Anda untuk mendapatkan layanan dan berjalan lagi tanpa menggunakan disk asli.

2
symcbean

ini bukan hanya terkait dengan Apache (dan juga diperhitungkan untuk nginx + php-fpm), tetapi sering dilupakan: php-eastereggs, yang mungkin diaktifkan melalui php.ini

  expose_php = off

tidak seburuk meninggalkan phpinfo.php di belakang, tetapi biasanya merupakan petunjuk untuk administrasi sistem yang sangat malas.

lihat telur paskah

Thread yang bagus berbalik. Banyak orang mengatakan kebenaran.

Mereka lupa satu, OpenBSD cara:

Di OpenBSD, server Apache httpd (8) telah chroot (2) diedit secara default

httpd (v.1 dari Apache) termasuk dalam OpenBSD secara default, dan chroot secara default.

Anda dapat mengulanginya dengan mudah dengan Apache2 atau nginx pada OS mirip Unix lainnya.

0
user29424

Gunakan versi terbaru dari Apache, patch OS Anda dan juga pihak ketiga seperti openssl atau yang lainnya.

Blokir port yang tidak diinginkan.

Ini akan melindungi Anda dari beberapa kerentanan yang diketahui, tetapi Anda akan selalu rentan terhadap 0 hari, tentu saja.

0
Novice User

Berikut 6 langkah utama:

  1. Amankan kode aplikasi Anda
  2. nonaktifkan semua modul yang tidak digunakan. Cobalah untuk menonaktifkan semua, dan kemudian, satu per satu, tambahkan modul.
  3. hapus semua skrip dan file cadangan di folder web.
  4. nonaktifkan daftar direktori
  5. gunakan modsecurity untuk melindungi aplikasi Anda dari serangan tingkat aplikasi.
  6. Gunakan Fail2ban untuk memicu kesalahan HTTP (403, 404).

Jangan mengandalkan firewall jaringan Anda, tidak ada gunanya ketika berbicara tentang keamanan web.

0
Mike