GNU/Linux >> Belajar Linux >  >> Linux

Tingkatkan Apache HTTP Server 2.2 ke 2.4 di RHEL dan CentOS 7

Jika Anda baru saja melakukan pemindaian keamanan kepatuhan, hasilnya mungkin terlihat seperti contoh berikut:

Apache HTTP Server Zero-Length Directory Name in LD_LIBRARY_PATH Vulnerability, CVE-2012-0883
Apache HTTP Server mod_rewrite Terminal Escape Sequence Vulnerability, CVE-2013-1862
Apache HTTP Server XSS Vulnerabilities via Hostnames, CVE-2012-3499 CVE-2012-4558

Tergantung pada basis kode, Server HTTP Apache® mungkin telah mengurangi masalah keamanan ini. Pemindaian memeriksa versi Apache server untuk menentukan apakah versi yang diinstal menyelesaikan masalah keamanan. Namun, beberapa pemindaian keamanan kepatuhan hanya menggunakan versi Apache untuk menentukan apakah server rentan terhadap Common Vulnerabilities and Exposures (CVE) daripada mendeteksi kerentanan secara langsung.

Pemindaian semacam itu hampir selalu menghasilkan positif palsu. Jika Anda mengaktifkan pembaruan otomatis, versinya mungkin tetap sama, bahkan jika rilis lain menambal kerentanan. Dengan demikian, pemindaian mungkin menandai kerentanan sebagai positif. Hasil ini mungkin juga terjadi jika pemindaian penyedia Anda menunjukkan bahwa server Anda tidak lagi rentan, meskipun pemindaian sebelumnya telah mengidentifikasi kerentanan.

Gunakan langkah-langkah berikut jika audit keamanan Anda mengungkapkan bahwa pemindaian keamanan kepatuhan Anda hanya menggunakan versi Apache untuk mengidentifikasi kerentanan pada server Apache2 Anda.Edit file konfigurasi untuk daemon Hypertext Transfer Protocol (HTTPd).

  1. Buka /etc/apache2/conf.d/httpd.conf dalam editor.

  2. Tambahkan baris berikut dan hapus informasi versi:

    ServerSignature Off
    ServerTokens Prod
    

    Catatan :Server Anda tidak boleh memberikan tanda tangan versi, dan perusahaan pengujian penetrasi Anda harus menyarankan Anda menonaktifkan versi.

Perbarui dari Apache 2.2 ke Apache 2.4

Gunakan langkah-langkah berikut untuk memperbarui Apache 2.2 ke Apache 2.4.

  1. Jalankan perintah berikut untuk menghentikan HTTPd dan proses pemantauan seperti Nimbus untuk menghindari peringatan:

    service httpd stop
    
  2. Jalankan perintah berikut untuk mencadangkan konfigurasi host virtual Anda, pastikan Anda menyertakan direktori tambahan yang Anda tambahkan, seperti vhost :

    cd /etc/httpd
    tar -cvf /tmp/apache_vhostconfig.tar conf conf.d vhosts
    
  3. Jalankan perintah berikut untuk menginstal yum-plugin-replace package, yang menyelesaikan konflik paket selama penggantian paket:

     yum install yum-plugin-replace
    
  4. Sebelum melanjutkan, jalankan perintah berikut untuk memeriksa versi yang terinstal dan versi yang ingin Anda instal:

     apachectl -V
     yum search httpd
     yum info httpd
    

    Output Anda akan tampak seperti contoh berikut, yang menggunakan perintah yum info httpd24u.x86_64 :

    Loaded plugins: replace, rhnplugin, security
    This system is receiving updates from RHN Classic or RHN Satellite.
     Available Packages
    Name        : httpd24u
    Arch        : x86_64
    Version     : 2.4.23
    Release     : 4.ius.el6
    Size        : 1.2 M
    Repo        : rackspace-rhel-x86_64-server-6-ius
    Summary     : Apache HTTP Server
    License     : ASL 2.0
    Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.
    
  5. Instal HTTPd 2.4 dengan menjalankan perintah berikut:

    yum replace httpd --replace-with=httpd24u
    
  6. Anda juga harus menginstal Lightweight Directory Access Protocol (LDAP) dengan menjalankan perintah berikut:

    yum install mod_ldap
    
  7. Di Apache 2.4, Anda harus menggunakan Require arahan untuk pembatasan akses Protokol Internet (IP) alih-alih Order , Deny , dan Allow . Akibatnya, Anda perlu mengubah Order , Deny , dan Allow pernyataan di /etc/httpd/conf.d/server-status.conf . Anda fileuntuk menggunakan Require pernyataan. Karena Anda mungkin memilikinya di.htaccess file untuk situs web lain, pastikan Anda memeriksa akar dokumen Anda dengan hati-hati untuk menghindari kerusakan situs web Anda karena kehilangan Require arahan.

    /etc/httpd/conf.d/server-status.conf Anda yang sudah ada file akan muncul seperti contoh berikut.

    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    

    Ganti Order , Deny , dan Allow pernyataan dengan konfigurasi dalam contoh berikut.

    <Location /server-status>
        SetHandler server-status
        Require all granted
        Require host 127.0.0.1
    </Location>
    

    Catatan :Perubahan sintaks ini juga berlaku untuk host virtual diconf.d dan httpd.conf konfigurasi vhost.

  8. Ubah Order , Deny , dan Allow pernyataan di conf.d untukRequire pernyataan.

    #    Order deny,allow
    #    Deny from all
    Require all denied
    
    #    Order deny,allow
    #    Allow from all
    Require all granted
    
  9. Di file yang sama, ubah Options -Indexes FollowSymLinks keOptions -Indexes +FollowSymLinks .

  10. Di /etc/httpd/conf/httpd.conf , ubah Order , Deny , danAllow pernyataan ke Require pernyataan, seperti yang ditunjukkan pada langkah 8.

  11. Di /etc/httpd/conf/httpd.conf , tetapkan sebagai komentar LoadModule arahan untuk modul yang tidak lagi digunakan.

    #2.4 upgrade LoadModule authn_alias_module modules/mod_authn_alias.so
    #2.4 upgrade LoadModule authn_default_module modules/mod_authn_default.so
    #2.4 upgrade LoadModule authz_default_module modules/mod_authz_default.so
    #2.4 upgrade LoadModule disk_cache_module modules/mod_disk_cache.so
    
  12. Edit /etc/httpd/conf/httpd.conf untuk menambahkan baris berikut dengan authz lainnya modul.

    LoadModule authz_core_module modules/mod_authz_core.so
    
  13. Tambahkan baris berikut ke bagian bawah blok LoadModule pernyataan.

    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    LoadModule unixd_module modules/mod_unixd.so
    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
    LoadModule ssl_module modules/mod_ssl.so
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    

