Konfigurasi awal yang diperlukan dari instalasi Apache pada CentOS hingga start-up.


Tanggal Publikasi:8 Desember 2020.



INFOMARTION > Konfigurasi awal yang diperlukan dari instalasi Apache pada CentOS hingga start-up.

Ikhtisar.

Ini adalah prosedur konfigurasi awal yang diperlukan untuk menginstal dan memulai Apache pada CentOS. Informasi ini didasarkan pada asumsi bahwa CentOS7 digunakan.

Versinya adalah sebagai berikut.

Versi CentOS7.6 (1810)
Versi Apache2.4.6

Daftar Isi

  1. pasang
  2. pengaturan dasar
  3. ringkasan

1. pasang

Bagian ini menjelaskan konfigurasi Apache dari instalasi hingga start-up.

1-1. Menginstal Apache

Lakukan instalasi Apache dengan menggunakan perintah yum. Lakukan pekerjaan sebagai pengguna root.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd

1-2. Pemeriksaan start-up (akses http)

Periksa secara singkat apakah dapat diakses. Menginstal Apache (httpd) dengan perintah yum mengaktifkan perintah apachectl. Gunakan ini untuk memulai Apache.

[root@hostname ~]# apachectl start
[root@hostname ~]# apachectl status
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-12-06 17:08:12 JST; 1s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1303 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           |-1303 /usr/sbin/httpd -DFOREGROUND
           |-1304 /usr/sbin/httpd -DFOREGROUND
           |-1305 /usr/sbin/httpd -DFOREGROUND
           |-1306 /usr/sbin/httpd -DFOREGROUND
           |-1307 /usr/sbin/httpd -DFOREGROUND
           `-1308 /usr/sbin/httpd -DFOREGROUND

Dec 06 17:08:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 06 17:08:12 localhost.localdomain httpd[1303]: AH00558: httpd: Could not reliably determ...ge
Dec 06 17:08:12 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Jika 'Active: active (running)' dikembalikan sebagai hasil dari eksekusi perintah 'apachectl status', sistem telah berhasil dimulai.

Kemudian akses Apache dari browser Anda. Atur izin http karena firewall (atau iptables untuk CentOS6 dan sebelumnya) hanya mengizinkan akses ssh secara default di CentOS7. Saya juga ingin memasukkan pengaturan izin kolektif untuk https. Tambahkan juga opsi 'permanent' untuk membuat konfigurasi menjadi permanen.

[root@hostname ~]# firewall-cmd --permanent --add-service=http
[root@hostname ~]# firewall-cmd --permanent --add-service=https
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Tidak apa-apa jika 'http' dan 'https' telah ditambahkan ke 'services'. Diakses melalui browser. Dalam kasus saya, alamat IP server adalah 192.168.50.10, jadi saya mengakses "http://192.168.50.10". Tidak apa-apa jika halaman berikut ini muncul

Setelah sistem berhasil dihidupkan, hentikan.

[root@hostname ~]# apachectl stop

2. pengaturan dasar

2-1. Pembuatan folder output file log

Untuk mengelola logging di bawah /var/log/, buat direktori httpd di bawah /var/log/ sebagai folder untuk log Apache.

Perizinan (permissions) harus 755. Pengaturan ini memungkinkan Apache untuk menulis, tetapi pengguna lain hanya bisa membaca. Jika pengguna lain bisa menulis, log bisa dirusak.

'mkdir /var/log/httpd' tidak perlu dieksekusi jika direktori dengan nama yang sama sudah dibuat.

[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd

Gunakan prosedur terakhir untuk mengubah pengaturan tujuan output log Apache.

Prosedur ini hanya merupakan prosedur untuk membuat folder untuk menyimpan log.

2-2. Pengaturan domain

Ubah pengaturan domain yang tercantum dalam httpd.conf. Konfigurasi Apache pada dasarnya terpusat di httpd.conf, jadi jika Anda ingin mengubah konfigurasi, modifikasi httpd.conf. Domain tidak perlu disiapkan jika lingkungannya lokal (tidak terbuka untuk umum di Internet).

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

# Hapus komentar dan aktifkan pengaturan ServerName. Nama domain ditetapkan menurut lingkungan.

httpd.conf【Sebelum perubahan】


#ServerName www.example.com:80

httpd.conf【setelah perubahan】


ServerName domainname:80

2-3. Aktivasi modul SSL dan file konfigurasi

Aktifkan SSL untuk mengizinkan akses melalui https. Pengaturan SSL terkait dengan SEO, dan http bukanlah ide yang baik untuk alasan keamanan, jadi kecuali Anda harus menggunakan http, gunakan https.

Instal modul ssl dengan yum.

[root@hostname ~]# yum -y install mod_ssl

Menginstal dengan yum secara otomatis mengaktifkan modul ssl, jadi Anda hanya perlu menginstalnya. File konfigurasi juga dibuat secara otomatis. (/etc/httpd/conf.d/ssl.conf dibuat secara otomatis).

2-4. Ubah jalur keluaran log

Ubah tujuan output log Apache ke folder output file log yang baru saja Anda buat. Hanya ubah file konfigurasi ssl, karena akan diatur dalam langkah berikutnya untuk diakses hanya melalui ssl (https).

[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf


ssl.conf【Sebelum perubahan】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~ringkasan~

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


ssl.conf【setelah perubahan】


ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log

~ringkasan~

CustomLog /var/log/httpd/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Modifikasi di atas mengubah tujuan output log menjadi di bawah "/var/log/httpd".


'%t, %h', dll., ini adalah pengaturan pemformatan log. Berikut ini adalah daftar format yang mungkin sering digunakan sebagai referensi.

【参考】

・%T:Waktu yang dibutuhkan untuk memproses permintaan (detik)

・%h:Nama host atau alamat IP klien. Hanya mencoba menyelesaikan nama host jika HostnameLookups diatur ke On

・%r:Baris pertama permintaan

・%b:Byte dari respons (tidak termasuk header HTTP). Format CLF, yaitu - jika tidak ada byte yang dikirim

・%D:Waktu yang dibutuhkan untuk memproses permintaan (mikrodetik)

・%>s:Status HTTP

2-5. Pembuatan sertifikat SSL

Prosedur untuk membuat sertifikat. Sertifikasi mandiri tidak masalah untuk operasi swasta. Untuk server yang tersedia untuk umum, sertifikasi mandiri harus dicegah.

Tidak ada perbedaan dalam keamanan antara sertifikat normal dan sertifikat mandiri. Ini bisa menjadi pembeda antara sertifikat yang bisa dinilai andal oleh pihak ketiga dan yang tidak. (Dengan sertifikasi mandiri, bilah URL berubah menjadi merah.) Jadi, untuk server yang tersedia untuk umum (server yang dilihat oleh pihak ketiga), keluarkan sertifikat normal.

Pengaturan sertifikat default untuk Apache adalah "/etc/pki/tls/certs/localhost.crt" dan "/etc/pki/tls/private/localhost.key".

Pengaturan dapat ditemukan di "SSLCertificateFile" dan "SSLCertificateKeyFile" di "/etc/httpd/conf.d/ssl.conf".


【Untuk sertifikasi mandiri】

Untuk membuat sertifikat mandiri, jalankan perintah berikut ini. Jalankan sebagai pengguna root.

Menjalankan 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' akan meminta respon beberapa kali, semuanya dengan Enter, tidak masalah. Ini akan menjadi informasi tentang siapa yang menerbitkan sertifikat (misalnya, di negara mana mereka tinggal dan apa alamat email mereka). Jika Anda menerbitkan sertifikat normal, masukkan informasi yang benar dan siapkan.

[root@hostname ~]# openssl genrsa > /etc/pki/tls/private/localhost.key
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.csr
[root@hostname ~]# openssl x509 -req -signkey /etc/pki/tls/private/localhost.key < /etc/pki/tls/certs/localhost.csr > /etc/pki/tls/certs/localhost.crt

【Untuk sertifikat normal】

Untuk membuat sertifikat normal, jalankan perintah berikut. Jalankan sebagai pengguna root.

[root@hostname ~]# openssl genrsa -out /etc/pki/tls/private/localhost.key 2048
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.csr

Untuk sertifikat reguler, ini tidak cukup untuk menyelesaikan prosesnya. Pekerjaan ini melibatkan penyerahan 'server.csr' yang dibuat ke Otoritas Sertifikat agar sertifikat server diterbitkan dan menginstal sertifikat server yang telah diterbitkan.

2-6. SSL permanen (Lapisan Soket Aman)

Tidak baik keamanannya jika akses dilakukan melalui http, jadi tambahkan pengaturan untuk mengalihkan ke https jika akses dilakukan melalui http.

Dimungkinkan untuk melarang akses melalui http, tetapi dari sudut pandang kegunaan, dianjurkan untuk menyiapkan pengalihan. Lakukan tugas-tugas berikut sebagai pengguna root.

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

Tambahkan yang berikut ini di bagian akhir.

httpd.conf


<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Dimungkinkan untuk mengubah pengaturan ini sehingga akses yang masuk di http ditangani di https.

Dinyatakan bahwa pengaturan ini tidak berfungsi jika Anda datang melalui https. (RewriteCond %{HTTPS} off)

Jangan lupa untuk menyebutkan bahwa tanpa pengaturan ini, akses https juga akan dialihkan, menghasilkan loop tanpa akhir.

2-7. Konfirmasi aktivasi (akses https).

Sekarang setelah berbagai pengaturan selesai dilakukan, periksa apakah situs dapat diakses melalui https. Mulailah terlebih dahulu.

[root@hostname ~]# apachectl start

Diakses melalui browser. Sama seperti untuk akses http, tetapi dalam kasus saya, alamat IP server adalah 192.168.50.10, jadi saya mengakses "http://192.168.50.10".

URL diubah dari "http://192.168.50.10" ke "https://192.168.50.10" karena pengaturan http redirect disertakan.

Sekarang setelah berhasil dimulai, hentikan Apache.

[root@hostname ~]# apachectl stop

2-8. Pengaturan start-up otomatis

Akhirnya, meskipun tidak wajib, sulit untuk memulai Apache setiap kali server di-restart, sehingga konfigurasi dilakukan agar Apache dimulai secara otomatis ketika server dimulai. Ini juga mendaftar ke perintah systemctl. Harap dicatat bahwa prosedur ini untuk CentOS7, jadi jika Anda menggunakan apa pun selain CentOS7, Anda perlu menggunakan perintah Service untuk menangani hal ini.

Buat file 'apache.service' dan jelaskan pengaturan yang diperlukan.

[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service

Informasi berikut ini disediakan.

[Unit]
#Deskripsi.
Description=Apache
#Kontrol pra- dan pasca-eksekusi.
#Before=xxx.service
#After=xxx.service

[Service]
#Penunjukan pengguna dan grup
User=root
Group=root
#Setelah diaktifkan, atur status ke Activated (Diaktifkan).
Type=oneshot
RemainAfterExit=yes
#Mulai, berhenti dan muat ulang.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Pengaturan setara Runlevel 3.
WantedBy=multi-user.target

Setelah Anda selesai menjelaskannya, daftarkan dengan perintah systemctl.

[root@hostname ~]# systemctl enable apache
[root@hostname ~]# systemctl is-enabled apache
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep apache
apache.service                                enabled
[root@hostname ~]# systemctl daemon-reload


3. ringkasan

Kami telah menjelaskan konfigurasi awal yang diperlukan ketika Apache diinstal.

Apache pada dasarnya bekerja sampai batas tertentu dengan pengaturan default, tetapi jika Anda benar-benar mengkustomisasinya, silakan merujuk ke pengaturan tujuan output log dan pengaturan SSL, yang harus Anda ubah saat mengoperasikan sistem.

Terima kasih telah menonton sampai akhir.