15 petua keselamatan terbaik untuk timbunan lampu
- 2935
- 441
- Dave Kreiger V
Banyak pentadbir sistem baru lupa untuk menggunakan keselamatan semasa mengkonfigurasi persekitaran web hosting untuk penggunaan pengeluaran dengan Apache, MySQL, dan PHP. Saya cuba memasukkan semua petua keselamatan yang mesti kita pertimbangkan semasa menyediakan sistem baru untuk penggunaan pengeluaran atau sebarang persediaan lampu yang ada.
Semua perubahan konfigurasi yang digunakan dalam artikel ini akan dikemas kini dalam fail konfigurasi berikut mengikut sistem operasi anda. Dalam beberapa kes, laluan fail konfigurasi mungkin berubah. Oleh itu, buat perubahan fail yang tidak sesuai. Setelah membuat perubahan mulakan semula perkhidmatan yang berkaitan dengan perubahan berkuat kuasa.
Untuk Ubuntu, Debian & Linuxmint:
- Apache2: /etc/apache2/apache2.Conf
- PHP: /etc/php/[versi]/apache2/php.Ini
- Mysql: /etc/mysql/my.CNF atau/etc/mysql/mysql.Conf.D/mysqld.cnf
Untuk Centos, Redhat & Fedora:
- Apache: /etc/httpd/conf/httpd.Conf
- PHP: /etc/php.Ini
- Mysql: /etc/my.cnf
#1. Menyembunyikan versi dan identiti OS (Apache)
The Servertoken Arahan mengawal sama ada medan pengepala respons pelayan yang dihantar kembali kepada pelanggan. Serversignature mengkonfigurasi footer pada dokumen yang dihasilkan oleh pelayan. Edit fail konfigurasi Apache dan kemas kini arahan berikut seperti berikut.
- ServerSignature - Menunjukkan versi Apache
Servertokens prod
- Servertokens - Menyediakan versi OS bersama -sama dengan butiran pelayan sulit yang lain.
Serversignature Off
#2. Lumpuhkan Penyenaraian Direktori (Apache)
Sekiranya penyenaraian direktori didayakan di Apache. Maka semua senarai fail dan direktori akan ditunjukkan di laman web jika tiada dokumen lalai wujud. Tambahkan konfigurasi berikut di Apache untuk melumpuhkan pelayan penyenaraian direktori luas.
Pilihan -indeks
Selepas itu, anda boleh mengaktifkan asas penyenaraian per-direktori jika diperlukan.
#3. Mengehadkan Fail dan Akses Direktori (Apache)
Mengehadkan akses berdasarkan direktori, memfailkan lokasi di Apache.
Hadkan direktori
Untuk mengehadkan akses direktori dan fail dari pengguna, ia hanya akan membenarkan IPS ditakrifkan dengan membenarkan dari.
Menafikan pesanan, biarkan menafikan dari semua membenarkan dari tahun 192.168.1.0/24 Benarkan dari .Contoh.com
Hadkan fail
Kami juga boleh menyekat fail tertentu menggunakan arahan fail seperti di bawah.
Menafikan pesanan, biarkan menafikan dari semua
Hadkan lokasi
Arahan lokasi mengehadkan skop arahan tertutup oleh URL.
Menafikan pesanan, biarkan menafikan dari semua membenarkan dari tahun 192.168.1.0/24 Benarkan dari .Contoh.com
#4. Lumpuhkan Sisi Pelayan Termasuk dan CGI (Apache)
Kami hanya boleh melumpuhkan sampingan pelayan termasuk dan pelaksanaan CGI dengan menentukan tag direktori. Tambahkan di bawah dalam fail konfigurasi hos maya Apache.
Pilihan -termasuk -execcgi
#5. Hadkan Kebocoran Maklumat PHP (PHP)
Secara lalai, pemasangan PHP mendedahkan kepada dunia bahawa PHP dipasang pada pelayan, yang merangkumi versi PHP dalam header HTTP (contohnya: X-berkuasa-oleh: PHP/5.4.20). Baca lebih lanjut
Untuk menyembunyikan nilai ini dari header Edit php.INI dan kemas kini di bawah Arahan ke OFF
Expose_php = OFF
#6. Lumpuhkan Pelaksanaan Kod Jauh (PHP)
Jika membenarkan_url_fopen didayakan pada persediaan anda, ia membolehkan fungsi seperti file_get_contents () dan termasuk dan memerlukan pernyataan yang dapat mengambil data dari lokasi jauh HTTP atau FTP dan melaksanakan kod mereka.
membenarkan_url_fopen = off allow_url_include = off
#7. Lumpuhkan Fungsi PHP Berbahaya (PHP)
Kami boleh melumpuhkan sebarang fungsi PHP menggunakan Arahan Disable_Functions dalam fail konfigurasi PHP. Lumpuhkan semua fungsi yang boleh berbahaya dan tidak digunakan dalam aplikasi.
disable_functions = exec, shell_exec, passthru, sistem, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source, proc_open, pcntl_exec
#8. Hadkan akses PHP ke sistem fail (PHP)
Arahan Open_Basedir menetapkan direktori dari mana PHP dibenarkan mengakses fail
open_basedir = "/home/user/public_html"
#9. Lumpuhkan modul PHP yang tidak digunakan (PHP)
PHP menyokong "sambungan dinamik" untuk dimuatkan dalam persekitaran PHP. Kami boleh melumpuhkan sebarang modul yang tidak digunakan untuk dimuatkan dalam sistem dengan menukar nama fail konfigurasi.
cd /etc /php.d/ mv oci8.INI OCI8.Ini.Lumpuhkan
#10. Dayakan Had dalam PHP (PHP)
Untuk membolehkan pengguna memuat naik fail saiz maksimum, kemas kini nilai konfigurasi berikut.
upload_max_filesize = 2m #maximum 2mb pengguna fail boleh memuat naik
Masa pelaksanaan maksimum setiap skrip
max_execution_time = 30 # saat
Jumlah masa maksimum setiap skrip boleh menghabiskan data permintaan parsing
max_input_time = 60 # saat
#11. Hadkan Akses MySQL Jauh (MySQL)
Jika persekitaran aplikasi anda tidak memerlukan untuk mengakses pangkalan data dari jauh, maka matikan semua sambungan jauh untuk pelayan pangkalan data. Cara yang lebih mudah untuk melakukannya memaksa pelayan MySQL hanya mendengar pada 127.0.0.1 (localhost).
Edit fail konfigurasi MySQL dan kemas kini nilai berikut.
Bind-Address = 127.0.0.1
#12. Lumpuhkan Penggunaan Infile Tempatan (MySQL)
Membolehkan infile tempatan boleh berbahaya untuk keselamatan sistem anda. Sekiranya infile tempatan didayakan pada pelayan, pengguna boleh memuatkan sebarang fail (seperti /etc /passwd, /etc /shadow) ke meja dengan mudah.
Untuk melumpuhkan fail konfigurasi MySQL ini dan tambahkan nilai berikut di bawah [MySQLD].
[mysqld]-infile tempatan = 0
#13. Buat Pengguna Khusus Aplikasi di MySQL (MySQL)
Jangan gunakan pengguna mysql 'root' untuk mengakses pangkalan data melalui aplikasi. Ia boleh berbahaya bagi sistem anda. Oleh itu, pastikan untuk membuat dan menggunakan pengguna khusus aplikasi dengan akses terhad ke pangkalan data aplikasi sahaja. Untuk membuat akaun MySQL Gunakan arahan berikut.
[E -mel dilindungi]: ~# mysql -u root -p mysql> buat pengguna 'myusr'@'localhost' yang dikenal pasti oleh 'kata laluan'; MySQL> Geran Pilih, Masukkan, Kemas kini, Padam di Mydb.* Kepada 'myusr'@'localhost' yang dikenal pasti oleh 'kata laluan'; mysql> keistimewaan flush;
#14. Meningkatkan keselamatan dengan mysql_secure_installation (mysql)
Setelah memasang perintah mysql mysql_secure_stallation sangat berguna untuk mendapatkan pelayan mysql. Perintah ini juga akan membolehkan perlindungan kata laluan pada pengguna root.
[dilindungi e -mel]: ~# mysql_secure_installation "Hanya output yang diperlukan ditunjukkan di bawah. Sebenarnya, anda akan melihat lebih banyak output pada skrin "Tukar kata laluan root? [Y/N] Y Kata Laluan Baru: ********** Masukkan semula Kata Laluan Baru: ********** Keluarkan pengguna tanpa nama? [Y/n] y tidak membenarkan log masuk akar dari jauh? [Y/n] y Keluarkan pangkalan data ujian dan akses kepadanya? [Y/n] y Muat semula jadual keistimewaan sekarang? [Y/n] y
#15. Tulis Fail Konfigurasi Melindungi (Apache/MySQL/PHP)
Dalam bahagian ini, kami melindungi semua fail konfigurasi pelayan kami yang digunakan dalam timbunan lampu, jadi tidak ada yang dapat mengubah fail ini.
chattr +ai /etc /php.ini chattr +ai /etc /php.d/* chattr +ai/etc/my.CNF CHATTR +AI/ETC/HTTPD/CONF/HTTPD.Conf
Ingatlah bahawa setelah membolehkan perlindungan tulis tidak ada pengguna termasuk root dapat mengemas kini fail ini. Sekiranya anda perlu mengemas kini mana -mana fail melumpuhkan perlindungan tulis terlebih dahulu menggunakan arahan berikut.
CHATTR -AI FileName
Kami akan terus mengemas kini petua keselamatan lampu berguna untuk artikel ini. Kami juga meminta anda mencadangkan petua dengan menambahkannya dalam komen.
- « Cara Menyiapkan 301 Redirect Tetap melalui .Htaccess
- Cara Memasang Memcached pada CentOS/RHEL 7/6/5 »