Tip Keamanan Pengerasan PHP Teratas untuk Server Linux

Tip Keamanan Pengerasan PHP Teratas untuk Server Linux

Itu tidak lebih aneh Php adalah salah satu bahasa pemrograman skrip server yang paling banyak digunakan. Masuk akal bagi penyerang untuk menemukan berbagai cara yang dengannya dia dapat memanipulasi PHP karena sering dipasangkan Mysql dan memungkinkan akses ke data pribadi pengguna Anda.

Dengan cara apa pun, kami tidak mengklaim Php rentan atau memiliki beberapa masalah serius secara default tetapi kami harus memastikan bahwa kami mengubah Php sedemikian rupa sehingga bisa lebih kuat dari sebelumnya.

1. Hapus modul php yang tidak perlu

Secara default, Anda mendapatkan satu set Php modul yang dapat membantu dalam berbagai tugas tetapi beberapa modul yang tidak perlu mungkin tidak berguna untuk setiap proyek. Untuk daftar tersedia Php modul, gunakan perintah yang diberikan:

$ php -m 
Daftar modul PHP

Modul terletak di /etc/php.D/ direktori dan dapat dengan mudah mengubah direktori kami saat ini /etc/php.D/ dengan menggunakan perintah CD berikut.

CD /etc /php.D/ 

Alasan mengapa kami mengubah direktori untuk menghapus modul adalah modul dinamai sangat berbeda di direktori asli. Sekarang, daftar modul yang tersedia dengan perintah yang diberikan:

$ ls 
Periksa modul PHP

Misalnya, mari kita hapus keriting modul dengan memanfaatkan perintah yang diberikan:

$ sudo rm -r 20 -curl.ini 

2. Nonaktifkan Eksekusi Kode PHP Jarak Jauh

Dalam kebanyakan kasus, koneksi jarak jauh tidak dapat dipercaya. Dengan menonaktifkan akses ke fopen pembungkus, mereka hanya dapat mengakses file lokal. Untuk menonaktifkan Fopen, kita perlu membuka file konfigurasi PHP dengan memanfaatkan perintah yang diberikan:

$ sudo nano /etc /php.ini 

Sekarang, gunakan Crtl + w dan ketik allow_url_fopen yang akan mendaratkan kita di jalur tertentu dari mana kita akan menonaktifkan opsi -opsi itu.

allow_url_fopen = off allow_url_include = off 
Nonaktifkan Eksekusi Kode PHP Jarak Jauh

Setelah Anda selesai dengan perubahan, simpan file konfigurasi Ctrl + o dan memukul Memasuki.

3. Nonaktifkan Kebocoran Informasi PHP

Saat tidak dinonaktifkan, dunia dapat dengan mudah mengidentifikasi versi mana Php saat ini digunakan oleh server web kami. Ini mungkin tidak terdengar seperti masalah besar tetapi membiarkan penyerang tahu versi yang tepat bisa berbahaya.

$ sudo nano /etc /php.ini 

Sekarang, ubah default menjadi "Mati".

Expose_php = OFF 
Nonaktifkan Kebocoran Informasi PHP

4. Nonaktifkan log kesalahan PHP

Secara default, setiap kesalahan server web kami terlihat oleh pengunjung kami, termasuk penyerang. Untuk memastikan bahwa tidak ada kesalahan yang terlihat oleh siapa pun, kami harus membuat perubahan dalam file konfigurasi PHP kami.

$ sudo nano /etc /php.ini 

Dan ubah pengaturan default menampilkan log kesalahan menjadi "Mati".

display_errors = of 
Nonaktifkan log kesalahan PHP

Tetapi bagaimana jika Anda seorang pengembang dan perlu memiliki log kesalahan untuk mengatasi masalah pembangunan? Jangan khawatir, ada cara untuk mendapatkan file log Anda hanya dengan membuat sedikit perubahan dalam file konfigurasi yang sama.

Kami hanya perlu mengaktifkan log_errors dan memberi jalan untuk catatan eror Dimana file log kami akan disimpan.

log_errors = on error_log =/var/log/httpd/php_scripts_error.catatan 
Aktifkan log kesalahan dalam php

5. Kontrol Sumber Daya PHP

Menurut kami, mengelola sumber daya adalah bagian yang paling penting saat mengamankan Php. Di sini, kita akan mengalokasikan jumlah waktu eksekusi yang tetap, waktu input, dan batas memori jadi jika entah bagaimana skrip kita dikompromikan, eksekusi akan dihentikan setelah waktu tertentu.

Kami telah memilih 25 detik untuk waktu eksekusi dan input dan 30MB batas memori. Yakin Anda dapat menyesuaikannya sesuai kebutuhan Anda.

max_execution_time = 25 max_input_time = 25 memory_limit = 30m 
Kontrol Sumber Daya PHP

6. Batasi akses file php

Untuk membatasi akses file, kami akan mengaktifkan Open_basedir yang akan memastikan bahwa PHP hanya dapat menyertakan file dari direktori kami yang terdaftar.

Penting: Ini akan memblokir semua direktori lainnya dan mengharuskan kami untuk menambahkan direktori penting secara manual yang juga termasuk menambahkan file sementara dan direktori sesi.

open_basedir = "/home/sagar/public_html:/var/lib/php/tmp_upload:/var/lib/php/sesi" 
Kontrol Akses File PHP

7. Konfigurasikan Upload File PHP

Jika aplikasi Anda tidak memerlukan pengunggahan file dari akhir pengguna, selalu disarankan untuk menonaktifkan unggahan file. Ini mencegah penyerang untuk mengunggah skrip berbahaya yang mungkin berakhir merusak seluruh aplikasi pada akhirnya.

