Keamanan Server Web Berlebihan

9

Saya telah melakukan penelitian "ekstensif" tentang pengamanan server web linux. Di atas apa yang dianggap sebagai "dasar-dasar" (menghapus layanan yang tidak digunakan, pengerasan ssh, iptables, dll.) Apakah bijaksana untuk memasukkan anti-rootkit (Tripwire) dan anti-virus (ClamAV)? Apakah ini hanya berlebihan untuk server web? Saya tahu ini adalah pertanyaan yang sangat samar, tetapi saya ingin tahu tentang pendapat orang lain.

Lingkungan masa depan saya: - ubuntu 10.04 - fail2ban - nginx 0.8.x - php 5.3.x (suhosin, apc, memcached) - mongodb 1.6.x

Kemungkinan aplikasi: - layanan web - aplikasi web dengan unggahan pengguna (gambar, pdf, dll.) - situs web biasa (formulir, dll.)

Jika Anda memiliki tips lain, silakan tambahkan!

Terima kasih

Harun
sumber

Jawaban:

8

Untuk server yang menghadap publik, saya akan mengatakan menginstal sesuatu seperti tripwire tidak berlebihan.

ClamAV adalah masalah yang berbeda. Saya akan mempertimbangkan pengaturan itu jika pengunjung Anda akan berbagi file dengan mengunggah ke, dan mengunduh dari, situs web Anda. PDF dapat berisi exploit.

Pada server yang menghadap publik, SSH saya tidak mengizinkan otentikasi kata sandi, hanya otentikasi kunci publik. Jika SSH hanya dimungkinkan dari LAN internal maka Anda dapat bersantai ini.

Jika memungkinkan saya akan menempatkan server pada DMZ sehingga tidak dapat memulai koneksi ke komputer lain di LAN internal Anda.

RedGrittyBrick
sumber
2
Jangan lupa LMD (Linux Malware Detection), rfxn.com/projects/linux-malware-detect - ini memindai jenis malware yang menginfeksi aplikasi web (HTML, PHP, perubahan file JavaScript) untuk menggunakan situs Anda untuk Spamming SEO, phishing, infeksi PC pengunjung, dll.
RichVel
3

Tidak, kamu tidak cukup jauh.

1) Anda memerlukan firewall aplikasi web seperti mod_security dan pastikan dikonfigurasi untuk memblokir serangan, bukan hanya mencatatnya.

2) Kunci php dengan phpsecinfo .

3) Kunci akun MySQL aplikasi web Anda, pastikan aplikasi Anda tidak memiliki FILEhak istimewa, yang sejauh ini yang paling berbahaya di MySQL.

4) Matikan semua UDP, dan semua TCP yang tidak Anda butuhkan. Pertimbangkan untuk menggunakan port knocking untuk ssh. Gagal mencekal tidak sebagus upaya nol .

Benteng
sumber
1) Saya mendapat kesan bahwa ModSecurity hanya dapat dikemas dengan Apache (Saya menggunakan nginx). Tapi ternyata itu bisa berjalan mandiri? Saya harus melihat ini, terima kasih! Saya telah mengikuti calomel.org/nginx.html untuk beberapa fitur.
Aaron
4) Saya menggunakan iptables untuk memblokir semua lalu lintas masuk dan keluar kecuali itu adalah port ssh saya, https, atau https (masuk, keluar). Saya akan membuka lebih banyak saat saya melanjutkan. Mengetuk port adalah tambahan yang menarik untuk ssh! Terima kasih lagi!.
Aaron
@ Harun saya tidak yakin mengapa Anda akan menggunakan nginx. Anda dapat menggunakan apache + mod_security sebagai proxy dengan apa saja yang Anda inginkan menggunakan httpd aneh dan tanpa fitur.
Benteng
2

Anda mungkin dapat menginstal AIDE dengan aman di server web - menambah dan menghapus pelanggan tidak mengubah terlalu banyak file konfigurasi, dan Anda mungkin bisa menyaring obrolan normal dengan cukup mudah.

Tetapi sesuatu yang tidak disebutkan oleh banyak panduan keamanan server web adalah Anda harus mengaktifkan noexec di partisi / tmp Anda di / etc / fstab. Jika Anda menawarkan hosting kepada publik, banyak orang akan menginstal aplikasi web tidak aman tanpa sepengetahuan Anda (dan tidak memiliki pengetahuan sendiri untuk memperbarui aplikasi mereka), dan Anda pada dasarnya mengejar bug ini selamanya. Jika Anda memastikan bahwa satu-satunya tempat penyerang dapat menyimpan perangkat lunak adalah direktori home pelanggan dan direktori / tmp, maka penyerang berisiko menunjukkan kepada Anda di mana mereka menerobos masuk jika mereka tidak dapat menggunakan direktori / tmp. Mereka tidak suka melakukan itu.

Melakukan hal ini telah memecahkan sebagian besar masalah keamanan di server hosting web kami.

Ernie
sumber
2

"Selamat datang di atas kapal! Di atas pesawat baru kami, Anda dapat menikmati restoran, bioskop, gym, sauna, dan kolam renang. Sekarang kencangkan sabuk pengaman Anda, kapten kami akan mencoba untuk mendapatkan semua ini di udara."

  1. mod_security sangat merepotkan bagi Anda dan server. Sumberdaya haus dan aturannya perlu dipelihara secara serius dan ini akan menjadi tugas yang tidak pernah berakhir. Dan tidak, itu tidak berfungsi sendiri atau dengan Nginx. Jika Anda merasa benar-benar membutuhkannya, atur server proxy yang terpisah (Apache, mod_proxy, mod_security). Ini juga berfungsi sebagai DMZ, server Anda yang sebenarnya dapat ditutup ke dunia luar sepenuhnya, dan jika proxy dilanggar, tidak ada apa-apa.

  2. ClamAV juga sangat berat, jika dijalankan sebagai daemon. Lebih baik menjalankan clamscan secara berkala selama jam tidak aktif dari Cron.

  3. Tripwire berlebihan, IMHO. Tapi sesuatu yang bisa memburu rootkit akan berguna, ada banyak skrip (rkhunter, chkrootkit).

  4. Saya percaya setidaknya 90% rootkit dll bisa masuk ke server melalui unggahan dari mesin Windows devs. Tidak ada cara yang sangat baik untuk mencegah hal ini kecuali mungkin memaksa devs untuk tidak pernah menggunakan Windows. Sebagian besar trojan mencari kredensial FTP, jadi jangan pernah gunakan FTP.

moskit
sumber
Baik untuk diketahui ... Mengingat saya tidak memiliki niat untuk mengambil rute apache, saya akan tetap berpegang pada aspek keamanan apa pun yang dapat saya temukan untuk nginx. Saya mungkin akan berakhir mengambil rute clamscan / rkhunter, juga. Terima kasih atas tipsnya!
Aaron
0

Apakah menggunakan perlindungan bentuk captcha di mesin CMS populer (Wordpress, Jomlaa, Drupal) dianggap sebagai praktik keamanan? Jika ya, maka Anda dapat menggunakan ini:

affanzbasalamah
sumber
Proteksi anti Spam ? Iya. Tapi di sini penulis ingin mengunci servernya terhadap pengguna yang tidak sah, yang captcha tidak ada hubungannya dengan.