13 APACHE Web Server Keamanan dan Tips Pengerasan

13 APACHE Web Server Keamanan dan Tips Pengerasan

Kami semua sangat akrab Apache Server web, ini adalah server web yang sangat populer untuk meng -host file web Anda atau situs web Anda di web. Berikut adalah beberapa tautan yang dapat membantu Anda mengkonfigurasi server web Apache di kotak Linux Anda.

Tips Keamanan dan Pengerasan Apache
  1. Instal Apache Web Server
  2. Siapkan situs web Anda di kotak Linux Anda

Di sini, di tutorial ini, saya akan membahas beberapa tips utama untuk mengamankan server web Anda. Sebelum Anda menerapkan perubahan ini di server web Anda, Anda harus memiliki beberapa dasar dari server Apache.

  1. Dokumen Root Dokumen: /var/www/html atau /var/www
  2. File Konfigurasi Utama: /etc/httpd/conf/httpd.conf (Rhel/centos/fedora) dan /etc/apache2/apache2.conf (Debian/Ubuntu).
  3. Port http default: 80 TCP
  4. Port https default: 443 TCP
  5. Uji Pengaturan File Konfigurasi dan Sintaks Anda: httpd -t
  6. Akses file log server web: /var/log/httpd/access_log
  7. File log kesalahan server web: /var/log/httpd/error_log

1. Cara menyembunyikan versi apache dan identitas OS dari kesalahan

Saat Anda menginstal Apache dengan sumber atau penginstal paket lainnya seperti yum, itu menampilkan Versi Apache Anda server web yang diinstal di server Anda dengan Nama Sistem Operasi dari server Anda di Kesalahan. Itu juga menunjukkan informasi tentang Modul Apache diinstal di server Anda.

Tampilkan versi Apache

Dalam gambar di atas, Anda dapat melihatnya Apache menunjukkannya Versi: kapan dengan OS terpasang di server Anda. Ini bisa menjadi ancaman keamanan utama bagi server web Anda dan juga kotak Linux Anda. Untuk mencegah Apache Untuk tidak menampilkan informasi ini kepada dunia, kita perlu membuat beberapa perubahan dalam file konfigurasi utama Apache.

Buka file konfigurasi dengan editor vim dan cari "Server Signature“, Ini secara default. Kita harus Mati Tanda Tangan Server ini dan baris kedua “Servertokens Prod”Memberitahu Apache untuk mengembalikan Apache hanya sebagai produk di header respons server pada permintaan setiap halaman, ia menekan OS, info versi utama dan minor.

# vim/etc/httpd/conf/httpd.conf (rhel/centos/fedora) # vim/etc/apache2/apache2.conf (debian/ubuntu)
Server Signature Off Servertokens Prod
# Layanan httpd restart (rhel/centos/fedora) # service apache2 restart (debian/ubuntu)
Sembunyikan versi Apache

2. Nonaktifkan daftar direktori

Secara default daftar apache semua isi direktori root dokumen tanpa adanya file indeks. Silakan lihat gambar di bawah ini.

Daftar Direktori Apache

Kita dapat matikan daftar direktori dengan menggunakan Petunjuk Opsi dalam file konfigurasi untuk direktori tertentu. Untuk itu kita perlu masuk httpd.conf atau Apache2.conf mengajukan.

 Opsi -Indexes 
Sembunyikan Daftar Direktori Apache

3. Terus memperbarui Apache secara teratur

Komunitas Pengembang Apache terus bekerja masalah keamanan dan melepaskannya versi terbaru dengan yang baru pilihan Keamanan. Jadi selalu disarankan untuk menggunakan versi terbaru dari Apache Sebagai server web Anda.

Untuk memeriksa Versi Apache: Anda dapat memeriksa versi Anda saat ini dengan httpd -v memerintah.

# httpd -v Versi server: Apache/2.2.15 (UNIX) Server Dibangun: 13 Agustus 2013 17:29:28

Anda dapat memperbarui versi Anda dengan perintah berikut.

# yum update httpd # apt-get install apache2

Juga disarankan untuk menjaga Inti Dan Os Diperbarui ke rilis stabil terbaru jika Anda tidak menjalankan aplikasi spesifik apa pun yang hanya berfungsi pada OS atau kernel tertentu.

4. Nonaktifkan modul yang tidak perlu

Selalu baik untuk minor peluang menjadi korban dari apapun serangan web. Jadi disarankan untuk menonaktifkan semua itu modul yang tidak digunakan saat ini. Anda dapat mencantumkan semua modul server web yang dikompilasi, menggunakan perintah berikut.

