Série RHCSA Installation, configuration et sécurisation d'un serveur Web et FTP - Partie 9

Série RHCSA Installation, configuration et sécurisation d'un serveur Web et FTP - Partie 9

Un serveur Web (également appelé Http Server) est un service qui gère le contenu (le plus souvent des pages Web, mais d'autres types de documents également) sur un client dans un réseau.

Un serveur FTP est l'une des ressources les plus anciennes et les plus couramment utilisées (même à ce jour) pour mettre des fichiers à la disposition des clients sur un réseau dans les cas où aucune authentification n'est nécessaire puisque FTP utilise nom d'utilisateur et mot de passe sans cryptage.

Le serveur Web disponible en Rhel 7 est la version 2.4 du serveur http Apache. Quant au serveur FTP, nous utiliserons le démon FTP très sécurisé (aka vsftpd) pour établir des connexions garanties par TLS.

RHCSA: installation, configuration et sécurisation Apache et FTP - Partie 9

Dans cet article, nous expliquerons comment installer, configurer et sécuriser un serveur Web et un serveur FTP dans RHEL 7.

Installation du serveur Apache et FTP

Dans ce guide, nous utiliserons un serveur Rhel 7 avec une adresse IP statique de 192.168.0.18/24. Pour installer Apache et VSftpd, exécutez la commande suivante:

# yum Update && yum install httpd vsftpd 

Une fois l'installation terminée, les deux services seront désactivés initialement, nous devons donc les démarrer manuellement pour le moment et leur permettre de démarrer automatiquement en commençant automatiquement par le démarrage suivant:

# SystemCTL Démarrer HTTPD # SystemCTL Activer HTTPD # SystemCTL Démarrer VSFTPD # SystemCTL Activer VSFTPD 

De plus, nous devons ouvrir des ports 80 et 21, où les démons Web et FTP écoutent, respectivement, afin de permettre l'accès à ces services de l'extérieur:

# Firewall-Cmd --zone = public --add-port = 80 / tcp --permanent # Firewall-Cmd --zone = public --add-Service = FTP --permanent # Firewall-Cmd - Reload 

Pour confirmer que le serveur Web fonctionne correctement, lancez votre navigateur et entrez l'IP du serveur. Vous devriez voir la page de test:

Confirmer le serveur Web Apache

Quant au serveur FTP, nous devrons le configurer davantage, ce que nous ferons en une minute, avant de confirmer que cela fonctionne comme prévu.

Configuration et sécurisation du serveur Web Apache

Le fichier de configuration principal pour Apache est situé dans / etc / httpd / conf / httpd.confli, mais il peut s'appuyer sur d'autres fichiers présents à l'intérieur / etc / httpd / confre.d.

Bien que la configuration par défaut soit suffisante pour la plupart des cas, c'est une bonne idée de se familiariser avec toutes les options disponibles comme décrit dans la documentation officielle.

Comme toujours, faites une copie de sauvegarde du fichier de configuration principal avant de le modifier:

# cp / etc / httpd / conf / httpd.conf / etc / httpd / conf / httpd.confli.$ (date +% y% m% d) 

Ensuite, ouvrez-le avec votre éditeur de texte préféré et recherchez les variables suivantes:

  1. Serveur: le répertoire où la configuration, l'erreur et les fichiers journaux du serveur sont conservés.
  2. Écouter: Demande à Apache d'écouter une adresse IP et des ports spécifiques.
  3. Inclure: permet l'inclusion d'autres fichiers de configuration, qui doivent exister. Sinon, le serveur échouera, par opposition à la directive InclutOptional, qui est silencieusement ignorée si les fichiers de configuration spécifiés n'existent pas.
  4. Utilisateur et groupe: le nom de l'utilisateur / groupe pour exécuter le service HTTPD comme.
  5. Document de document: Le répertoire à partir duquel Apache servira vos documents. Par défaut, toutes les demandes sont tirées de ce répertoire, mais les liens et alias symboliques peuvent être utilisés pour pointer vers d'autres endroits.
  6. Nom du serveur: Cette directive définit le nom d'hôte (ou l'adresse IP) et le port que le serveur utilise pour s'identifier.

La première mesure de sécurité consistera à créer un utilisateur et un groupe dédiés (I.e. Tecmint/ /Tecmint) Pour exécuter le serveur Web en tant que et modifier le port par défaut en un plus haut (9000 dans ce cas):

