Configurazione iniziale richiesta dall'installazione di Apache su CentOS all'avvio.


Data di pubblicazione:8 dicembre 2020.



INFOMARTION > Configurazione iniziale richiesta dall'installazione di Apache su CentOS all'avvio.

Panoramica.

Questa è la procedura di configurazione iniziale necessaria per installare e avviare Apache su CentOS. Le informazioni si basano sull'ipotesi di utilizzo di CentOS7.

Le versioni sono le seguenti.

Versione CentOS7.6 (1810)
Versione Apache2.4.6

Indice dei contenuti

  1. installare
  2. impostazione di base
  3. sintesi

1. installare

Questa sezione descrive la configurazione di Apache dall'installazione all'avvio.

1-1. Installazione di Apache

Eseguire l'installazione di Apache con il comando yum. Eseguire il lavoro come utente root.

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

1-2. Controllo dell'avvio (accesso http)

Verificare brevemente se è accessibile. L'installazione di Apache (httpd) con il comando yum abilita il comando apachectl. Utilizzare questa opzione per avviare 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.

Se il risultato dell'esecuzione del comando "apachectl status" è "Active: active (running)", il sistema è stato avviato correttamente.

Quindi accedere ad Apache dal browser. Impostare i permessi http poiché il firewall (o iptables per CentOS6 e precedenti) consente solo l'accesso ssh per impostazione predefinita su CentOS7. Vorrei anche inserire un'impostazione di autorizzazione collettiva per https. Aggiungere anche l'opzione "permanente" per rendere la configurazione permanente.

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

È corretto se 'http' e 'https' sono stati aggiunti a 'servizi'. Accesso tramite browser. Nel mio caso, l'indirizzo IP del server è 192.168.50.10, quindi accedo a "http://192.168.50.10". Se viene visualizzata la seguente pagina è tutto ok

Una volta avviato con successo il sistema, arrestarlo.

[root@hostname ~]# apachectl stop

2. impostazione di base

2-1. Creazione della cartella di output del file di log

Per gestire la registrazione sotto /var/log/, creare una cartella httpd sotto /var/log/ come cartella per i log di Apache.

Le autorizzazioni (permessi) devono essere 755. Questa impostazione consente ad Apache di scrivere, ma agli altri utenti di leggere. Se altri utenti possono scrivere, i registri possono essere manomessi.

'mkdir /var/log/httpd' non deve essere eseguito se è già stata creata una directory con lo stesso nome.

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

Utilizzare quest'ultima procedura per modificare le impostazioni di destinazione del log di Apache.

Questa procedura serve solo a creare una cartella in cui memorizzare i registri.

2-2. Impostazione del dominio

Modificare le impostazioni del dominio elencate in httpd.conf. La configurazione di Apache è fondamentalmente centralizzata in httpd.conf, quindi se si vuole cambiare la configurazione, si deve modificare httpd.conf. Non è necessario impostare i domini se l'ambiente è locale (non aperto al pubblico su Internet).

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

# Togliere il commento e abilitare l'impostazione ServerName. Il nome del dominio viene impostato in base all'ambiente.

httpd.conf【Prima del cambiamento】


#ServerName www.example.com:80

httpd.conf【dopo la modifica】


ServerName domainname:80

2-3. Attivazione dei moduli SSL e dei file di configurazione

Abilitare SSL per consentire l'accesso tramite https. Le impostazioni SSL sono legate alla SEO e l'http non è una buona idea per motivi di sicurezza, quindi, a meno che non dobbiate usare l'http, usate l'https.

Installare il modulo ssl con yum.

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

L'installazione con yum abilita automaticamente il modulo ssl, quindi è sufficiente installarlo. Viene creato automaticamente anche un file di configurazione. (/etc/httpd/conf.d/ssl.conf viene creato automaticamente).

2-4. Modificare il percorso di uscita del log

Cambiare la destinazione di output del log di Apache nella cartella di output del file di log appena creato. Modificare solo il file di configurazione ssl, poiché in un passaggio successivo sarà impostato per essere accessibile solo tramite ssl (https).

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


ssl.conf【Prima del cambiamento】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~abbreviazione~

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


ssl.conf【dopo la modifica】


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

~abbreviazione~

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

La modifica precedente cambia la destinazione dell'output di log in "/var/log/httpd".


%t, %h", ecc. è l'impostazione della formattazione del registro. Di seguito è riportato un elenco di formati che possono essere utilizzati frequentemente come riferimento.

【参考】

・%T:Tempo necessario per elaborare la richiesta (secondi)

・%h:Nome host o indirizzo IP del client. Tenta di risolvere i nomi di host solo se HostnameLookups è impostato su On

・%r:Prima riga della richiesta

・%b:Byte della risposta (escluse le intestazioni HTTP). formato CLF, vale a dire che se nessuno dei byte è inviato

・%D:Tempo necessario per elaborare la richiesta (microsecondi)

