Comment installer et sécuriser Apache sur Ubuntu 20.04

Comment installer et sécuriser Apache sur Ubuntu 20.04

Ce tutoriel vous aidera à installer le serveur Web Apache sur Ubuntu 20.04 Système d'exploitation LTS (focal fossa). Vous apprendrez également à sécuriser votre domaine à l'aide du certificat SSL, Let's Encrypt. Ce tutoriel fonctionnera également sur Ubuntu 18.04, Ubuntu 16.04 et Ubuntu 19.10 systèmes Linux.

Avant de commencer

Avant de commencer votre travail:

  • Running Ubuntu 20.04 système avec les privilèges sudo accès à la coquille.
  • Compléter les instructions de configuration du serveur initial
  • Un nom de domaine enregistré et indiqué vers l'adresse IP publique de votre serveur. Pour ce tutoriel, nous utilisons WebHost.técadmin.net, qui est pointé vers notre serveur.

Étape 1 - Installation d'Apache

Les packages Apache sont disponibles dans les référentiels logiciels par défaut sur UBUNTS. Vous pouvez facilement l'installer à l'aide de l'outil de gestion des packages conventionnelle.

Tout d'abord, mettez à jour l'index local des packages pour refléter les dernières modifications en amont. Puis installez le serveur Web Apache2.

sudo apt mise à jour sudo apt install apache2 

Après la confirmation, APT installera Apache et autres dépendances requises sur votre système.

Étape 2 - Testez votre serveur Web

Une fois l'installation terminée, le service Apache commencera automatiquement sur votre système Ubuntu. Vous pouvez trouver l'état du service Apache en exécutant la commande suivante:

Sudo Systemctl Status apache2 

Exemple de sortie:

● Apache2.Service - Le serveur http Apache chargé: chargé (/ lib / systemd / system / apache2.service; activé; Vendor Preset: Activé) Actif: Active (Running) depuis Sun 2020-04-26 05:28:08 UTC; Il y a 10min Docs: https: // httpd.apache.org / docs / 2.4 / PID Main: 15464 (Apache2) Tâches: 55 (Limite: 2283) Mémoire: 6.9m cgroup: / système.tranche / apache2.Service ├─15464 / usr / sbin / apache2 -k start ├─18646 / usr / sbin / apache2 -k start └─18647 / usr / sbin / apache2 -k start avr 26 05:28:08 tecadmin systemd [1]: Démarrage du serveur HTTP Apache… 26 avril 05:28:08 Tecadmin Systemd [1]: Démarré le serveur Apache HTTP. 

Le statut de résultat comme "Actif: actif (en cours d'exécution)" signifie que le service Apache a commencé avec succès. Cependant, la meilleure façon de tester le serveur Web, demandez une page d'Apache dans le navigateur Web.

Vous verrez la page de destination par défaut Apache. Cela signifie que le serveur Web Apache s'exécute correctement sur votre système.

Étape 3 - Créer un hôte virtuel

À l'aide d'hôtes virtuels, vous pouvez héberger plus d'un domaine à partir d'un seul serveur. Un hôte virtuel résume la configuration d'un domaine. Nous allons configurer un hôte virtuel avec un sous-domaine appelé webhost.técamine.net, mais vous devriez le remplacer par votre propre nom de domaine.

Commençons par un répertoire pour notre domaine comme suit:

sudo mkdir / var / www / webhost sudo chmod -r 755 / var / www / webhost sudo chown -r www-data: www-data / var / www / webhost 

Ensuite, créez un échantillon d'index.Page HTML à héberger sur ce sous-domaine. Modifiez ce fichier dans votre éditeur de texte préféré comme Vim ou Nano:

nano / var / www / webroot / index.html 

Ajouter l'exemple de contenu HTML suivant:

Bienvenue à Tecadmin.filet!

Succès!!!

12345678 Bienvenue à Tecadmin.filet!

Succès!!!

Enregistrer le fichier et le fermer.

Avec le serveur Apache nouvellement installé, vous verrez un fichier de configuration d'hôte virtuel par défaut situé sur etc / apache2 / sites disponible / 000.confli. Mais c'est un bon Habbit pour créer un fichier de configuration séparé pour chaque hôte virtuel. Créez donc un nouveau fichier hôte virtuel en AS / etc / apache2 / sites-disponible / webhost.técadmin.filet.conf:

