Pradinė konfigūracija reikalinga nuo "Apache" įdiegimo "CentOS" sistemoje iki paleidimo.


Paskelbimo data:2020 m. gruodžio 8 d.



INFOMARTION > Pradinė konfigūracija reikalinga nuo "Apache" įdiegimo "CentOS" sistemoje iki paleidimo.

Apžvalga.

Tai pradinė konfigūravimo procedūra, kurios reikia norint įdiegti ir paleisti "Apache" "CentOS" sistemoje. Informacija pagrįsta prielaida, kad naudojama "CentOS7".

Versijos yra šios.

CentOS versija7.6 (1810)
"Apache" versija2.4.6

Turinys

  1. įdiegti
  2. pagrindinis nustatymas
  3. santrauka

1. įdiegti

Šiame skyriuje aprašoma "Apache" konfigūracija nuo įdiegimo iki paleidimo.

1-1. "Apache" diegimas

Atlikite "Apache" diegimą naudodami komandą yum. Darbą atlikite kaip root naudotojas.

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

1-2. Įjungimo patikrinimas (http prieiga)

Trumpai patikrinkite, ar jis prieinamas. Įdiegus "Apache" (httpd) komandą yum, įjungiama komanda apachectl. Naudokite tai, kad paleistumėte "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.

Jei įvykdžius komandą "apachectl status" grąžinama reikšmė "Active: active (veikia)", sistema sėkmingai paleista.

