GNU/Linux >> Belajar Linux >  >> Linux

Amankan Praktik Terbaik Server Web Apache Anda

Pengantar

Apache adalah server web yang paling populer digunakan di internet. Dan ini sangat ideal untuk sebagian besar situasi dan memungkinkan fleksibilitas untuk lingkungan bersama. Dalam tutorial ini, kita akan melihat cara mengamankan Apache server web. Untuk tutorial ini, kami akan menggunakan Centos 8. Anda dapat menemukan tutorial instalasi apache di sini. Kita akan melihat cara memodifikasi Apache konfigurasi pada sistem Ubuntu/Debian juga.

1. Tetap Perbarui Apache

Masuk ke sistem menggunakan akun pengguna root atau sudo. periksa Apache versi dengan menjalankan perintah berikut.
httpd -v

2. Sembunyikan versi Apache &informasi os Server .

Hal pertama yang perlu kita pertimbangkan, karena kita tidak ingin mengekspos versi server web yang kita gunakan di sistem kita. Mengekspos versi dan informasi os berarti kami membantu peretas agar cepat dalam proses penyerangan. Pada gambar di bawah ini, kita dapat melihat bahwa Apache menunjukkan versinya dengan OS terpasang di server kami.

Untuk mencegah Apache dari mengekspos versi dan informasi sistem operasinya, kita perlu mengubah Apache file konfigurasi utama. buka file konfigurasi dengan menjalankan perintah berikut-

nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)

Sekarang tambahkan dua arahan di bawah ini ke file konfigurasi utama dan simpan.

ServerTokens Prod
ServerSignature Off

Dan mulai ulang Apache server dengan menjalankan perintah berikut-

systemctl restart httpd.service

Seperti yang dapat kita lihat pada gambar di bawah, Apache versi tidak terbuka, dan informasi pengoperasian juga tidak terlihat.

3. Nonaktifkan Pengindeksan Direktori

Secara default, Apache menunjukkan semua konten direktori Webroot tanpa adanya file indeks. Seperti gambar di bawah ini,

untuk mencegah pengindeksan direktori di browser, kita perlu mengubah direktif opsi di Apache berkas konfigurasi. Buka konfigurasi dan ubah entri seperti di bawah ini.

<Directory /var/www/html>
    Options -Indexes
</Directory>

Sekarang buka browser dan ketik IP atau URL di bilah alamat. Dan kita akan melihat gambar seperti di bawah ini

4. Nonaktifkan ETag

Tag digunakan dalam header HTTP untuk mengelola perilaku caching web. Namun, Etag dapat menyebabkan masalah keamanan. Ini memungkinkan penyerang jarak jauh untuk mendapatkan informasi sensitif seperti nomor inode, tipe mime, dan proses melalui ETag tajuk. Untuk mencegah serangan dan kebocoran informasi, tambahkan direktif berikut ke Apache konfigurasi.

untuk mencapai ini cukup tambahkan baris berikut ke Apache file konfigurasi dan mulai ulang Apache .

FileEtag None

5. Nonaktifkan CGI &SSI

SSI (termasuk sisi server) adalah arahan yang digunakan untuk menulis halaman HTML dengan konten dinamis &CGI digunakan untuk menyuntikkan skrip berbahaya ke kode web Anda. Batasi CGI dan SSI dengan menambahkan arahan opsi berikut ke konfigurasi Apache:

Options -Includes -ExecCGI

6. Batasi Akses Direktori

Ini adalah praktik keamanan yang baik untuk membatasi akses direktori webroot menggunakan “Izinkan dan Tolak” sintaksis. Untuk mencapai ini, buat perubahan berikut di apache berkas konfigurasi. Buka file konfigurasi dan server untuk Direktori blokir dan tulis direktif direktori sebagai berikut dan simpan. sekarang restart Apache untuk mengubah efeknya

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

Pengaturan di atas akan menolak permintaan dari siapa pun ke direktori root. Tidak ada yang bisa mengakses direktori root.

7. Amankan Apache dengan Mod_Security

Mod_security adalah alat keamanan, berfungsi sebagai firewall untuk situs web atau aplikasi. Ini membantu melindungi situs web atau aplikasi dari akses resmi PBB dan juga dari serangan brute force. Instal mod_security dengan menjalankan perintah berikut dan restart Apache untuk bekerja dengan mod_security.

dnf -y install mod_security

8. Tentukan Metode Permintaan HTTP