file_uploads = off 

Tetapi bagaimana jika aplikasi Anda dirancang untuk mendapatkan file dari ujung pengguna? Dalam hal ini, Anda harus mengaktifkan unggahan file tetapi cobalah untuk mengurangi ruang maksimum dan mengurangi jumlah file maksimum yang dapat diunggah dari satu permintaan.

file_uploads = on unggah_max_filesize = 1m max_file_uploads = 1 
Kontrol unggahan file php

Dalam PHP, secara default, file sementara ditempatkan di direktori yang dapat ditulis oleh semua pengguna sistem. Lokasi default harus dialihkan ke tempat yang lebih aman dan pastikan tidak terletak di dalam root web.

Seperti yang telah kami gunakan Open_basedir, Kami akan menggunakan lokasi yang sama seperti yang telah kami daftar putih daftar putihnya.

unggah_tmp_dir =/var/lib/php/tmp_upload 

8. Nonaktifkan fungsi PHP berbahaya

PHP memiliki berbagai fungsi yang diaktifkan secara default dan dapat membantu untuk tujuan pengembangan. Tetapi banyak fungsi dapat digunakan oleh peretas untuk mengeksploitasi server web kami dan menonaktifkannya akan menambah lapisan keamanan.

Kami memiliki serangkaian fungsi yang dinonaktifkan dan pastikan untuk memeriksa silang sebelum membuat perubahan pada file konfigurasi.

disable_functions = exec, passthru, shell_exec, sistem, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source 
Nonaktifkan fungsi PHP yang tidak diinginkan

9. Ubah Direktori Cache Soap

Saat kami mengubah direktori dan sesi temp default, hal yang sama berlaku untuk SABUN MANDI cache karena tidak boleh disimpan ke direktori default. Pastikan itu disimpan ke tempat yang aman.

sabun mandi.wsdl_cache_dir =/var/lib/php/soap_cache 
Ubah Direktori Cache Soap

10. Kontrol ukuran pos PHP

Dengan mengendalikan POS Ukuran, kami dapat mengamankan server kami dari peretas yang mencoba membekukan sumber daya server dengan mengirim file besar. Ini menyelamatkan kita dari server yang tidak diinginkan crash dan waktu respons yang lambat.

POST_MAX_SIZE = 4M 
Batasi ukuran pos php

11. Lindungi konfigurasi PHP

Saat menghapus file yang tidak perlu, kami sering menghapus beberapa file penting atau bahkan direktori. Jadi kita harus mengubah pengaturan sedemikian rupa sehingga bahkan pengguna root tidak dapat menghapusnya. Untuk membuat file dan direktori, kami akan memanfaatkan chattr dengan bendera yang berbeda.

Setelah Anda menggunakan perintah yang diberikan, Anda tidak dapat lagi memodifikasi file tertentu atau menghapusnya.

$ sudo chattr +i /etc /php.ini 

Saat mencoba menghapus file yang tidak dapat diubah, itu akan menunjukkan kesalahan yang mengatakan “Operasi tidak diizinkan".

$ sudo rm -r /etc /php.ini 
Operasi tidak diizinkan kesalahan

Tetapi bagaimana jika Anda ingin terus menulis file -file itu sambil membuatnya tidak berubah? Anda dapat dengan mudah mencapainya dengan menggunakan +A bendera bukannya +Saya.

$ sudo chattr +a /etc /php.ini 

Mungkin ada beberapa kasus di mana Anda tidak lagi memerlukan file konfigurasi lama dan dalam hal ini, kami harus unset atribut.

$ sudo chattr -i /etc /php.ini 

Demikian pula, jika Anda pergi +A Atribut dalam proses membuat file tidak berubah, Anda dapat membalikkannya dengan memanfaatkan perintah yang diberikan:

$ sudo chattr -a /etc /php.ini 

12. Gunakan sertifikat SSL untuk https

Saat ini, setiap browser modern seperti Google Chrome, Firefox, Opera, dan lainnya merekomendasikan penggunaan Https untuk server web. Sebagai Https Memberikan saluran mengakses yang diamankan dan dienkripsi untuk situs yang tidak dipercaya, kami dapat memberikan pengalaman yang dapat diandalkan kepada pengguna kami.

Dengan menambahkan Https, kita bisa dilindungi dari XSS Serangan termasuk mencegah peretas untuk membaca data yang diangkut menggunakan kode.

Untuk mengaktifkan HTTPS, kami akan menginstal dan menggunakan gratis Ayo mengenkripsi sertifikat SSL di server.

$ sudo dnf menginstal epel-release $ sudo dnf menginstal certbot python3-certbot-apache mod_ssl $ sudo certbot --apache -d domain.com [untuk Apache] $ sudo certbot ---nginx -d domain.com [untuk Nginx] 

13. Perbarui PHP secara teratur

Karena ini adalah bahasa open-source, ia ditambal hampir sehari-hari. Ini mungkin tampaknya bukan langkah penting tetapi dapat menyelamatkan Anda dari kerentanan besar. Jadi pastikan untuk memperbarui paket PHP Anda yang akan menghemat banyak kerentanan yang mungkin terjadi.

# YUM UPDATE & YUM Upgrade [On RHEL Systems] # APT UPDATE && APT Upgrade [On Debian Based Systems] 

Ini adalah pendapat kami tentang bagaimana Anda dapat dengan mudah meningkatkan keamanan Php dalam sistem Linux. Sepanjang tutorial ini, kami telah mencoba membuat hal -hal sederhana semampu kami dan jika Anda masih memiliki keraguan, beri tahu kami di komentar.