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 versija7.6 (1810)
Apache versija2.4.6

Satura rādītājs

  1. instalēt
  2. pamatnosacījumi
  3. 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.

httpd.conf【Pirms pārmaiņām】


#ServerName www.example.com:80

httpd.conf【pēc izmaiņām】


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


ssl.conf【Pirms pārmaiņām】


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"


ssl.conf【pēc izmaiņām】


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.

httpd.conf


<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.