sudo nano / etc / apache2 / sites-disponible / webhost.técadmin.filet.confli 

Ajouter la configuration suivante au fichier hôte virtuel. Assurez-vous de modifier l'adresse e-mail appropriée ServerAdmin, nom de serveur en votre nom de domaine. Vous pouvez également inclure ServerAlias ​​pour ajouter plus de domaine ou de sous-domaines. Puis définissez le document de document correct comme créé ci-dessus.

Serveradmin webmaster @ tecadmin.Net Servername Webhost.técadmin.net #serveralias www.webhost.técadmin.net ## Décommente-le pour utiliser DocumentRoot / var / www / webhost allowoverride All ErrorLog $ apache_log_dir / erreur.log Customlog $ apache_log_dir / access.journal combiné
1234567891011 Serveradmin webmaster @ tecadmin.Net Servername Webhost.técadmin.net #serveralias www.webhost.técadmin.net ## Décommente-le pour utiliser DocumentRoot / var / www / webhost Allaiter tout ErrorLog $ apache_log_dir / erreur.log Customlog $ apache_log_dir / access.journal combiné

Enregistrer le fichier et le fermer.

Par défaut, Apache lit des fichiers de configuration d'hôte virtuels sous / etc / apache2 / répertoire disponibles des sites. Utilisez l'outil A2enSite pour activer cet hôte virtuel:

sudo a2ensite webhost.técadmin.filet.confli 

La commande ci-dessus créera un lien symbolique webhost.técadmin.filet.Fichier Conf à répertoire disponible sur les sites.

Une fois terminé, exécutez la commande ci-dessous pour vérifier les fichiers de configuration:

sudo apache2ctl configTest 

Vous devriez voir la sortie suivante:

Syntaxe ok 

Ensuite, redémarrez le service Apache pour appliquer vos modifications:

sudo systemctl redémarrer apache2 

Apache est prêt à servir votre contenu sur votre nom de domaine configuré. Vous pouvez tester cela en naviguant vers http: // webhost.técadmin.filet,

Étape 4 - Configurez, cryptant SSL

Nous utilisons le certificat SSL de Let's Encrypt pour sécuriser le site Web sur le serveur Web Apache. CERTBOT est l'utilitaire de ligne de commande pour travailler avec les certificats Let's Encrypt. Exécutez la commande suivante pour installer Binary CERTBOT:

sudo apt installer python3-certbot-apache 

Cela installera tous les packages requis pour le certificat.

Une fois le processus d'installation terminé. Exécutez la commande ci-dessous pour demander Let's Encrypt Certificate Authority pour délivrer un certificat pour notre domaine webhost.técadmin.filet. Vous pouvez ajouter plusieurs domaines ou sous-domaines en utilisant des paramètres «-d» séparés.

certbot -d webhost.técadmin.filet 

Wizard demandera à votre adresse e-mail pour envoyer vos mises à jour. Alors acceptez les conditions d'utilisation pour continuer. Vous trouverez ci-dessous les journaux de commande complets:

