Dalam artikel ini, anda akan menemui beberapa petua dan trik untuk memperkuat konfigurasi Pelayan Web Apache anda dan meningkatkan keselamatan umum.
Akaun Pengguna Tanpa Keistimewaan
Tujuan akaun pengguna tanpa root atau tanpa hak adalah untuk menyekat pengguna dari akses yang tidak perlu ke tugas-tugas tertentu dalam sistem. Dalam konteks pelayan web Apache, ini bermaksud bahawa ia harus berfungsi dalam lingkungan terhad dengan hanya izin yang diperlukan. Secara lalai, Apache berjalan dengan hak istimewa akaun daemon. Anda boleh membuat akaun pengguna bukan root yang berasingan untuk mengelakkan ancaman sekiranya berlaku kerentanan keselamatan.
Selanjutnya, jika apache2 dan MySQL berada di bawah kelayakan pengguna yang sama, apa-apa masalah dalam proses perkhidmatan sekali akan memberi kesan kepada yang lain. Untuk mengubah hak istimewa pengguna dan kumpulan untuk pelayan web, pergi ke / etc / apache2, buka envvars file, dan tetapkan pengguna dan kumpulan ke pengguna akun baru yang tidak istimewa, katakan, "apache," dan simpan fail.
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / envvars... hirup ..
eksport APACHE_RUN_USER = apache
eksport APACHE_RUN_GROUP = apache
... hirup ..
Anda juga boleh menggunakan perintah berikut untuk mengubah kepemilikan direktori pemasangan kepada pengguna bukan root baru.
ubuntu @ ubuntu ~: $ sudo chown -R apache: apache / etc / apache2Keluarkan arahan berikut untuk menyimpan perubahan:
ubuntu @ ubuntu ~: $ sudo service apache2 mulakan semula
Pastikan Apache Terkini
Apache terkenal kerana menyediakan platform yang selamat dengan komuniti pemaju yang sangat prihatin dan jarang menghadapi masalah keselamatan. Walaupun demikian, adalah normal untuk menemui masalah setelah perisian dilepaskan. Oleh itu, adalah mustahak untuk memastikan pelayan web sentiasa dikemas kini untuk memanfaatkan ciri keselamatan terkini. Dianjurkan juga untuk mengikuti Daftar Pengumuman Pelayan Apache untuk terus mengemas kini tentang pengumuman, siaran, dan kemas kini keselamatan baru dari komuniti pengembangan Apache.
Untuk mengemas kini apache anda menggunakan apt, ketik berikut:
ubuntu @ ubuntu ~: $ sudo apt-get kemas kiniubuntu @ ubuntu ~: $ sudo apt-get peningkatan
Lumpuhkan Tandatangan Pelayan
Konfigurasi lalai dari Apache Server memperlihatkan banyak perincian mengenai pelayan dan tetapannya. Contohnya, arahan ServerSignature dan ServerTokens yang diaktifkan di / etc / apache2 / apache2.fail conf menambah tajuk tambahan ke Respons HTTP yang mendedahkan maklumat yang berpotensi sensitif. Maklumat ini merangkumi perincian tetapan pelayan, seperti versi pelayan dan OS hosting, yang dapat membantu penyerang dalam proses pengintaian. Anda boleh mematikan arahan ini dengan mengedit apache2.fail conf melalui vim / nano dan tambahkan arahan berikut:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.pengesahan... hirup ..
Tandatangan Pelayan Mati
... hirup ..
ServerTokens Prod
... hirup ..
Mulakan semula Apache untuk mengemas kini perubahan.
Lumpuhkan Penyenaraian Direktori Pelayan
Senarai Direktori memaparkan semua kandungan yang disimpan dalam folder root atau sub-direktori. Fail direktori boleh merangkumi maklumat sensitif yang tidak dimaksudkan untuk paparan umum, seperti skrip PHP, file konfigurasi, fail yang berisi kata laluan, log, dll.
Untuk tidak membenarkan penyenaraian direktori, ubah fail konfigurasi pelayan Apache dengan mengedit apache2.fail conf sebagai:
... hirup ..
Pilihan -Indeks
... hirup ..
ATAU
... hirup ..Pilihan -Indeks
... hirup ..
Anda juga boleh menambahkan arahan ini di .fail htaccess dari direktori laman web utama anda.
Lindungi Tetapan Sistem
The .fail htaccess adalah ciri yang mudah dan hebat yang membolehkan konfigurasi di luar apache2 utama.fail conf. Namun, dalam keadaan di mana pengguna dapat memuat naik file ke pelayan, ini dapat dimanfaatkan oleh penyerang untuk mengunggah sendiri “.fail htaccess ”dengan konfigurasi yang berniat jahat. Oleh itu, jika anda tidak menggunakan ciri ini, anda boleh mematikannya .arahan htaccess, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.pengesahan... hirup ..
#AksesFileName .htaccess
... hirup ..
ATAU
Lumpuhkan .fail htaccess kecuali untuk direktori yang diaktifkan secara khusus dengan mengedit apache2.fail conf dan mengubah arahan AllowOverRide menjadi Tiada;
... hirup ..
AllowOverride Tiada
... hirup ..
Direktori yang selamat dengan Pengesahan
Anda boleh membuat kelayakan pengguna untuk melindungi semua atau beberapa direktori menggunakan utiliti htpasswd. Pergi ke folder pelayan anda dan gunakan arahan berikut untuk membuat a .fail htpasswd untuk menyimpan hash kata laluan untuk kelayakan yang diberikan kepada, misalnya, pengguna bernama dev.
[dilindungi e-mel] ~: $ sudo htpasswd -c / etc / apache2 / -htpasswd devPerintah di atas akan meminta pengesahan kata laluan dan kata laluan baru. Anda boleh melihat kucing itu ./ htpasswd file untuk memeriksa hash untuk kelayakan pengguna yang disimpan.
Sekarang, anda dapat mengatur file konfigurasi secara automatik di direktori laman web anda yang perlu anda lindungi dengan mengubah .fail htaccess. Gunakan arahan dan arahan berikut untuk mengaktifkan pengesahan:
ubuntu @ ubuntu ~: $ sudo nano / var / www / your_website /.htaccess... hirup ..
Asas Jenis Auth
AuthName "Tambah Prompt Dialog"
AuthUserFile / etc / apache2 / user_name / domain_name /.htpasswd
Memerlukan pengguna yang sah
... hirup ..
Ingatlah untuk menambah jalan mengikut jalan anda.
Jalankan Modul yang Diperlukan
Konfigurasi Apache lalai merangkumi modul yang diaktifkan yang mungkin tidak anda perlukan. Modul pra-pemasangan ini membuka pintu untuk masalah keselamatan Apache yang sama ada sudah ada atau boleh wujud pada masa akan datang. Untuk mematikan semua modul ini, pertama-tama anda perlu memahami modul mana yang diperlukan untuk kelancaran pelayan web anda. Untuk tujuan ini, periksa dokumentasi modul apache yang merangkumi semua modul yang ada.
Seterusnya, gunakan arahan berikut untuk mengetahui modul mana yang berjalan di pelayan anda.
[dilindungi e-mel] ~: $ sudo ls / etc / apache2 / mods-enabledApache dilengkapi dengan arahan a2dismod yang kuat untuk mematikan modul. Ini menghalang memuatkan modul dan meminta anda memberi amaran ketika mematikan modul bahawa tindakan tersebut dapat memberi kesan negatif kepada pelayan anda.
[dilindungi e-mel] ~: $ sudo a2dismod module_nameAnda juga boleh mematikan modul dengan memberi komen di baris LoadModule.
Cegah Loris Lambat dan Serangan DoS
Pemasangan lalai pelayan Apache memaksanya untuk menunggu permintaan pelanggan terlalu lama, yang menyebabkan pelayan menyerang Slow Loris dan DoS. Apache2.fail konfigurasi conf memberikan arahan yang boleh anda gunakan untuk menurunkan nilai timeout menjadi beberapa saat untuk mengelakkan jenis serangan ini, i.e.:
ubuntu @ ubuntu ~: $ sudo vim / etc / apache2 / apache2.pengesahanMasa tamat 60
Selain itu, pelayan Apache baru dilengkapi dengan mod_reqtimeout modul yang berguna yang menyediakan arahan RequestReadTimeout untuk melindungi pelayan dari permintaan yang tidak sah. Arahan ini dilengkapi dengan beberapa konfigurasi yang sukar, jadi anda dapat membaca maklumat berkaitan yang terdapat di halaman dokumentasi.
Lumpuhkan Permintaan HTTP Tidak Perlu
Permintaan HTTP / HTTPS tanpa had juga dapat menyebabkan prestasi pelayan rendah atau serangan DoS. Anda boleh menghadkan penerimaan permintaan HTTP per direktori dengan menggunakan LimitRequestBody hingga kurang dari 100K. Sebagai contoh, untuk membuat arahan untuk folder / var / www / your_website, anda boleh menambahkan arahan LimitRequestBody di bawah AllowOverride All, i.e.:
... hirup ..Pilihan -Indeks
AllowOverride Semua
LimitRequestBody 995367
... hirup ..
Catatan: Ingatlah untuk memulakan semula Apache setelah perubahan yang berlaku untuk memperbaruinya dengan sewajarnya.
Kesimpulannya
Pemasangan lalai pelayan Apache dapat memberikan banyak maklumat sensitif untuk membantu penyerang dalam serangan. Sementara itu, terdapat banyak cara lain (tidak disenaraikan di atas) untuk melindungi pelayan web Apache. Teruskan meneliti dan terus mengemas kini mengenai arahan dan modul baru untuk melindungi pelayan anda dengan lebih jauh.