Serverroot "/ etc / httpd" Écoutez 192.168.0.18: 9000 User Tecmint Group Tecmint documentroot "/ var / www / html" Servername 192.168.0.18: 9000 

Vous pouvez tester le fichier de configuration avec.

# apachectl configTest 

Et si tout est D'ACCORD, puis redémarrez le serveur Web.

# SystemCTL Redémarrer HTTPD 

Et n'oubliez pas d'activer le nouveau port (et de désactiver l'ancien) dans le pare-feu:

# Firewall-Cmd --zone = public --Remove-Port = 80 / TCP --permanent # Firewall-CMD --zone = public --add-port = 9000 / TCP --permanent # Firewall-Cmd --reload 

Notez que, en raison de Selinux politiques, vous ne pouvez utiliser que les ports renvoyés par

# SEMANAGE PORT -L | grep -w '^ http_port_t' 

pour le serveur Web.

Si vous souhaitez utiliser un autre port (je.e. Port TCP 8100), vous devrez l'ajouter à Selinux contexte du port pour le httpd service:

# PORT DE SEMANAGE -A -T HTTP_PORT_T -P TCP 8100 
Ajouter le port Apache aux politiques SELINUX

Pour sécuriser davantage votre installation Apache, suivez ces étapes:

1. L'utilisateur Apache est en cours d'exécution, car il ne devrait pas avoir accès à un shell:

# Usermod -s / Sbin / Nologin Tecmint 

2. Désactiver la liste des répertoires afin d'empêcher le navigateur d'afficher le contenu d'un répertoire s'il n'y a pas indice.html présent dans ce répertoire.

Modifier / etc / httpd / conf / httpd.confli (et les fichiers de configuration pour les hôtes virtuels, le cas échéant) et assurez-vous que le Options La directive, à la fois en haut et au niveau des blocs de répertoire, est réglé sur Aucun:

Options None 

3. Masquer des informations sur le serveur Web et le système d'exploitation dans les réponses HTTP. Modifier / etc / httpd / conf / httpd.confli comme suit:

SERVERTOKENS PROD SERVERSIGNATURE 

Vous êtes maintenant prêt à commencer à servir du contenu à partir de votre / var / www / html annuaire.

Configuration et sécurisation du serveur FTP

Comme dans le cas d'Apache, le fichier de configuration principal pour Vsftpd (/ etc / vsftpd / vsftpd.conf) est bien commenté et bien que la configuration par défaut devrait suffire pour la plupart des applications, vous devez vous familiariser avec la documentation et la page de l'homme (homme vsftpd.conf) Afin de faire fonctionner le serveur FTP plus efficacement (je ne peux pas souligner suffisamment!).

Dans notre cas, ce sont les directives utilisées:

anonymous_enable = no local_enable = oui write_enable = oui local_umask = 022 dirMessage_enable = oui xferlog_enable = oui connect_from_port_20 = oui xferlog_std_format = oui chroot_local_user = oui alternable_write_chroot = oui écouter = no écoute_ipv6 = oui pam_service_name = vsftp 

En utilisant chroot_local_user = oui, Les utilisateurs locaux seront (par défaut) placés dans une prison en chroot dans leur répertoire domestique juste après la connexion. Cela signifie que les utilisateurs locaux ne pourront pas accéder à des fichiers en dehors de leurs répertoires domestiques correspondants.

Enfin, pour permettre à FTP de lire des fichiers dans le répertoire personnel de l'utilisateur, définissez ce qui suit Selinux booléen:

# setSebool -p ftp_home_dir sur 

Vous pouvez désormais vous connecter au serveur FTP à l'aide d'un client tel que Filezilla:

Vérifier la connexion FTP

Notez que le / var / log / xferlog Les enregistrements de journal téléchargements et téléchargements, qui sont d'accord avec la liste des répertoires ci-dessus:

Surveiller le téléchargement et le téléchargement du FTP

Lire aussi: Limiter la bande passante du réseau FTP utilisé par les applications dans un système Linux avec un rotation

Résumé

Dans ce tutoriel, nous avons expliqué comment configurer un Web et un serveur FTP. En raison de l'immensité du sujet, il n'est pas possible de couvrir tous les aspects de ces sujets (i.e. Hôtes Web virtuels). Ainsi, je vous recommande également de consulter d'autres excellents articles dans ce site Web sur Apache.