Cara Menginstal dan Mengkonfigurasi Apache di CentOS/RHEL 8

Cara Menginstal dan Mengkonfigurasi Apache di CentOS/RHEL 8

Centos 8 adalah rilis terbaru dari Sistem Operasi Centos Linux, yang didasarkan pada Red Hat Enterprise Linux 8. Dalam tutorial ini, kami akan membantu Anda menginstal Server Web Apache pada sistem Centos 8 atau RHEL 8 dengan konfigurasi dan keamanan tambahan.

Prerequsities

  • Akses SSH ke Sistem CentOS/RHEL 8
  • Hak istimewa sudo kepada pengguna untuk menginstal paket

Langkah 1 - Instal Apache di Centos 8

Pertama -tama, login ke sistem CentOS 8 atau RHEL 8 Anda melalui SSH. Kemudian instal Paket Server APACHE2 HTTP menggunakan perintah berikut. Ini juga akan memasang paket tambahan yang diperlukan pada sistem Anda.

sudo dnf menginstal httpd 

Tunggu instalasi selesai

Langkah 2 - Kelola Layanan Apache

Layanan Apache dikelola dengan baris perintah SystemCTL di CentOS/RHEL 8. Setelah instalasi, gunakan perintah berikut untuk mengaktifkan layanan Apache dan kemudian mulai.

sudo systemctl mengaktifkan httpd.Layanan Sudo Systemctl Mulai httpd.melayani 

Berikut adalah perintah lain untuk berhenti dan restart layanan Apache melalui baris perintah.

Sudo Systemctl Stop Apache2.Layanan Sudo Systemctl Restart Apache2.melayani 

Langkah 3 - Uji Pengaturan Apache

Anda dapat melihat detail versi Apache yang diinstal menggunakan perintah berikut.

Versi server httpd -v: Apache/2.4.37 (Centos) Server Dibangun: 7 Okt 2019 21:42:02 

Buat halaman HTML tes di bawah Dokumen Root Dokumen Default (/var/www/html).

sudo echo "halo tecadmin.net ">/var/www/html/index.html 

Sekarang akses server Apache Anda menggunakan alamat IP server atau domain yang menunjuk ke IP server.

Langkah 4 - Membuat VirtualHost

Mari kita buat host virtual pertama di server Apache Anda. Untuk tutorial, kami menggunakan domain sampel “Contoh.com ". Di sini kami akan membuat host virtual misalnya.com di port 80.

Buat file indeks sampel di direktori:

sudo mkdir -p/var/www/contoh.com echo "Contoh halo.com "| sudo tee/var/www/contoh.com/index.html 

Kemudian buat file konfigurasi virtualhost dan edit di editor:

sudo vim/etc/httpd/conf.D/Contoh.com.conf 

Tambahkan konten berikut di akhir file konfigurasi. Anda dapat mengubah nama domain sesuai domain Anda.

Serveradmin [email protected] Documentroot/var/www/contoh.COM SERVERNAME CONTOH.com ServeralIas www.contoh.com #allowoverride semua ### uncomment jika diperlukan log kesalahan/contoh.com_error.Log Log CustomLog/Contoh.com_access.log digabungkan
12345678910111213 Serveradmin [email protected] Documentroot/var/www/contoh.COM SERVERNAME CONTOH.com ServeralIas www.contoh.com #AllowOverride semua ### uncomment jika diperlukan Log/Contoh ErrorLog.com_error.Log Log CustomLog/Contoh.com_access.log digabungkan

Simpan file konfigurasi VirtualHost dan muat ulang layanan Apache menggunakan perintah berikut:

Sudo Systemctl Reload httpd.melayani 

Langkah 5 - Mengkonfigurasi SSL VirtualHost

Anda dapat melewatkan langkah ini jika Anda tidak memerlukan SSL. Tetapi keamanan selalu menjadi perhatian utama untuk situs web mana pun. Untuk menggunakan SSL dengan Apache, instal paket MOD_SSL di sistem Anda.

sudo dnf instal mod_ssl 

Untuk tutorial, saya telah mengikuti instruksi ini untuk menghasilkan sertifikat SSL yang ditandatangani sendiri untuk domain kami.

Anda bisa menggunakan /etc/httpd/conf/ssl.conf Untuk SSL Virtual Host atau Anda dapat menggunakan file konfigurasi host virtual yang terpisah untuk domain Anda. Misalnya:

sudo vim/etc/httpd/conf.D/Contoh.com_ssl.conf 

dengan konten berikut:

Serveradmin [email protected] Documentroot/var/www/contoh.COM SERVERNAME CONTOH.com ServeralIas www.contoh.com #allowoverride all ### uncomment jika diperlukan sslengine di sslcertificateFile/etc/pki/tls/cerc/contoh.com.crt sslcertificateKeyFile/etc/pki/tls/certs/contoh.com.Log/contoh errorlog kunci.com_ssl-error.Log Log CustomLog/Contoh.com_ssl-access.log digabungkan
123456789101112131415161718 Serveradmin [email protected] Documentroot/var/www/contoh.COM SERVERNAME CONTOH.com ServeralIas www.contoh.com #AllowOverride semua ### uncomment jika diperlukan Sslengine di sslcertificateFile/etc/pki/tls/cerc/contoh.com.crt sslcertificateKeyFile/etc/pki/tls/certs/contoh.com.Log/contoh errorlog kunci.com_ssl-error.Log Log CustomLog/Contoh.com_ssl-access.log digabungkan

Berikut adalah tiga istilah yang digunakan untuk mengonfigurasi SSL VirtualHost:

  • Sslengine - Atur ini ke "On"
  • SslcertificateFile - Atur jalur sertifikat SSL Anda
  • SslcertificateKeyFile - Ini adalah file kunci pribadi yang digunakan untuk menghasilkan sertifikat SSL

Setelah itu mengaktifkan VirtualHost dan Muat Ulang Layanan Apache Menggunakan Perintah berikut:

Sudo Systemctl Reload Apache2.melayani 

Langkah 6 - Secure Apache Server

Keamanan adalah bagian terpenting dari hosting. Peretas siap mengeksploitasi server web Anda. Edit file konfigurasi utama Apache

sudo vim/etc/httpd/conf/httpd.conf 

Tambahkan nilai -nilai berikut di akhir file:

Servertokens Prod ServerSignature off
123 Servertokens Prod ServerSignature off

Setelah itu mengedit file konfigurasi SSL default Apache:

sudo vim/etc/httpd/conf.D/SSL.conf 

Berikut adalah beberapa pengaturan terkait keamanan. Tambahkan atau perbarui pengaturan berikut. Kami tidak akan melakukan deskripsi terperinci tentang hal itu tetapi pengaturan ini sangat berguna untuk server produksi.

#Rules diambil dari https: // cipherli.ST/ SSLCIPHERSUITE EECDH+AESGCM: EDH+AESGCM # membutuhkan Apache 2.4.36 & openssl 1.1.1 sslprotocol -all +tlsv1.3 +TLSV1.2 Kurva SSLOPENSSLCONFCMD X25519: SECP521R1: SECP384R1: PRIME256V1 # VERSI LAMA # SSLPROTOCOL ALL -SSLV2 -SSLV3 -TLSV1 -TLSV1.1 sslhonorcipherorder di header selalu menetapkan ketegangan-transport-keamanan "Max-AGE = 63072000; termasuk domain; header preload" selalu mengatur x-frame-options yang ditolak header selalu mengatur x-konten-opsi-opsi nosniff # membutuhkan apache> = 2.4 SSLKompresi OFF SSLUSESTAPLING ON SSLSTAPLINGCACHE "SHMCB: LOGS/Stapling-Cache (150000)" # membutuhkan Apache> = 2.4.11 SSLSESSIONTICKETS OFF
123456789101112131415161718#Rules diambil dari https: // cipherli.ST/ SSLCIPHERSUITE EECDH+AESGCM: EDH+AESGCM# membutuhkan Apache 2.4.36 & openssl 1.1.1SSLPROTOCOL -ALL +TLSV1.3 +TLSV1.2sslopensslconfcmd kurva x25519: secp521r1: secp384r1: prime256v1# versi lama# sslprotocol all -sslv2 -sslv3 -tlsv1 -tlsv1.1sslhonorcipherorder onheader selalu menetapkan ketegangan-transport-keamanan "Max-AGE = 63072000; termasuk domain; preload" header selalu mengatur x-frame-options penolak yang selalu mengatur x-konten-opsi-opsi nosniff# membutuhkan apache> = 2.4SSLKompresi offsslusestapling Onsslstaplingcache "SHMCB: Log/Stapling-Cache (150000)"# membutuhkan Apache> = 2.4.11SSLSESSIONTICKETS OFF

Setelah melakukan perubahan restart layanan Apache untuk menerapkan konfigurasi baru.

Sudo Systemctl Reload Apache2.melayani 

Kesimpulan

Semua selesai, Anda menjalankan server Apache yang diamankan pada sistem Linux CentOS 8 atau RHEL 8 Anda.