# grep loadModule/etc/httpd/conf/httpd.Conf # harus menempatkan baris 'LoadModule' yang sesuai di lokasi ini sehingga # LoadModule FOO_MODULE MODULES/MOD_FOO.Jadi LoadModule AUTH_BASIC_MODULE MODULES/MOD_AUTH_BASIC.Jadi LoadModule AUTH_DIGEST_MODULE MODULES/MOD_AUTH_DIGEST.Jadi LoadModule authn_file_module Modules/mod_authn_file.Jadi LoadModule authn_alias_module Modul/mod_authn_alias.Jadi LoadModule Authn_anon_module Modul/mod_authn_anon.Jadi LoadModule authn_dbm_module modul/mod_authn_dbm.Jadi LoadModule authn_default_module modul/mod_authn_default.Jadi Modul LoadModule Authz_Host_Module/mod_authz_host.Jadi LoadModule AUTHZ_USER_MODULE MODULES/MOD_AUTHZ_USER.Jadi LoadModule AUTHZ_OWNER_MODULE MODULES/MOD_AUTHZ_OWNER.Jadi Modul LoadModule authz_groupfile_Module/mod_authz_groupfile.Jadi LoadModule AUTHZ_DBM_MODULE MODULES/MOD_AUTHZ_DBM.Jadi LoadMoDule AUTHZ_DEFAULT_MODULE MODULES/MOD_AUTHZ_DEFAULT.Jadi Modul LOADMODULE LDAP_MODULE/MOD_LDAP.Jadi LoadModule authnz_ldap_module Modul/mod_authnz_ldap.Jadi LoadModule termasuk modul_module/mod_include.Jadi Modul LoadModule Log_Config_Module/mod_log_config.Jadi Modul LoadModule Logio_Module/mod_logio.Jadi Modul LoadModule Env_module/mod_env.Jadi Modul LoadModule Ext_Filter_Module/mod_ext_filter.Jadi… 

Di atas adalah daftar modul yang diaktifkan secara default tetapi sering tidak diperlukan: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex. Untuk menonaktifkan modul tertentu, Anda dapat memasukkan "#”Di awal garis itu dan restart layanan.

5. Jalankan Apache sebagai pengguna dan grup terpisah

Dengan instalasi default Apache menjalankan prosesnya dengan pengguna bukan siapa-siapa atau Daemon. Untuk alasan keamanan, disarankan untuk berjalan Apache dengan sendirinya tidak istimewa akun. Misalnya: http-web.

Buat pengguna dan grup Apache
# GroupAdd http -web # useradd -d/var/www/-g http -web -s/bin/nologin http -web

Sekarang Anda perlu memberi tahu Apache Untuk menjalankan dengan pengguna baru ini dan melakukannya, kita perlu masuk /etc/httpd/conf/httpd.conf dan restart layanan.

Membuka /etc/httpd/conf/httpd.conf dengan editor vim dan cari kata kunci "Pengguna" Dan "Kelompok”Dan di sana Anda perlu menentukan nama belakang Dan nama grup menggunakan.

Pengguna http-web group http-web

6. Gunakan Izinkan dan Tolak untuk Membatasi Akses ke Direktori

Kami dapat membatasi akses ke direktori dengan “Mengizinkan" Dan "Membantah"Opsi di httpd.conf mengajukan. Di sini dalam contoh ini, kami akan mengamankan direktori root, untuk itu dengan mengatur yang berikut di httpd.conf mengajukan.

 Opsi tidak ada pesanan yang disangkal, izinkan disangkal dari semua 
  1. Opsi "tidak ada" - Opsi ini tidak akan memungkinkan pengguna untuk mengaktifkan fitur opsional.
  2. Pesanan tolak, izinkan - Ini adalah urutan di mana “Membantah" Dan "MengizinkanArahan akan diproses. Ini dia akan “membantah"Pertama dan"mengizinkan" Berikutnya.
  3. Menyangkal dari semua - Ini akan menyangkal permintaan dari semua orang ke direktori root, Tidak ada yang bisa mengakses direktori root.

7. Gunakan modul mod_security dan mod_evasive untuk mengamankan apache

Kedua modul ini “mod_security" Dan "mod_evasive”Adalah modul Apache yang sangat populer dalam hal keamanan.

Mod_security

Di mana mod_security bekerja sebagai Firewall untuk aplikasi web kami dan memungkinkan kami untuk melakukannya Pantau lalu lintas secara waktu nyata. Ini juga membantu kami untuk melindungi situs web atau server web kami serangan brute force. Anda cukup menginstal mod_security di server Anda dengan bantuan installer paket default Anda.

Instal mod_security di ubuntu/debian
$ sudo apt-get menginstal libapache2-modsecurity $ sudo a2enmod mod-keamanan $ sudo /etc /init.D/APACHE2 Force-reload
Instal mod_security di rhel/centos/fedora/
# yum install mod_security # /etc /init.D/httpd restart
Mod_evasive

