Esialgne konfiguratsioon, mis on vajalik alates Apache'i paigaldamisest CentOS-i käivitamiseks.


Avaldamise kuupäev:8. detsember 2020.



INFOMARTION > Esialgne konfiguratsioon, mis on vajalik alates Apache'i paigaldamisest CentOS-i käivitamiseks.

Ülevaade.

Apache'i paigaldamiseks ja käivitamiseks vajalikud esialgsed konfiguratsioonietapid CentOSi peal. Teave põhineb eeldusel, et kasutatakse CentOS7.

Versioonid on järgmised.

CentOS versioon7.6 (1810)
Apache versioon2.4.6

Sisukord

  1. paigaldada
  2. põhiülesanne
  3. kokkuvõte

1. paigaldada

Selles jaotises kirjeldatakse Apache'i konfigureerimist alates paigaldamisest kuni käivitamiseni.

1-1. Apache'i paigaldamine

Viige Apache'i paigaldamine läbi käsuga yum. Viige töö läbi root-kasutajana.

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

1-2. Käivituskontroll (http-juurdepääs)

Kontrollige lühidalt, kas see on kättesaadav. Apache (httpd) installeerimine käsuga yum võimaldab käsu apachectl. Kasutage seda Apache'i käivitamiseks.

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

Kui käsu 'apachectl status' täitmise tulemusena saadakse vastus 'Active: active (running)', on süsteem edukalt käivitunud.

Seejärel pääsete oma brauserist Apache'ile ligi. Seadistage http-õigused, kuna tulemüür (või iptables CentOS6 ja varasemate versioonide puhul) lubab CentOS7-s vaikimisi ainult ssh-juurdepääsu. Tahaksin ka https-i jaoks kollektiivse loa seadistust panna. Lisage ka valik "püsiv", et muuta konfiguratsioon püsivaks.

