Sākotnējā konfigurācija, kas nepieciešama no Apache uzstādīšanas CentOS līdz darbības uzsākšanai.
Publikācijas datums:2020. gada 8. decembris.
INFOMARTION > Sākotnējā konfigurācija, kas nepieciešama no Apache uzstādīšanas CentOS līdz darbības uzsākšanai.
Pārskats.
Sākotnējās konfigurācijas darbības, kas nepieciešamas, lai uzstādītu un palaistu Apache operētājsistēmā CentOS. Informācija ir balstīta uz pieņēmumu, ka tiek izmantots CentOS7.
Versijas ir šādas.
CentOS versija | 7.6 (1810) |
---|---|
Apache versija | 2.4.6 |
Satura rādītājs
- instalēt
- pamatnosacījumi
- 2-1. Žurnāla failu izejas mapes izveide
- 2-2. Domēna iestatījumi
- 2-3. SSL moduļu un konfigurācijas failu aktivizēšana
- 2-4. Mainīt žurnāla izejas ceļu
- 2-5. SSL sertifikātu izveide
- 2-6. pastāvīgs SSL (Secure Socket Layer)
- 2-7. Aktivizēšanas apstiprinājums (https piekļuve).
- 2-8. Automātiskās palaišanas iestatījums
- kopsavilkums
1. instalēt
Šajā sadaļā ir aprakstīta Apache konfigurācija no instalēšanas līdz palaišanai.
1-1. Apache instalēšana
Veiciet Apache instalēšanu, izmantojot yum komandu. Veiciet darbu kā root lietotājs.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Sākuma pārbaude (http piekļuve)
Īsi pārbaudiet, vai tas ir pieejams. Instalējot Apache (httpd) ar yum komandu, tiek iespējota komanda apachectl. Izmantojiet to, lai palaistu 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.
Ja, izpildot komandu 'apachectl status', tiek atgriezts "Active: active (darbojas)", sistēma ir veiksmīgi startējusi.
Pēc tam piekļūstiet Apache no pārlūkprogrammas. Iestatiet http atļaujas, jo ugunsmūris (vai iptables CentOS6 un agrākajiem modeļiem) pēc noklusējuma atļauj tikai ssh piekļuvi CentOS7. Es arī vēlētos ievietot kolektīvās atļaujas iestatījumu https. Pievienojiet arī opciju "pastāvīgs", lai konfigurāciju padarītu pastāvīgu.
[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:
Tas ir OK, ja 'http' un 'https' ir pievienoti 'services'. Piekļūst, izmantojot pārlūkprogrammu. Manā gadījumā servera IP adrese ir 192.168.50.10, tāpēc es piekļūstu "http://192.168.50.10". Viss ir kārtībā, ja tiek parādīta šāda lapa
Kad sistēma ir veiksmīgi iedarbināta, apstādiniet to.
[root@hostname ~]# apachectl stop
2. pamatnosacījumi
2-1. Žurnāla failu izejas mapes izveide
Lai pārvaldītu reģistrēšanu zem /var/log/, izveidojiet httpd direktoriju zem /var/log/ kā mapi Apache žurnāliem.
Atļaujām (atļaujām) jābūt 755. Šis iestatījums ļauj Apache rakstīt, bet citi lietotāji var tikai lasīt. Ja citi lietotāji var rakstīt, žurnālus var viltot.
'mkdir /var/log/httpd' nav jāizpilda, ja direktorijs ar tādu pašu nosaukumu jau ir izveidots.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Pēdējo procedūru izmantojiet, lai mainītu Apache žurnāla izejas galamērķa iestatījumus.
Šī procedūra ir tikai procedūra, lai izveidotu mapi žurnālu glabāšanai.
2-2. Domēna iestatījumi
Mainiet domēna iestatījumus, kas norādīti failā httpd.conf. Apache konfigurācija pamatā ir centralizēta failā httpd.conf, tāpēc, ja vēlaties mainīt konfigurāciju, modificējiet httpd.conf. Domēni nav jākonfigurē, ja vide ir lokāla (nav publiski pieejama internetā).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Atceliet komentāru un iespējojiet iestatījumu ServerName. Domēna nosaukums tiek iestatīts atbilstoši videi.
#ServerName www.example.com:80
ServerName domainname:80
2-3. SSL moduļu un konfigurācijas failu aktivizēšana
Aktivizējiet SSL, lai atļautu piekļuvi caur https. SSL iestatījumi ir saistīti ar SEO, un http nav laba ideja drošības apsvērumu dēļ, tāpēc, ja vien jums nav jāizmanto http, izmantojiet https.
Instalējiet ssl moduli, izmantojot yum.
[root@hostname ~]# yum -y install mod_ssl
Instalēšana ar yum automātiski aktivizē ssl moduli, tāpēc jums nepieciešams to tikai instalēt. Automātiski tiek izveidots arī konfigurācijas fails. (/etc/httpd/conf.d/ssl.conf tiek izveidots automātiski.)
2-4. Mainīt žurnāla izejas ceļu
Mainiet Apache žurnāla izejas galamērķi uz tikko izveidoto žurnāla failu izejas mapi. Mainiet tikai ssl konfigurācijas failu, jo nākamajā solī tas tiks iestatīts tā, lai tam varētu piekļūt tikai ar ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~saīsinājums~
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log
~saīsinājums~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Iepriekš minētā modifikācija maina žurnāla izejas galamērķi uz "/var/log/httpd".
'%t, %h' utt., tas ir žurnāla formatēšanas iestatījums. Tālāk ir sniegts to formātu saraksts, kurus var bieži izmantot, lai uz tiem atsauktos.
【参考】
・%T:Pieprasījuma apstrādes laiks (sekundes)
・%h:Klienta hosta nosaukums vai IP adrese. Mēģināt atrisināt resursdatornosaukumus tikai tad, ja HostnameLookups ir iestatīts uz Ieslēgts.
・%r:Pieprasījuma pirmā rinda
・%b:Atbildes baiti (izņemot HTTP galvenes). CLF formātā, t. i., ja neviens no baitiem netiek nosūtīts.
・%D:Pieprasījuma apstrādes laiks (mikrosekundes)
・%>s:HTTP statuss
2-5. SSL sertifikātu izveide
Sertifikātu izveides procedūra. Pašsertifikācija ir piemērota privātām darbībām. Publiski pieejamiem serveriem pašsertifikācija nav ieteicama.
Parastie sertifikāti un pašsertifikāti drošības ziņā neatšķiras. Tas var būt atšķirība starp sertifikātu, ko trešā persona var atzīt par uzticamu, un sertifikātu, ko nevar atzīt par uzticamu. (Veicot pašsertifikāciju, URL josla kļūst sarkana.) Tāpēc publiski pieejamiem serveriem (serveriem, kurus redz trešās puses) izsniedziet parastu sertifikātu.
Noklusējuma sertifikāta iestatījumi Apache ir "/etc/pki/tls/certs/localhost.crt" un "/etc/pki/tls/private/localhost.key".
Iestatījumus var atrast "SSLCertificateFile" un "SSLCertificateKeyFile" sadaļā "/etc/httpd/conf.d/ssl.conf".
【Pašsertifikācijai】
Lai izveidotu pašsertifikātu, izpildiet šādu komandu. Palaist kā root lietotājs.
Palaižot 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt', atbilde tiks pieprasīta vairākas reizes, visas ar Enter, nav problēmu. Tā būs informācija par to, kas izsniedz sertifikātu (piemēram, kurā valstī viņš dzīvo un kāda ir viņa e-pasta adrese). Ja izsniedzat parastu sertifikātu, ievadiet pareizo informāciju un iestatiet to.
[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
【Parastiem sertifikātiem】
Lai izveidotu parastu sertifikātu, izpildiet šādu komandu. Palaist kā root lietotājs.
[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
Parastiem sertifikātiem ar to nepietiek, lai pabeigtu procesu. Darbs ietver izveidotā 'server.csr' nodošanu sertifikātu iestādei, lai tā izsniegtu servera sertifikātu, un izsniegtā servera sertifikāta instalēšanu.
2-6. pastāvīgs SSL (Secure Socket Layer)
Tas nav laba drošība, ja piekļuve tiek veikta, izmantojot http, tāpēc pievienojiet iestatījumu, lai pāradresētu uz https, ja piekļuve tiek veikta, izmantojot http.
Ir iespējams aizliegt piekļuvi, izmantojot http, taču no lietojamības viedokļa ir ieteicams iestatīt pāradresāciju. Veiciet šādus uzdevumus kā root lietotājs.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Beigās pievienojiet šādu tekstu.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Šo iestatījumu ir iespējams mainīt tā, lai piekļuves, kas tiek saņemtas, izmantojot http, tiktu apstrādātas, izmantojot https.
Ir norādīts, ka šis iestatījums nedarbojas, ja ierodaties, izmantojot https. (RewriteCond %{HTTPS} off)
Neaizmirstiet pieminēt, ka bez šī iestatījuma tiks novirzītas arī https piekļuves, kā rezultātā izveidosies bezgalīga cilpa.
2-7. Aktivizēšanas apstiprinājums (https piekļuve).
Pēc dažādu iestatījumu pabeigšanas pārbaudiet, vai vietnei var piekļūt, izmantojot https. Vispirms sāciet darbu.
[root@hostname ~]# apachectl start
Piekļūst, izmantojot pārlūkprogrammu. Tas pats, kas attiecas uz http piekļuvi, bet manā gadījumā servera IP adrese ir 192.168.50.10, tāpēc es piekļūstu "http://192.168.50.10".
URL tiek mainīts no "http://192.168.50.10" uz "https://192.168.50.10", jo ir iekļauts http novirzīšanas iestatījums.
Tagad, kad tas ir veiksmīgi palaists, apstādiniet Apache.
[root@hostname ~]# apachectl stop
2-8. Automātiskās palaišanas iestatījums
Visbeidzot, lai gan tas nav obligāti, ir grūti palaist Apache katru reizi, kad tiek restartēts serveris, tāpēc ir ieviesta konfigurācija, lai Apache tiktu palaists automātiski, kad tiek palaists serveris. Tā arī reģistrējas komandai systemctl. Lūdzu, ņemiet vērā, ka šī procedūra attiecas uz CentOS7, tāpēc, ja izmantojat kādu citu operētājsistēmu, kas nav CentOS7, jums būs jāizmanto komanda Service, lai to paveiktu.
Izveidojiet failu 'apache.service' un aprakstiet nepieciešamos iestatījumus.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
Ir sniegta šāda informācija.
[Unit]
#Apraksts.
Description=Apache
#Kontrole pirms un pēc izpildes.
#Before=xxx.service
#After=xxx.service
[Service]
#Lietotāja un grupas apzīmējums
User=root
Group=root
#Pēc aktivizēšanas iestatiet statusu Aktivizēts.
Type=oneshot
RemainAfterExit=yes
#Palaist, apturēt un atkārtoti ielādēt.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Runlevel 3 līdzvērtīgi iestatījumi.
WantedBy=multi-user.target
Kad esat pabeidzis to aprakstīt, reģistrējiet to ar komandu 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. kopsavilkums
Mēs esam aprakstījuši sākotnējo konfigurāciju, kas nepieciešama, kad tiek instalēts Apache.
Apache pamatā zināmā mērā darbojas ar noklusējuma iestatījumiem, bet, ja jūs to faktiski pielāgojat, lūdzu, skatiet žurnāla izejas galamērķa iestatījumus un SSL iestatījumus, kas jums jāmaina, darbinot sistēmu.
Paldies, ka noskatījāties līdz beigām.