mod_evasive Bekerja dengan sangat efisien, dibutuhkan satu permintaan untuk memproses dan memprosesnya dengan sangat baik. Itu mencegah Serangan DDOS dari melakukan banyak kerusakan. Fitur ini mod_evasive memungkinkannya untuk menangani HTTP Brute Force Dan Dos atau Ddos menyerang. Modul ini mendeteksi serangan dengan tiga metode.

  1. Jika banyak permintaan datang ke halaman yang sama dalam beberapa kali per detik.
  2. Jika ada proses anak yang mencoba membuat lebih dari 50 permintaan bersamaan.
  3. Jika ada AKU P masih mencoba membuat permintaan baru saat sementara daftar hitam.

mod_evasive dapat dipasang langsung dari sumbernya. Di sini, kami memiliki panduan instalasi dan pengaturan modul ini yang akan membantu Anda mengatur modul Apache ini di kotak Linux Anda.

  1. Lindungi Apache Menggunakan Mod_Security dan Mod_evasive

8. Nonaktifkan Pengikut Tautan Simbolik Apache

Secara default Apache mengikuti Symlink, kita dapat matikan fitur ini dengan Mengikuti tautan dengan Petunjuk Opsi. Dan untuk melakukannya kita perlu membuat entri berikut di file konfigurasi utama.

Opsi -followsymlinks

Dan, jika ada yang khusus pengguna atau situs web membutuhkan Mengikuti tautan Aktifkan, kita bisa menulis aturan dalam ".htaccessFile dari situs web itu.

# Aktifkan opsi tautan simbolik +mengikuti tautan

Catatan: Untuk mengaktifkan aturan ulang ulang di dalam ".htaccess"File"Alloverride semua“Harus ada di konfigurasi utama secara global.

9. Matikan sisi server termasuk dan eksekusi CGI

Kita dapat matikan sisi server termasuk (mod_include) Dan CGI eksekusi jika tidak diperlukan dan melakukannya kita perlu memodifikasi file konfigurasi utama.

Opsi -mertakan opsi -execcgi

Kami juga dapat melakukan ini untuk direktori tertentu dengan tag direktori. Di sini dalam contoh ini, kami mematikan Termasuk dan eksekusi file CGI untuk “/var/www/html/web1" direktori.

 Opsi -Menjata -Execcgi 

Berikut adalah beberapa nilai lain dengan bisa dinyalakan atau mati dengan arahan opsi.

  1. Opsi semua - Untuk mengaktifkan semua opsi sekaligus. Ini adalah nilai default, jika Anda tidak ingin menentukan nilai apa pun secara eksplisit dalam file apache conf atau .htaccess.
  2. Opsi Termasuk NoExec - Opsi ini memungkinkan sisi server termasuk tanpa izin menjalankan ke perintah atau file CGI.
  3. Opsi Multiviews - Memungkinkan konten yang dinegosiasikan multiview dengan modul mod_negotiation.
  4. Opsi symlinksifownerMatch - Ini mirip dengan mengikuti tautan. Tapi, ini hanya akan mengikuti ketika pemiliknya sama antara tautan dan direktori asli yang ditautkannya.

10. Batasi ukuran permintaan

Secara default Apache tidak memiliki batasan ukuran total permintaan http i.e. tidak terbatas dan ketika Anda mengizinkan permintaan besar di server web, Anda bisa menjadi korban Penolakan serangan layanan. Kami dapat membatasi ukuran permintaan arahan apache "LimitRequestBody”Dengan Tag Direktori.

Anda dapat mengatur nilai dalam byte dari 0 (tak terbatas) ke 2147483647 (2GB) yang diizinkan di badan permintaan. Anda dapat menetapkan batas ini sesuai dengan kebutuhan situs Anda, misalkan Anda memiliki situs di mana Anda mengizinkan unggahan dan Anda ingin membatasi ukuran unggahan untuk direktori tertentu.

Di sini dalam contoh ini, user_uploads adalah direktori yang berisi file yang diunggah oleh pengguna. Kami menempatkan batasan 500k untuk ini.

 LimitRequestBody 512000 

11. Lindungi serangan dan pengerasan DDOS

