Memulai dengan Server HTTP Apache
Server HTTP Apache adalah salah satu server web yang paling umum digunakan. Bagian ini bertindak sebagai panduan mulai cepat untuk menerapkan dan mengonfigurasi Apache di Fedora.
Menginstal HTTPD
Prosedur ini menjelaskan langkah-langkah untuk menginstal Apache HTTPD di Fedora.
-
Instal paket HTTPD.
sudo dnf install httpd -y
-
Mulai layanan HTTPD.
sudo systemctl start httpd.service
Untuk mengaktifkan pengaktifan otomatis layanan HTTPD saat boot, jalankan perintah berikut: sudo systemctl enable httpd.service |
Buka http://localhost untuk mengakses halaman pengujian Apache. Anda mungkin tidak dapat mengakses server dari host lain. Untuk mengakses server dari host lain, lihat Membuka port firewall.
Mengamankan Apache HTTPD
Untuk mengaktifkan dukungan TLS/SSL, unduh dan instal salah satu paket berikut:
Menggunakan mod_ssl
Menginstal mod_ssl
Paket mod_ssl akan secara otomatis diaktifkan setelah instalasi. Lakukan penginstal paket mod_ssl menggunakan perintah berikut:
sudo dnf install mod_ssl -y
Membuat sertifikat baru
Untuk membuat sertifikat baru, lihat Membuat sertifikat menggunakan OpenSSL.
Menginstal sertifikat yang sudah ada
Jika Anda sudah memiliki sertifikat yang dibuat di komputer lain, lakukan hal berikut:
-
Pindahkan sertifikat dan berkas kunci ke folder yang benar
sudo mv key_file.key /etc/pki/tls/private/myhost.com.key sudo mv certificate.crt /etc/pki/tls/certs/myhost.com.crt
-
Pastikan bahwa parameter berikut ini sudah benar:
-
Konteks SELinux
restorecon /etc/pki/tls/private/myhost.com.key restorecon /etc/pki/tls/certs/myhost.com.crt
-
Kepemilikan
sudo chown root:root /etc/pki/tls/private/myhost.com.key sudo chown root:root /etc/pki/tls/certs/myhost.com.crt
-
Izin
sudo chmod 0600 /etc/pki/tls/private/myhost.com.key sudo chmod 0600 /etc/pki/tls/certs/myhost.com.crt
-
Setelah diinstal sertifikat yang ada, siapkan sertifikat menggunakan [MOD_SSL configuration].
konfigurasi mod_ssl
Konfigurasi TLS/SSL default terdapat di dalam berkas /etc/httpd/conf.d/ssl.conf
. Di dalam berkas ssl.conf
, berikut ini adalah arahan yang menentukan di mana sertifikat dan kunci TLS/SSL berada:
SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
Arahan ini dilampirkan dalam sebuah blok yang mendefinisikan virtual host:
<VirtualHost _default_:443> ... SSLCertificateFile /etc/pki/tls/certs/localhost.crt ... SSLCertificateKeyFile /etc/pki/tls/private/localhost.key ... </VirtualHost>
Untuk menentukan lokasi yang berbeda untuk berkas-berkas ini, lakukan hal berikut:
-
Buat salinan berkas
/etc/httpd/conf.d/ssl.conf
dan perbarui berkas tersebut menjadiz-ssl-local.conf
. -
Edit baris berikut pada berkas
z-ssl-local.conf
:
<VirtualHost _default_:443> SSLCertificateFile /etc/pki/tls/certs/www.myhost.org.crt SSLCertificateKeyFile /etc/pki/tls/private/www.myhost.org.key </VirtualHost>
Berkas ini akan mengganti dua pengaturan untuk host virtual _default_:443
; semua pengaturan lain dari ssl.conf
akan dipertahankan.
Pengaturan untuk host virtual individual
Untuk menggunakan SSL/TLS untuk host virtual tertentu dengan sertifikat yang berbeda sebagai default, lakukan hal berikut:
-
Buka berkas konfigurasi host virtual
/etc/httpd/conf.d/hostname.conf
. -
Sisipkan baris ini di antara
<VirtualHost hostname:port>
dan</VirtualHost>
:SSLEngine on SSLCertificateFile /etc/pki/tls/certs/hostname.crt SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
Menginstal aplikasi web
Anda mungkin ingin menjalankan sesuatu di server web Anda. Banyak aplikasi web yang paling populer dipaketkan untuk Fedora. Direkomendasikan untuk menggunakan versi paket aplikasi web. Paket-paket ini akan dikonfigurasi mengikuti praktik terbaik distribusi yang membantu memastikan keamanan instalasi.
Misalnya, dengan menginstal file statis ke lokasi yang tidak dapat ditulis oleh server web, dan melakukan kontrol akses dengan file konfigurasi daripada file .htaccess
, yang sedikit lebih rentan terhadap serangan.
Aplikasi web yang dikemas juga akan dikonfigurasi untuk bekerja dengan SELinux, yang memberikan manfaat keamanan yang signifikan.
Anda juga akan menerima pembaruan melalui proses pembaruan Fedora yang biasa, sehingga lebih mudah untuk menjaga agar instalasi Anda tetap mutakhir.
Mereka juga sering kali memiliki konfigurasi default yang diubah sesuai dengan konvensi Fedora, yang berarti Anda harus melakukan lebih sedikit pekerjaan untuk menyiapkan dan menjalankan aplikasi.
Sebagian besar aplikasi web dikemas sesuai dengan namanya. Sebagai contoh, Anda dapat menginstal Wordpress dengan menjalankan perintah berikut:
sudo dnf install wordpress
Aplikasi web yang dipaketkan biasanya akan menyediakan instruksi khusus Fedora dalam berkas dokumentasi. Sebagai contoh, Wordpress menyediakan berkas /usr/share/doc/wordpress/README.fedora
dan /usr/share/doc/wordpress/README.fedora-multiuser
.
Aplikasi web yang dipaketkan biasanya membatasi akses secara default sehingga Anda hanya dapat mengaksesnya dari host server itu sendiri, untuk memastikan Anda dapat menjalankan semua konfigurasi awal dengan aman dan hal-hal seperti antarmuka administrasi tidak dapat diakses oleh publik. Untuk informasi tentang cara memperluas akses, lihat Mengaktifkan akses ke aplikasi web.
Aplikasi web umumnya membutuhkan penggunaan server basis data. Artikel Dokumen Cepat ini menyediakan informasi tentang cara menginstal dan mengkonfigurasi PostgreSQL dan halaman wiki tentang MariaDB di Fedora.
Mengkonfigurasi Apache HTTPD
/etc/httpd/conf/httpd.conf
adalah berkas konfigurasi Apache utama. Berkas konfigurasi khusus ditentukan di bawah /etc/httpd/conf.d/*.conf
. Jika pengaturan yang sama ditentukan dalam /etc/httpd/conf/httpd.conf
dan berkas .conf
dalam /etc/httpd/conf.d/
, pengaturan dari berkas /etc/httpd/conf.d/
akan digunakan.
Berkas dalam /etc/httpd/conf.d/
dibaca sesuai urutan abjad: pengaturan dari /etc/httpd/conf.d/z-foo.conf
akan digunakan daripada pengaturan dari /etc/httpd/conf.d/foo.conf
. Demikian pula, pengaturan dari /etc/httpd/conf.d/99-foo.conf
, akan digunakan di atas pengaturan dari /etc/httpd/conf.d/00-foo.conf
.
Sebagai praktik terbaik, jangan memodifikasi /etc/httpd/conf/httpd.conf
atau berkas /etc/httpd/conf.d
yang dikirimkan oleh paket Fedora secara langsung. Jika Anda membuat perubahan lokal pada berkas-berkas ini, maka perubahan apa pun pada versi paket yang lebih baru tidak akan langsung diterapkan. Sebagai gantinya, berkas .rpmnew
akan dibuat, dan Anda harus menggabungkan perubahan secara manual.
Direkomendasikan untuk membuat berkas baru di /etc/httpd/conf.d/
yang akan didahulukan dari berkas yang ingin Anda modifikasi, dan mengedit pengaturan yang diperlukan. Sebagai contoh, untuk mengubah pengaturan yang ditentukan dalam /etc/httpd/conf.d/foo.conf
, Anda dapat membuat berkas /etc/httpd/conf.d/z-foo-local.conf
, dan letakkan pengaturan Anda di berkas tersebut.
Setelah membuat perubahan apa pun pada konfigurasi server Anda, jalankan perintah berikut: sudo systemctl reload httpd.service Perubahan tertentu mungkin mengharuskan Apache untuk di-restart sepenuhnya. Untuk memulai ulang Apache secara penuh, jalankan perintah berikut: sudo systemctl restart httpd.service |
Mengaktifkan akses ke aplikasi web
Secara default, aplikasi web yang dipaketkan dengan Fedora biasanya dikonfigurasi sedemikian rupa sehingga akses hanya diperbolehkan dari localhost. Hal ini ditentukan oleh berkas /etc/httpd/conf.d/webapp.conf
yang berisi pengaturan berikut:
<Directory /usr/share/webapp> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
Sebelum mengizinkan akses umum ke aplikasi web, pastikan untuk melakukan hal berikut:
-
Webapp telah dikonfigurasi dengan benar
-
Antarmuka administrasi dan area sensitif lainnya tidak dapat diakses tanpa autentikasi yang sesuai
-
Konfigurasi basis data aman, jika aplikasi menggunakan basis data
Untuk memperluas akses ke aplikasi, buat berkas /etc/httpd/conf.d/z-webapp-allow.conf
. Untuk mengizinkan akses ke semua sistem di jaringan lokal, tambahkan baris berikut ke dalam berkas:
<Directory /usr/share/webapp> <IfModule mod_authz_core.c> # Apache 2.4 Require local Require ip 192.168.1 </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 Allow from 192.168.1 </IfModule> </Directory>
Setelah aplikasi dikonfigurasi dengan benar, tambahkan konfigurasi berikut ini untuk mengizinkan akses dari host mana pun:
<Directory /usr/share/webapp> <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Allow from all </IfModule> </Directory>
Membuka port firewall
Hal ini akan mengekspos komputer Anda ke Internet dan penyerang potensial. Amankan sistem dan instalasi Apache Anda dengan benar sebelum mengekspos server Anda ke Internet. |
Apache menggunakan port 80 untuk koneksi http biasa dan port 443 untuk koneksi TLS/SSL secara default. Untuk membuat layanan ini tersedia dari komputer lain atau Internet, izinkan Apache melalui firewall menggunakan salah satu perintah berikut:
Untuk mengizinkan Apache melewati firewall pada setiap boot:
-
Untuk koneksi HTTP biasa:
sudo firewall-cmd --permanent --add-service=http
-
Untuk koneksi TLS/SSL:
sudo firewall-cmd --permanent --add-service=https
Untuk mengizinkan Apache melewati firewall secara instan:
-
Untuk koneksi HTTP biasa:
sudo firewall-cmd --add-service=http
-
Untuk koneksi TLS/SSL:
sudo firewall-cmd --add-service=https
Jika server Anda berjalan dalam jaringan dengan router NAT, Anda juga perlu mengonfigurasi router Anda untuk meneruskan port HTTP dan HTTPS ke server Anda, jika Anda ingin mengizinkan akses dari luar jaringan lokal Anda. |
Menonaktifkan Halaman Tes
Untuk menonaktifkan halaman pengujian, komentari semua baris pada berkas /etc/httpd/conf.d/welcome.conf
dengan menggunakan #
sebagai berikut:
# <LocationMatch "^/+$"> # Options -Indexes # ErrorDocument 403 /.noindex.html # </LocationMatch> # <Directory /usr/share/httpd/noindex> # AllowOverride None # Require all granted # </Directory> # Alias /.noindex.html /usr/share/httpd/noindex/index.html
Sumber daya tambahan
Want to help? Learn how to contribute to Fedora Docs ›