(Opsional) Unduh versi modul Dispatcher Adobe Experience Manager (AEM) yang kompatibel

Jika penginstalan HTTPd menggunakan modul Adobe® Experience Manager (AEM) Dispatcher, Anda harus menggunakan langkah-langkah berikut untuk mengunduh file yang kompatibel untuk Apache HTTP Server 2.4.

  1. Jalankan perintah berikut untuk mengekstrakdispatcher-apache2.4-4.1.11.so dari file Tape Archive (TAR) ke dalam/etc/httpd/modules/ . Gunakan hanya file ini untuk tujuan ini.

     cd /etc/httpd/modules
     rm mod_dispatcher.so
     ln -s /etc/httpd/modules/dispatcher-apache2.4-4.1.11.so mod_dispatcher.so
    
  2. Karena SSL Mutex tidak digunakan lagi, Anda perlu mengedit/etc/httpd/conf.d/ssl.conf untuk mengubah SSLMutex default keMutex default .

Untuk detail selengkapnya, lihat dokumentasi Apache tentang MutexDirective.

Kritis: Mulai ulang HTTPd

Setelah Anda menyelesaikan langkah-langkah dalam artikel ini, Anda harus memulai ulang HTTPd dan memverifikasi bahwa itu diaktifkan dan berjalan dengan menggunakan langkah-langkah berikut:

  1. Jalankan perintah berikut untuk memulai ulang HTTPd:

     service httpd start
    
  2. Pastikan layanan diaktifkan dan berjalan dan aktifkan kembali semua pemantauan yang diaktifkan sebelumnya:

    • Pada CentOS® 7 atau Red Hat® Enterprise Linux® (RHEL) 7, jalankan perintah berikut:

      systemctl enable httpd
      
      systemctl status httpd
      

Gunakan tab Umpan Balik untuk memberikan komentar atau mengajukan pertanyaan. Anda juga dapat memulai percakapan dengan kami.


Linux
  1. Instal dan Konfigurasikan server FTP di CentOS 7 / RHEL 7 – (vsftpfd)

  2. Instal Apache dan PHP di CentOS 7

  3. Instal Apache di CentOS 8

  1. CentOS / RHEL 7 :Mengkonfigurasi server NFS dan klien NFS

  2. CentOS / RHEL 4 :Cara menginstal dan mengkonfigurasi server FTP (vsftpd)

  3. CentOS / RHEL 5:Cara menginstal dan mengkonfigurasi server vsftpd

  1. Instal dan Konfigurasi HAProxy di RHEL 8 / CentOS 8 Linux

  2. Instal server web Apache CentOS 6 / RHEL 6

  3. Cara mengkonfigurasi server dan klien NTP di CentOS / RHEL 7