Sauver le journal de débogage à / var / log / letsencrypt / letSencrypt.Plugins de journal sélectionnés: Authenticatrice apache, installateur apache Entrez l'adresse e-mail (utilisée pour les avis de renouvellement et de sécurité urgents) (entrez 'C' pour annuler): [Protégé par e-mail] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Veuillez lire les conditions d'utilisation de https: // letSencrypt.org / documents / le-sa-v1.2-novembre-15-2017.pdf. Vous devez être d'accord afin de vous inscrire auprès du serveur ACME sur https: // acme-v02.API.Laissez-le.org / répertoire - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (a) Gree / (c C ) Ancel: UN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Seriez-vous prêt à partager votre adresse e-mail avec la Fondation Electronic Frontier, un partenaire fondateur du projet Let's Encrypt et de l'organisation à but non lucratif qui développe CERTBOT? Nous aimerions vous envoyer des e-mails sur notre travail Encryportant le Web, les nouvelles EFF, les campagnes et les moyens de soutenir la liberté numérique. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Oui Non: Y Obtenir un nouveau certificat exécutant les défis suivants: HTTP-01 Challenge pour WebHost.técadmin.Module de réécriture Apache activé en attente en attente de vérification… Le nettoyage des défis a créé un ssl vhost à / etc / apache2 / sites-disponible / webhost.técadmin.net-le-ssl.confort APCACH SOCACHE_SHMCB Module activé APACHE SSL Module Deploying Certificat sur virtualhost / etc / apache2 / sites-disponible / webhost.técadmin.net-le-ssl.Conf activer le site disponible: / etc / apache2 / sites-disponible / webhost.técadmin.net-le-ssl.confenez s'il vous plaît choisissez si vous redirigez ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Pas de redirection - ne modifiez pas d'autres modifications à la configuration du serveur Web. 2: Redirection - Faites toutes les demandes de redirection pour sécuriser l'accès HTTPS. Choisissez ceci pour les nouveaux sites, ou si vous êtes convaincu que votre site fonctionne sur HTTPS. Vous pouvez annuler ce changement en modifiant la configuration de votre serveur Web. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sélectionnez le numéro approprié [1-2] puis [entre] (appuyez sur «C» pour annuler): 2 Activé Apache Rewrite Module Redirection Vhost dans / etc / apache2 / sites-compatible / webhost.técadmin.filet.Conf à SSL VHOST dans / etc / ap AChE2 / Sites-disponible / webhost.técadmin.net-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Félicitations! Vous avez réussi à activer https: // webhost.técadmin.net Vous devez tester votre configuration à: https: // www.sllabs.com / ssltest / analyser.html?d = webhost.técadmin.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Remarques importantes: - Félicitations! Votre certificat et votre chaîne ont été enregistrés à: / etc / letSencrypt / live / webhost.técadmin.net / fullchain.pem Votre fichier clé a été enregistré à: / etc / letSencrypt / live / webhost.técadmin.net / privkey.pem Votre certificat expirera le 2020-07-25. Pour obtenir une version nouvelle ou modifiée de ce certificat à l'avenir, exécutez à nouveau CERTBOT avec l'option "certificative". Pour renouveler non interactivement * Tous * de vos certificats, exécutez "CERTBOT RENNEPT" - vos informations d'identification de compte ont été enregistrées dans votre répertoire de configuration CERTBOT à / etc / letSencrypt. Vous devriez faire une sauvegarde sécurisée de ce dossier maintenant. Ce répertoire de configuration contiendra également des certificats et des clés privées obtenues par certbot, donc la fabrication de sauvegardes régulières de ce dossier est idéale. - Si vous aimez CERTBOT, veuillez envisager de soutenir notre travail en: Don à ISRG / Let's Encrypt: https: // letSencrypt.org / don de don à eff: https: // eff.org / don 

Vous avez réussi à configurer votre domaine avec un certificat SSL. Maintenant, vous pouvez accéder à votre domaine sur le protocole HTTPS comme indiqué dans la capture d'écran ci-dessous:

Étape 5 - Ajustez les règles du pare-feu

Vous pouvez utiliser le nom du service comme «HTTP» ou «HTTPS» pour permettre à Firewalld. Pour ouvrir le port HTTP et HTTPS dans Firewalld Exécutez les commandes ci-dessous:

Sudo Firewall-CMD - Permanent --Add-Service = HTTP Sudo Firewall-CMD - PERMANENT --Add-Service = HTTPS 

Une fois que vous avez ajouté les règles, le rechargement change en utilisant la commande suivante.

SUDO FIRWALL-CMD - Reload 

Étape 6 - Gérer le service Apache

Maintenant, vous avez votre serveur Web Apache en cours d'exécution, allons avec les commandes de gestion des services Apache.

Pour arrêter le serveur Web Apache, tapez:

sudo systemctl stop apache2 

Pour démarrer le serveur Web Apache (si arrêté), tapez:

sudo systemctl start apache2 

Pour redémarrer (arrêter puis démarrer) Service Apache, tapez:

sudo systemctl redémarrer apache2 

Au lieu d'arrêter ensuite démarrer un serveur en cours d'exécution, utilisez une option de rechargement pour appliquer les modifications du fichier de configuration sans supprimer les connexions actuelles. Mais cela ne lira aucun nouveau fichier de configuration:

Sudo Systemctl Reload apache2 

Pour désactiver le service Apache pour démarrer automatiquement sur le démarrage du système, tapez:

sudo systemctl désactiver apache2 

Pour activer le service Apache pour démarrer automatiquement sur le démarrage du système, tapez:

sudo systemctl activer apache2 

Conclusion

Le serveur Web Apache s'exécute sur votre Ubuntu 20.04 Système d'exploitation LTS.