Dalam HTTP saat ini protokol, banyak permintaan tidak diperlukan, dan beberapa memiliki risiko keamanan. Namun, cukup bagus untuk aplikasi web untuk memungkinkan GET , KEPALA , dan POSTING metode permintaan. Kami dapat mengonfigurasi pengaturan ini dengan menambahkan arahan Direktori masing-masing. untuk mencapai ini, buka Apache file konfigurasi, cari Direktori dan tambahkan direktif berikut di dalam dan mulai ulang Apache

<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>

9. Aktifkan Tajuk Perlindungan XSS

Skrip lintas situs dikenal sebagai (XSS), dan ini adalah kerentanan umum yang ditemukan di aplikasi web. Perlindungan Cross-Site Scripting (XSS) dapat dilewati di banyak browser. Namun, kami dapat mencegah beberapa serangan XSS dengan menambahkan entri berikut ke Apache our kami file konfigurasi dan menyimpannya. Dan restart Apache server.

Header set X-XSS-Protection "1; mode=block"

Sekarang periksa tajuk permintaan di alat pengembang browser, kita dapat pada gambar di bawah ini, tajuk itu berhasil diimplementasikan.

10. Nonaktifkan Permintaan HTTP TRACE

Secara default, Lacak Permintaan HTTP terbuka di Apache untuk memungkinkan Pelacakan Lintas Situs. Opsi ini memungkinkan peretas mencuri informasi cookie dengan mudah. untuk mencegahnya, tambahkan parameter berikut ke Apache berkas konfigurasi. Dan mulai ulang Apache .

TraceEnable off

11. Mencegah Serangan Clickjacking

Bajak klik , juga dikenal sebagai “Serangan ganti rugi Antarmuka Pengguna”, adalah teknik berbahaya untuk mengumpulkan klik pengguna yang terinfeksi. Bajak klik menipu korban (pengunjung) agar mengklik situs yang terinfeksi. Untuk mencegah kejadian ini, kita perlu menggunakan “X-FRAME-OPTION” di Apache berkas konfigurasi. Untuk melakukannya, tambahkan baris berikut di file konfigurasi.

Header set X-FRAME-OPTIONS "SAMEORIGIN"

Sekarang periksa header permintaan di alat pengembang browser, seperti yang kita lihat bahwa kita telah berhasil menambahkan X-FRAME-OPTIONS pada Apache file konfigurasi.

13. Cookie Aman dengan Bendera Hanya HTTP

Tanpa HttpOnly dan Secure, dimungkinkan untuk mencuri atau memanipulasi sesi dan cookie aplikasi web, dan itu berbahaya. Untuk mengurangi ini, kita perlu memastikan bahwa mod_header modul berjalan di sisi server.

apachectl -M | grep header

Pada gambar di atas, kita dapat melihat bahwa modul mod_header dimuat dan diaktifkan di Apache . Sekarang tambahkan baris berikut di file konfigurasi utama Apache dan mulai ulang Apache server.

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

14. Batasi Ukuran Permintaan

Secara default, permintaan HTTP di Apache tidak terbatas; maka server web rentan terhadap serangan DoS dengan membiarkannya terbuka untuk jumlah permintaan yang tinggi. Maka penting untuk menetapkan batas permintaan file. Ini dapat dilakukan dengan menambahkan LimitRequestBody direktif di Apache file konfigurasi.

Misalnya, unixcop adalah direktori yang berisi file yang diunggah oleh pengguna. Sekarang Kami membatasi ukuran unggahan menjadi 2K sehingga pengguna tidak dapat mengunggah file lebih dari ini.

<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory

Kesimpulan

Dari tutorial ini, kita belajar bagaimana kita bisa melindungi server Apache kita dari penyerang. berharap artikel kami akan membantu Anda untuk melindungi server Anda. Anda juga dapat mengikuti artikel saya yang lain.


Linux
  1. Cara mengkonfigurasi server web Apache

  2. Menyetel Apache Web Server Keepalive

  3. 10 Tips untuk Mengamankan Server Web Apache Anda di UNIX / Linux

  1. Temukan 10 Alamat IP Teratas Mengakses Server Web Apache Anda

  2. Instal server web Apache di openSUSE 12

  3. Instal server web Apache di Ubuntu 12.10

  1. Cara Mengamankan Server Web Apache dengan Let's Encrypt di RHEL 8

  2. Cara Menginstal Server Web Apache di Ubuntu

  3. LAMP vs. LEMP – tips memilih Apache atau nginx untuk server web Anda