・%>s:Stato HTTP

2-5. Creazione di certificati SSL

Procedura per la creazione di certificati. L'autocertificazione va bene per le operazioni private. Per i server disponibili al pubblico, l'autocertificazione dovrebbe essere scoraggiata.

Non c'è alcuna differenza di sicurezza tra i normali certificati e gli autocertificati. Questo può fare la differenza tra un certificato che può essere giudicato affidabile da terzi e uno che non lo è. (Con l'autocertificazione, la barra dell'URL diventa rossa). Quindi, per i server disponibili al pubblico (server visibili a terzi), emettete un normale certificato.

Le impostazioni predefinite dei certificati per Apache sono "/etc/pki/tls/certs/localhost.crt" e "/etc/pki/tls/private/localhost.key".

Le impostazioni si trovano in "SSLCertificateFile" e "SSLCertificateKeyFile" in "/etc/httpd/conf.d/ssl.conf".


【Per l'autocertificazione】

Per creare un autocertificato, eseguire il seguente comando. Eseguire come utente root.

L'esecuzione di 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' richiederà una risposta diverse volte, tutte con Invio, senza problemi. Si tratta di informazioni su chi rilascia il certificato (ad esempio, in quale Paese vive e qual è il suo indirizzo e-mail). Se state emettendo un normale certificato, inserite le informazioni corrette e impostatelo.

[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

【Per i certificati normali】

Per creare un certificato normale, eseguire il seguente comando. Eseguire come utente 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

Per i certificati regolari questo non è sufficiente per completare il processo. Il lavoro consiste nel consegnare il file "server.csr" creato all'Autorità di certificazione per ottenere un certificato del server e nell'installare il certificato del server che è stato rilasciato.

2-6. permanente SSL (Secure Socket Layer)

Non è una buona sicurezza se l'accesso avviene tramite http, quindi aggiungere un'impostazione per reindirizzare a https se l'accesso avviene tramite http.

È possibile vietare l'accesso via http, ma dal punto di vista dell'usabilità si consiglia di impostare un reindirizzamento. Eseguire le seguenti operazioni come utente root.

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

Aggiungere alla fine quanto segue.

httpd.conf


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

È possibile modificare questa impostazione in modo che gli accessi provenienti da http siano gestiti da https.

Si afferma che questa impostazione non funziona se si arriva tramite https. (RewriteCond %{HTTPS} off)

Non dimenticate che senza questa impostazione, anche gli accessi https saranno reindirizzati, dando luogo a un ciclo infinito.

2-7. Conferma dell'attivazione (accesso https).

Una volta completate le varie impostazioni, verificate che il sito sia accessibile via https. Avviare prima di tutto.

[root@hostname ~]# apachectl start

Accesso tramite browser. Come per l'accesso http, ma nel mio caso l'indirizzo IP del server è 192.168.50.10, quindi accedo a "http://192.168.50.10".

L'URL viene modificato da "http://192.168.50.10" a "https://192.168.50.10" perché l'impostazione di reindirizzamento http è inclusa.

Ora che l'avvio è avvenuto con successo, si deve arrestare Apache.

[root@hostname ~]# apachectl stop

2-8. Impostazione dell'avvio automatico

Infine, anche se non è obbligatorio, è difficile avviare Apache ogni volta che il server viene riavviato, quindi viene messa a punto una configurazione in modo che Apache si avvii automaticamente all'avvio del server. Si registra anche al comando systemctl. Si noti che questa procedura si riferisce a CentOS7, quindi se si utilizza qualcosa di diverso da CentOS7, è necessario utilizzare il comando Service.

Creare un file 'apache.service' e descrivere le impostazioni necessarie.

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

Vengono fornite le seguenti informazioni.

[Unit]
#Descrizione.
Description=Apache
#Controllo pre e post esecuzione.
#Before=xxx.service
#After=xxx.service

[Service]
#Designazione di utenti e gruppi
User=root
Group=root
#Una volta attivato, impostare lo stato su Attivato.
Type=oneshot
RemainAfterExit=yes
#Avvio, arresto e ricarica.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Impostazioni equivalenti al Runlevel 3.
WantedBy=multi-user.target

Una volta terminata la descrizione, registrarla con il comando 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. sintesi

Abbiamo descritto la configurazione iniziale richiesta al momento dell'installazione di Apache.

Apache funziona fondamentalmente in una certa misura con le impostazioni predefinite, ma se si desidera personalizzarlo, si prega di fare riferimento alle impostazioni di destinazione dell'output di log e alle impostazioni SSL, che devono essere modificate durante il funzionamento del sistema.

Grazie per aver guardato fino alla fine.




■INFORMATION

Fare clic qui per accedere alla pagina superiore di INFORMAZIONI.


■PROFILE

Cliccare qui per un profilo.


■Dettagli di contatto.

Per richieste di informazioni sull'articolo, contattateci qui.