Tada pasiekite "Apache" iš naršyklės. Nustatykite http leidimus, nes ugniasienė (arba "iptables" (CentOS6 ir ankstesnėse sistemose) pagal numatytuosius nustatymus CentOS7 leidžia tik ssh prieigą. Taip pat norėčiau įvesti kolektyvinį leidimo nustatymą https. Taip pat pridėkite parinktį "nuolatinis", kad konfigūracija būtų nuolatinė.

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

Neblogai, jei į "services" pridėta "http" ir "https". Prieiga per naršyklę. Mano atveju serverio IP adresas yra 192.168.50.10, todėl prisijungiu prie "http://192.168.50.10". Gerai, jei rodomas šis puslapis

Sėkmingai paleidę sistemą, ją sustabdykite.

[root@hostname ~]# apachectl stop

2. pagrindinis nustatymas

2-1. Žurnalo failo išvesties aplanko sukūrimas

Norėdami tvarkyti registravimą pagal /var/log/, sukurkite "httpd" katalogą pagal /var/log/ kaip aplanką "Apache" žurnalams.

Leidimai (permissions) turėtų būti 755. Šis nustatymas leidžia "Apache" rašyti, bet kiti naudotojai gali tik skaityti. Jei kiti naudotojai gali rašyti, žurnalus galima suklastoti.

'mkdir /var/log/httpd' nereikia atlikti, jei jau sukurtas to paties pavadinimo katalogas.

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

Pastarąja procedūra pakeiskite "Apache" žurnalo išvesties paskirties vietos nustatymus.

Ši procedūra skirta tik aplankui, kuriame bus saugomi žurnalai, sukurti.

2-2. Domeno nustatymas

Pakeiskite domeno nustatymus, nurodytus httpd.conf. "Apache" konfigūracija iš esmės yra sutelkta httpd.conf, todėl jei norite pakeisti konfigūraciją, pakeiskite httpd.conf. Jei aplinka yra vietinė (viešai neprieinama internete), domenų nustatyti nereikia.

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

# Panaikinkite ir įjunkite nustatymą ServerName. Domeno vardas nustatomas atsižvelgiant į aplinką.

httpd.conf【Prieš pakeitimą】


#ServerName www.example.com:80

httpd.conf【po pakeitimo】


ServerName domainname:80

2-3. SSL modulių ir konfigūracijos failų aktyvavimas

Įjunkite SSL, kad būtų galima prisijungti per https. SSL nustatymai yra susiję su SEO, o http pirmiausia nėra gera idėja saugumo sumetimais, todėl, jei neprivalote naudoti http, naudokite https.

Įdiekite ssl modulį naudodami yum.

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

Diegimas naudojant yum automatiškai įjungia ssl modulį, todėl jums tereikia jį įdiegti. Konfigūracijos failas taip pat sukuriamas automatiškai. (/etc/httpd/conf.d/ssl.conf sukuriamas automatiškai.)

2-4. Pakeisti žurnalo išvesties kelią

Pakeiskite "Apache" žurnalo išvesties paskirties vietą į ką tik sukurtą žurnalo failo išvesties aplanką. Pakeiskite tik ssl konfigūracijos failą, nes vėlesniame žingsnyje jis bus nustatytas taip, kad būtų pasiekiamas tik per ssl (https).

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


ssl.conf【Prieš pakeitimą】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~sutrumpinimas~

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


ssl.conf【po pakeitimo】


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

~sutrumpinimas~

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

Pirmiau pateiktas pakeitimas pakeičia žurnalo išvesties paskirties vietą į "/var/log/httpd".


'%t, %h' ir t. t., tai yra žurnalo formatavimo nustatymas. Toliau pateikiamas dažnai naudojamų formatų sąrašas.

【参考】

・%T:Užklausos apdorojimo laikas (sekundės)

・%h:Kliento prieglobos vardas arba IP adresas. Mėginti išspręsti prieglobsčio vardus tik tada, jei HostnameLookups nustatyta į Įjungta

・%r:Pirmoji užklausos eilutė

・%b:Atsakymo baitai (išskyrus HTTP antraštes). CLF formatas, t. y. jei nesiunčiamas nė vienas baitas.

・%D:Užklausos apdorojimo laikas (mikrosekundės)

・%>s:HTTP būsena

2-5. SSL sertifikatų kūrimas

Sertifikatų kūrimo procedūra. Savarankiškas sertifikavimas tinka privačioms operacijoms. Viešai prieinamuose serveriuose savęs sertifikavimas turėtų būti nerekomenduojamas.

Įprastų sertifikatų ir savęs sertifikatų saugumas nesiskiria. Tai gali būti skirtumas tarp sertifikato, kurį trečioji šalis gali vertinti kaip patikimą, ir sertifikato, kurį trečioji šalis negali vertinti kaip patikimą. (Atlikus savęs sertifikavimą, URL juosta tampa raudona.) Taigi viešai prieinamiems serveriams (serveriams, kuriuos mato trečiosios šalys) išduokite įprastą sertifikatą.

Numatytieji "Apache" sertifikatų nustatymai yra "/etc/pki/tls/certs/localhost.crt" ir "/etc/pki/tls/private/localhost.key".

Nustatymus galima rasti "SSLCertificateFile" ir "SSLCertificateKeyFile" failuose "/etc/httpd/conf.d/ssl.conf".


【Savarankiškam sertifikavimui】

Norėdami sukurti savęs sertifikatą, atlikite šią komandą. Paleiskite kaip root naudotojas.

Paleidus 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt', atsakymo bus paprašyta kelis kartus, visus kartus įveskite Enter, jokių problemų. Tai bus informacija apie tai, kas išduoda sertifikatą (pvz., kurioje šalyje jis gyvena ir koks jo el. pašto adresas). Jei išduodate įprastą sertifikatą, įveskite teisingą informaciją ir jį nustatykite.

[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

【Įprastiems sertifikatams】

Norėdami sukurti įprastą sertifikatą, atlikite šią komandą. Paleiskite kaip root naudotojas.

[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

Įprastiniams sertifikatams to nepakanka procesui užbaigti. Darbas apima sukurto "server.csr" perdavimą sertifikatų tarnybai, kad būtų išduotas serverio sertifikatas, ir išduoto serverio sertifikato įdiegimą.

2-6. nuolatinis SSL (Secure Socket Layer)

Tai nėra geras saugumas, jei prieiga vykdoma per http, todėl pridėkite nustatymą nukreipti į https, jei prieiga vykdoma per http.

Galima uždrausti prieigą per http, tačiau patogumo požiūriu rekomenduojama nustatyti nukreipimą. Atlikite šias užduotis kaip root naudotojas.

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

Pabaigoje įrašykite šiuos žodžius.

httpd.conf


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

Šį nustatymą galima pakeisti taip, kad prieigos, įeinančios per http, būtų tvarkomos per https.

Teigiama, kad šis nustatymas neveikia, jei ateinate per https. (RewriteCond %{HTTPS} off)

Nepamirškite paminėti, kad be šio nustatymo https prieigos taip pat bus nukreipiamos, todėl susidarys nesibaigiantis ciklas.

2-7. Aktyvinimo patvirtinimas (https prieiga).

Atlikę įvairius nustatymus, patikrinkite, ar prie svetainės galima prisijungti per https. Pirmiausia pradėkite darbą.

[root@hostname ~]# apachectl start

Prieiga per naršyklę. Taip pat, kaip ir http prieigos atveju, tačiau mano atveju serverio IP adresas yra 192.168.50.10, todėl prisijungiu prie "http://192.168.50.10".

URL pakeistas iš "http://192.168.50.10" į "https://192.168.50.10", nes įtrauktas http nukreipimo nustatymas.

Sėkmingai paleidę programą, sustabdykite "Apache".

[root@hostname ~]# apachectl stop

2-8. Automatinio paleidimo nustatymas

Galiausiai, nors tai nėra privaloma, sunku paleisti "Apache" kiekvieną kartą paleidžiant serverį iš naujo, todėl nustatoma konfigūracija, kad "Apache" būtų paleidžiamas automatiškai, kai paleidžiamas serveris. Ji taip pat registruojama į komandą systemctl. Atkreipkite dėmesį, kad ši procedūra skirta "CentOS7", todėl jei naudojate kitą nei "CentOS7" operacinę sistemą, turėsite naudoti komandą "Service".

Sukurkite failą "apache.service" ir aprašykite reikiamus nustatymus.

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

Pateikiama ši informacija.

[Unit]
#Aprašymas.
Description=Apache
#kontrolė prieš vykdymą ir po jo.
#Before=xxx.service
#After=xxx.service

[Service]
#Naudotojo ir grupės paskyrimas
User=root
Group=root
#Suaktyvinus būseną, nustatykite būseną Aktyvuota.
Type=oneshot
RemainAfterExit=yes
#Paleiskite, sustabdykite ir perkraukite.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#3 lygmens lygiaverčiai nustatymai.
WantedBy=multi-user.target

Baigę jį aprašyti, užregistruokite jį komanda 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. santrauka

Aprašėme pradinę konfigūraciją, kurios reikia įdiegus "Apache".

"Apache" iš esmės iš dalies veikia su numatytaisiais nustatymais, tačiau jei iš tikrųjų jį pritaikysite, atkreipkite dėmesį į žurnalo išvesties paskirties vietos nustatymus ir SSL nustatymus, kuriuos turėtumėte pakeisti naudodami sistemą.

Dėkojame, kad žiūrėjote iki pabaigos.