[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:

See on OK, kui 'http' ja 'https' on lisatud 'services'. Juurdepääs veebilehitseja kaudu. Minu puhul on serveri IP-aadress 192.168.50.10, nii et mul on juurdepääs "http://192.168.50.10". See on OK, kui ilmub järgmine lehekülg

Kui süsteem on edukalt käivitunud, peatage see.

[root@hostname ~]# apachectl stop

2. põhiülesanne

2-1. Logifaili väljundkausta loomine

Et hallata logimist /var/log/ all, looge httpd kataloog /var/log/ alla Apache'i logide kaustaks.

Õigused (permissions) peaksid olema 755. See seade lubab Apache'il kirjutada, kuid teised kasutajad saavad ainult lugeda. Kui teised kasutajad saavad kirjutada, saab logisid muuta.

'mkdir /var/log/httpd' ei ole vaja käivitada, kui samanimeline kataloog on juba loodud.

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

Kasutage viimast protseduuri Apache'i logi väljundi sihtkoha seadete muutmiseks.

See protseduur on ainult protseduur logide säilitamiseks mõeldud kausta loomiseks.

2-2. Domeeni seadistus

Muutke httpd.conf'is loetletud domeeni seadeid. Apache'i konfiguratsioon on põhimõtteliselt koondatud httpd.conf-i, nii et kui soovite konfiguratsiooni muuta, muutke httpd.conf-i. Domeene ei ole vaja luua, kui keskkond on lokaalne (ei ole Internetis avalikkusele avatud).

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

# Tühjendage märkus ja lubage seade ServerName. Domeeninimi määratakse vastavalt keskkonnale.

httpd.conf【Enne muutust】


#ServerName www.example.com:80

httpd.conf【pärast muutust】


ServerName domainname:80

2-3. SSL-moodulite ja konfiguratsioonifailide aktiveerimine

Lubage SSL, et võimaldada ligipääsu üle https. SSL-seadistused on seotud SEO-ga ja http ei ole eelkõige turvalisuse huvides hea mõte, nii et kui te ei pea kasutama http-d, kasutage https-d.

Installige ssl-moodul yumiga.

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

Paigaldamine yumiga võimaldab automaatselt ssl-moodulit, nii et teil on vaja ainult seda paigaldada. Samuti luuakse automaatselt konfiguratsioonifail. (/etc/httpd/conf.d/ssl.conf luuakse automaatselt.)

2-4. Muuda logi väljundrada

Muutke Apache'i logi väljundi sihtkoht äsja loodud logifaili väljundkaustaks. Muutke ainult ssl-konfiguratsioonifaili, kuna see seadistatakse hilisemas etapis nii, et sellele oleks juurdepääs ainult ssl (https) kaudu.

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


ssl.conf【Enne muutust】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~lühendamine~

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


ssl.conf【pärast muutust】


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

~lühendamine~

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

Ülaltoodud muudatus muudab logi väljundi sihtkoha aadressiks "/var/log/httpd".


'%t, %h' jne, see on logi vormindamise seade. Järgnevalt on esitatud loetelu vormingutest, mida võib sageli kasutada viitena.

【参考】

・%T:Taotluse töötlemiseks kuluv aeg (sekundites)

・%h:Kliendi hostinimi või IP-aadress. Püüab lahendada hostinimesid ainult siis, kui HostnameLookups on seatud olekusse On.

・%r:Taotluse esimene rida

・%b:Vastuse baidid (välja arvatud HTTP-pealkirjad). CLF-vorming, st - kui ühtegi baiti ei saadeta

・%D:Taotluse töötlemiseks kuluv aeg (mikrosekundites)

・%>s:HTTP staatus

2-5. SSL-sertifikaatide loomine

Sertifikaatide loomise kord. Eraettevõtete puhul on isesertifitseerimine hea. Avalikult kättesaadavate serverite puhul tuleks loobuda isesertifitseerimisest.

Tavapäraste sertifikaatide ja isesertifitseeritud sertifikaatide turvalisus ei erine. See võib olla erinevus sertifikaadi vahel, mida kolmas isik saab pidada usaldusväärseks, ja selle vahel, mida ei saa. (Ise sertifitseerimise korral muutub URL-riba punaseks.) Seega, avalikult kättesaadavate serverite puhul (serverid, mida näevad kolmandad osapooled), väljastage tavaline sertifikaat.

Apache'i vaikimisi sertifikaadi seaded on "/etc/pki/tls/certs/localhost.crt" ja "/etc/pki/tls/private/localhost.key".

Seadistused leiate jaotisest "SSLCertificateFile" ja "SSLCertificateKeyFile" jaotises "/etc/httpd/conf.d/ssl.conf".


【Isesertifitseerimiseks】

Iseenda sertifikaadi loomiseks käivitage järgmine käsk. Käivita root-kasutajana.

Käivitus 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' küsib vastust mitu korda, kõik Enteriga, pole probleemi. See on teave selle kohta, kes sertifikaadi väljastab (nt millises riigis ta elab ja milline on tema e-posti aadress). Kui väljastate tavalise sertifikaadi, sisestage õiged andmed ja seadistage see.

[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

【Tavaliste sertifikaatide puhul】

Tavalise sertifikaadi loomiseks käivitage järgmine käsk. Käivita root-kasutajana.

[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

Tavaliste sertifikaatide puhul ei piisa sellest protsessi lõpuleviimiseks. Töö hõlmab loodud faili "server.csr" üleandmist sertifitseerimisasutusele, et see väljastaks serveri sertifikaadi, ning väljastatud serveri sertifikaadi paigaldamist.

2-6. püsiv SSL (Secure Socket Layer)

See ei ole hea turvalisus, kui ligipääs toimub http kaudu, seega lisage seade, mis suunab https-le, kui ligipääs toimub http kaudu.

Võimalik on keelata ligipääs http kaudu, kuid kasutatavuse seisukohalt on soovitatav seadistada ümbersuunamine. Sooritage järgmised ülesanded root-kasutajana.

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

Lisage lõppu järgmine tekst.

httpd.conf


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

Seda seadistust on võimalik muuta nii, et http kaudu saabuvaid ligipääse käsitletakse https kaudu.

On öeldud, et see seade ei tööta, kui tuled üle https. (RewriteCond %{HTTPS} off)

Ärge unustage mainida, et ilma selle seadistuseta suunatakse ümber ka https-juurdepääsud, mille tulemuseks on lõputu tsükkel.

2-7. Aktiveerimise kinnitamine (https-juurdepääs).

Nüüd, kui erinevad seadistused on tehtud, kontrollige, et saidile on võimalik ligi pääseda https-i kaudu. Alustage kõigepealt.

[root@hostname ~]# apachectl start

Juurdepääs veebilehitseja kaudu. Sama nagu http-juurdepääsu puhul, kuid minu puhul on serveri IP-aadress 192.168.50.10, nii et mul on juurdepääs "http://192.168.50.10".

URL on muudetud "http://192.168.50.10" asemel "https://192.168.50.10", sest http ümbersuunamise seade on lisatud.

Nüüd, kui see on edukalt käivitatud, lõpetage Apache.

[root@hostname ~]# apachectl stop

2-8. Automaatne käivitusseadistus

Lõpuks, kuigi see ei ole kohustuslik, on raske käivitada Apache'i iga kord, kui server taaskäivitatakse, nii et Apache käivitub automaatselt, kui server käivitatakse. See registreerib ka käsu systemctl. Pange tähele, et see protseduur on CentOS7 jaoks, nii et kui te kasutate midagi muud kui CentOS7, peate kasutama selleks käsku Service.

Looge fail 'apache.service' ja kirjeldage vajalikud seaded.

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

Esitatakse järgmine teave.

[Unit]
#Kirjeldus.
Description=Apache
#Täitmiseelne ja -järgne kontroll.
#Before=xxx.service
#After=xxx.service

[Service]
#Kasutaja ja grupi määramine
User=root
Group=root
#Kui see on aktiveeritud, määrake olekuks "Aktiveeritud".
Type=oneshot
RemainAfterExit=yes
#Käivitage, peatage ja laadige uuesti.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Runlevel 3 samaväärsed seaded.
WantedBy=multi-user.target

Kui olete selle kirjeldamise lõpetanud, registreerige see käsuga 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. kokkuvõte

Me oleme kirjeldanud Apache'i paigaldamisel vajalikku algkonfiguratsiooni.

Põhimõtteliselt töötab Apache mingil määral vaikimisi seadetega, kuid kui te seda tegelikult kohandate, vaadake palun logi väljundi sihtkoha seadeid ja SSL-sätteid, mida peaksite süsteemi käitamisel muutma.

Aitäh, et vaatasite kuni lõpuni.