Nah, memang benar bahwa Anda tidak dapat sepenuhnya melindungi situs web Anda Serangan DDOS. Berikut adalah beberapa arahan yang dapat membantu Anda memiliki kendali di atasnya.

  1. Waktu habis : Petunjuk ini memungkinkan Anda untuk mengatur jumlah waktu server akan menunggu acara tertentu selesai sebelum gagal. Nilai defaultnya adalah 300 detik. Adalah baik untuk menjaga nilai ini rendah di situs -situs yang tunduk Serangan DDOS. Nilai ini benar -benar tergantung pada jenis permintaan yang Anda dapatkan di situs web Anda. Catatan: Bisa menimbulkan masalah dengan datang CGI skrip.
  2. MaxClients : Petunjuk ini memungkinkan Anda untuk menetapkan batas koneksi yang akan dilayani secara bersamaan. Setiap koneksi baru akan antri setelah batas ini. Itu tersedia dengan Prefork Dan Pekerja keduanya MPM. Nilai defaultnya adalah 256.
  3. Keepalivetimeout : Jumlah waktu server akan menunggu permintaan berikutnya sebelum menutup koneksi. Nilai default adalah 5 detik.
  4. LimitRequestFields : Ini membantu kami untuk menetapkan batas jumlah bidang header permintaan HTTP yang akan diterima dari klien. Nilai defaultnya adalah 100. Disarankan untuk menurunkan nilai ini jika Serangan DDOS terjadi sebagai hasil dari begitu banyak header permintaan HTTP.
  5. LimitRequestFieldsize : Ini membantu kami untuk menetapkan batas ukuran pada header permintaan HTTP.

12. Aktifkan logging Apache

Apache memungkinkan Anda untuk mencatat secara independen dari Anda OS LOGGING. Adalah bijaksana untuk mengaktifkan penebangan Apache, karena memberikan lebih banyak informasi, seperti perintah yang dimasukkan oleh pengguna yang telah berinteraksi dengan server web Anda.

Untuk melakukannya, Anda harus memasukkan mod_log_config modul. Ada tiga arahan terkait logging utama yang tersedia dengan Apache.

  1. TransferLog: Membuat file log.
  2. Format log : Menentukan format khusus.
  3. CustomLog : Membuat dan memformat file log.

Anda juga dapat menggunakannya untuk situs web tertentu yang Anda lakukan Hosting virtual Dan untuk itu Anda perlu menentukannya di bagian host virtual. Misalnya, berikut adalah konfigurasi host virtual situs web saya dengan logging diaktifkan.

 DocumentRoot/var/www/html/contoh.com/ servername www.contoh.Com DirectoryIndex Index.indeks htm.Indeks HTML.Contoh serveral php.com errordocument 404 /cerita.PHP ErrorLog /var/log/httpd/contoh.com_error_log CustomLog /var/log/httpd/contoh.COM_ACCESS_LOG digabungkan 

13. Mengamankan Apache dengan Sertifikat SSL

Terakhir, tapi tidak sedikit Sertifikat SSL, Anda dapat mengamankan semua komunikasi dengan cara terenkripsi melalui internet dengan sertifikat SSL. Misalkan Anda memiliki situs web di mana orang login dengan membuktikan kredensial login mereka atau Anda memiliki situs web e-commerce tempat orang menyediakan mereka rincian bank atau Debet/Kredit Detail Kartu untuk Membeli Produk, Secara Default Server Web Anda Kirim detail ini dalam format teks tetapi saat Anda menggunakan Sertifikat SSL ke situs web Anda, Apache mengirimkan semua informasi ini dalam teks terenkripsi.

Kamu bisa Beli Sertifikat SSL dari begitu banyak penyedia SSL yang berbeda seperti Namecheap.com. Jika Anda menjalankan bisnis web yang sangat kecil dan tidak mau Beli Sertifikat SSL Anda masih dapat menetapkan Sertifikat yang ditandatangani sendiri ke situs web Anda. Apache menggunakan mod_ssl modul untuk mendukung Sertifikat SSL.

# OpenSSL GENRSA -DES3 -Out Contoh.com.Kunci 1024 # OpenSSL Req -New -Key Contoh.com.KUNCI -out exmaple.CSR # OPENSSL X509 -REQ -DARI 365 -Sin Contoh.com.com.CSR -SIGNKEY CONTOH.com.com.Contoh kunci -out.com.com.crt

Setelah sertifikat Anda dibuat dan ditandatangani. Sekarang Anda perlu menambahkan ini dalam konfigurasi Apache. Buka file konfigurasi utama dengan editor VIM dan tambahkan baris berikut dan restart layanan.

 Sslengine di sslcertificateFile/etc/pki/tls/cerc/contoh.com.crt sslcertificateKeyFile/etc/pki/tls/certs/contoh.com.Key sslcertificateChainfile/etc/pki/tls/certs/sf_bundle.CRT ServerAdmin [Email Dilindungi] Contoh Layanan.com documentrooth/var/www/html/example/errorLog/var/log/httpd/contoh.com-error_log customlog/var/log/httpd/contoh.com-access_log Common 

Buka browser Anda, ketik https: // contoh.com, dan Anda akan dapat melihat yang baru sertifikat yang ditandatangani sendiri.

Ini adalah beberapa tips keamanan yang dapat Anda gunakan Amankan Server Web Apache Anda instalasi. Untuk tips dan ide keamanan yang lebih bermanfaat, lihat dokumentasi online resmi Apache HTTP Server.