Jetons un coup d'œil à Apache pour apprendre Linuc2. Pour être honnête, je ne me souciais pas vraiment des paramètres détaillés car ils peuvent être utilisés en installant avec yum. Si vous éditez httpd.conf et que vous le vérifiez avec apache configtest etc., une erreur commençant par AH de base s'affiche, il est donc relativement facile d'y accéder.
Personnellement, j'installe toujours uniquement avec yum, veuillez donc vous référer à l'article ci-dessous. Configurer, compiler, installer
Vous devez également installer APR et APR-util pour compiler à partir des sources.
# yum install -y httpd
Directif | Explication |
---|---|
/etc/httpd/conf/httpd.conf | Fichier de configuration principal |
/etc/httpd/conf.d | Répertoire pour stocker les fichiers de configuration auxiliaires |
ssl.conf | SSL/Paramètres TLS |
php.conf | Paramètres du module PHP |
perl.conf | Paramètres du module Perl |
htpd.conf#
Valeur de réglage du nom du directeur
--Lors de la spécification du champ d'application
<Nom du fichier Files> ... </ Files>
<Nom du répertoire du répertoire> ... </ Répertoire>
<LOcation URL>...</Location>
Directif | Explication |
---|---|
ServerTokens | information sur la version |
ServerRoot | Top répertoire |
ServerName | nom d'hôte |
ServerAdmin | adresse mail |
StartServers | Numéro au démarrage |
MinSpareServers | Nombre minimum de processus serveur |
MaxSpareServers | Nombre maximum de processus serveur |
ServerLimits | Nombre maximum de processus enfants pouvant être définis |
Timeout | Heure à laquelle la connexion du client expire |
KeepAlive | Garder en vie activé/Invalide |
KeepAliveRequests | Nombre maximum de requêtes par connexion TCP |
KeepAliveTimeout | Délai d'expiration pour une connexion TCP |
Listen | Port de veille |
User | Exécution de l'utilisateur du processus enfant |
Group | Groupe d'exécution du processus enfant |
DocumentRoot | Répertoire racine du document |
UserDir | Annuaire public pour les utilisateurs généraux |
DirectoryIndex | Nom de fichier à renvoyer comme index de répertoire |
ErrorLog | Fichier journal qui enregistre les erreurs |
LogLevel | Niveau du journal des erreurs |
LogFormat | Éléments et formats à enregistrer |
CustomLog | journal d'accès |
HostnameLookups | Effectuez une recherche DNS inversée et obtenez le nom d'hôte à partir de l'adresse IP de la source d'accès |
Alias | Vous pourrez voir des endroits autres que l'arborescence racine du document. |
ScliptAlias | Répertoire de scripts CGI |
ErrorDocument | Spécifiez ce qu'il faut faire si une erreur se produit |
Pour utiliser un fichier externe (.htaccess) pour remplacer les paramètres dans httpd.conf, utilisez le répertoire ** AccessFileName **.
httpd.conf
AccessFileName .htaccess
Pour autoriser l'utilisation de fichiers de configuration externes, spécifiez dans le répertoire ** AllowOverride **.
L'exemple suivant active l'authentification et le contrôle d'accès dans .htaccess.
httpd.conf
AllowOverride AuthConfig Limit
Sous-commande | Explication |
---|---|
AuthConfig | Authentification |
Indexes | DirectoryIndex |
Fileinfo | Contrôle du type de fichier |
Limit | Order,Allow,Deny |
Options | Options |
None | .Désactiver les modifications dans htaccess |
All | .Activer tous les paramètres modifiables dans htaccess |
apachectl#
Sous-commande | Explication |
---|---|
start | Commencez |
stop | Arrêtez |
restart | Redémarrer |
graceful | Démarrer si arrêté, attendre le redémarrage si la demande est redémarrée |
reload | Lire le fichier de paramètres |
configtest | Vérifiez la syntaxe du fichier de configuration |
Pour charger le module, spécifiez:
httpd.conf
LoadModule perl_module modules/mod_perl.so
Après avoir installé Apache, utilisez ** apxs ** pour inclure le module. Après cela, ajoutez-le dans le répertoire LoadModule comme dans ↑. Pour installer apxs, installez le package httpd-devel.
# yum install httpd-devel
# apxs -i -c mod_foobar.c
Les modules intégrés sont ** httpd -l ** ** httpd -M ** pour afficher la liste des modules intégrés et des modules DSO et également vérifier la syntaxe du fichier de configuration Utiliser.
# httpd -l
# httpd -M
Jetons un coup d'œil à php, qui est souvent utilisé comme application WEB.
# yum install -y php
Le fichier / etc / httpd / conf.d / php.conf
est ajouté.
Créez un fichier comme celui ci-dessous et redémarrez Apache pour le voir.
/var/www/html/phpinfo.php
<?php
phpinfo();
?>
Pour utiliser l'authentification BASIC, ajoutez des paramètres d'authentification utilisateur à httpd.conf et préparez un fichier de mot de passe dédié.
Directif | Explication |
---|---|
AuthType | Basic |
AuthName | Message à afficher dans la boîte de dialogue au moment de l'authentification |
AuthUserfile | Nom du fichier de mot de passe |
AuthGroupfile | Nom du fichier de groupe à authentifier |
require | Utilisateurs accessibles,valid-userSi est spécifié, l'accès est accordé aux utilisateurs qui ont une entrée dans le fichier de mots de passe. |
httpd.conf
<Directory "/var/www/html/private-area">
AuthType Basic
AuthName "Please enter your ID and password"
AuthUserfile /etc/httpd/conf/.htpasswd
require valid-user
</Directory>
Utilisez ** htpasswd ** pour définir l'utilisateur et le mot de passe utilisés pour l'authentification.
# htpasswd -c /etc/httpd/conf/htpasswd linuc1
New password:
Re-type new password:
Adding password for user linuc
# cat /etc/httpd/conf/.htpasswd
linuc:$apr1$szHx1lmc$PVMPwHwo/7T0bnlbRhAFP0
Pour configurer l'authentification BASIC groupe par groupe, spécifiez le fichier de mot de passe de groupe dans AuthGroupfile.
Le format du fichier de mot de passe est le suivant.
Nom du groupe: Nom d'utilisateur 1 Nom d'utilisateur 2 ...
Chaque utilisateur spécifié a un mot de passe défini avec htpasswd.
Dans require, spécifiez le nom du groupe au format suivant.
nécessite un nom de groupe de groupe
Directif | Explication |
---|---|
AuthType | Digest |
AuthName | Zone d'authentification |
AuthUserfile | Nom du fichier de mot de passe |
AuthDigestGroupfile | Nom du fichier de groupe à authentifier |
require | Utilisateurs accessibles,valid-userSi est spécifié, l'accès est accordé aux utilisateurs qui ont une entrée dans le fichier de mots de passe. |
httpd.conf
<Directory "/var/www/html/secret-area">
AuthType Digest
AuthName "secret-area"
AuthUserfile /etc/httpd/conf/.htdigestfile
require valid-user
</Directory>
Utilisez ** htdigest ** pour créer des utilisateurs et modifier les mots de passe pour l'authentification Digest.
# htdigest -c /etc/httpd/conf/.htdigest secret-area linuc2
Adding password for linuc2 in realm secret-area.
New password:
Re-type new password:
# cat /etc/httpd/conf/.htdigest
linuc2:secret-area:2b2b3ade579cc9e0121b4f1df227db6b
Si vous souhaitez contrôler l'accès par adresse IP, nom d'hôte, nom de domaine, etc., utilisez la directive ** require **. Cette fonctionnalité est fournie par ** authz_host_module **.
Par exemple, pour refuser l'accès à partir de 172.31.0.0/16 et autoriser l'accès à partir d'autres hôtes, spécifiez:
require all granted
require not ip 172.31.0.0/16
Vous pouvez gérer plusieurs sites Web sur un hôte.
Configurez une adresse IP et plusieurs domaines sur un hôte. Décrivez dans la directive ** VirtualHost **. Avec des paramètres DNS appropriés, chaque site Web peut fonctionner indépendamment.
<VirtualHost *:80>
ServerName web.example.com
DocumentRoot /var/www/virtual/web
<VirtualHost *:80>
ServerName www.example.net
DocumentRoot /var/www/virtual/example
</VirtualHost>
Configurez plusieurs adresses IP et plusieurs domaines sur un hôte. Décrivez dans la directive ** VirtualHost **. Chaque adresse IP doit être spécifiée dans la directive ** Listen **.
Listen 192.168.1.10:80
Listen 192.168.1.11:80
<VirtualHost 192.168.1.10:80>
ServerName web.example.com
DocumentRoot /var/www/virtual/web
<VirtualHost 192.168.1.11:80>
ServerName www.example.net
DocumentRoot /var/www/virtual/example
</VirtualHost>
** mod_status **: Informations sur l'activité du serveur
LoadModule status_module modules/mod_status.so
<Location /server-status>
SetHandler server-status
</Location>
** mod_info **: informations sur les paramètres du serveur
LoadModule info_module modules/mod_info.so
<Location /server-info>
SetHandler server-info
</Location>
SSL/TLS##
SSL est pris en charge en utilisant ** mod_ssl **.
Vous devez obtenir le certificat de site auprès de l'autorité de certification.
① Créez une clé publique et une clé de cryptage. (2) Envoyez la clé publique créée à l'autorité de certification (CA) avec les documents certifiant l'identité de l'entreprise utilisatrice. ③ CA émet un certificat et le renvoie. (À l'aide de ce certificat, le serveur Web s'identifie auprès du navigateur Web.) ④ Installez le certificat envoyé sur le serveur Web.
Les certificats de serveur sont émis pour les adresses IP ou les noms de domaine. Ici, nous allons prendre un certificat auto-signé (une méthode de signature d'un certificat par l'autorité de certification, s'utilisant comme sa propre autorité de certification). Dans CentOS, un script appelé CA.sh est préparé dans le répertoire où SSL est installé, alors copiez-le et créez-le de manière interactive.
# cd /etc/pki/tls/misc
# ./CA -newca
Clé privée: / etc / pki / CA / private / cakey.pem
Clé publique: / etc / pki / CA / cacert.pem
Est créé comme ça.
Créez la clé privée du serveur ** server.key ** requise pour créer un serveur HTTP compatible SSL.
# openssl genrsa -out server.key 2048
Créez une demande d'émission de certificat (CSR) ** server.csr ** qui oblige l'autorité de certification à émettre un certificat.
# openssl -req -new -key server.key -out server.csr
Le certificat signe le fichier de demande d'émission de certificat et crée un certificat de serveur ** server.crt **.
# openssl ca -out server.crt -infiles server.csr
Déplacez la clé privée du serveur et le certificat du serveur dans le répertoire approprié et écrivez les paramètres requis dans httpd.conf.
SSL/Directives relatives à TLS | Explication |
---|---|
SSLEngine | Efficacité/Invalide |
SSLProtocol | version |
SSLCipherSuite | Algorithme cryptographique |
SSLCertificateFile | Fichier de certificat de serveur |
SSLCertificateKeyFile | Fichier de clé privée du serveur |
SSLCertificateChainFile | Fichier de certificat CA intermédiaire |
SSLCACertificateFile | Fichier d'émission de certificat CA pour l'émission de certificat client |
SSLCACertificatePAth | Répertoire d'émission de certificats d'autorité de certification pour l'émission de certificats clients |
SSLVerifyClient | Niveau d'authentification client |
LoadModule ssl_module modules/mod_ssl.so
Listen 443 https
<VirtualHost _default_:443>
ServerName www.example.net:443
DocumentRoot "/var/www/html"
ErrorLog logs/ssl_errorlog
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA:!DH
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
</VirtualHost>
/var/log/httpd/access_log
Spécifiez le format avec la directive ** LogFormat ** et Associez le nom du fichier journal au format avec la directive ** CustomLog **.
httpd.conf
LogFormat
CustomLog logs/access_log combined
/var/log/httpd/error_log
Vous pouvez spécifier le niveau de journal à enregistrer avec la directive LogLevel.
httpd.conf
LogLevel
Recommended Posts