GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Services et protocoles réseau

Ce chapitre couvre les super-serveurs inetd et xinetd , qui sont responsables du démarrage des serveurs pour les protocoles tels que telnet et FTP en cas de besoin.

Contenu

Introduction aux services Internet

Les services réseau très utilisés tels que la messagerie électronique, le proxy et les services Web sont gérés par des processus serveur qui s'exécutent en continu et possèdent leurs propres fichiers de configuration complexes et modules Webmin. Cependant, il existe d'autres services tels que telnet, finger et POP qui ne nécessitent aucune configuration et n'ont pas besoin de leur propre processus de serveur permanent. Au lieu de cela, leurs serveurs sont exécutés en cas de besoin par un super-serveur comme inetd ou xinetd qui écoute les connexions réseau sur plusieurs ports. Ce n'est que lorsqu'il reçoit une connexion qu'il démarre le processus approprié pour communiquer avec le client, qui se termine lorsque la connexion est fermée. Cela permet d'économiser de la mémoire en limitant le nombre de processus exécutés simultanément, mais ralentit légèrement la gestion des nouvelles connexions.

Chaque service a un nom court comme telnet ou pop3, un numéro de port comme 23 ou 110 et un protocole comme TCP ou UDP. Le fichier /etc/services répertorie tous les noms de service et leurs numéros de ports correspondants que votre système connaît, dont seuls quelques-uns peuvent avoir un super-serveur ou un autre serveur à l'écoute.

Le super-serveur le plus couramment utilisé est inetd, qui est utilisé par presque toutes les distributions Linux et les variantes Unix. Tous les paramètres du serveur sont stockés dans le fichier de configuration /etc/inetd.conf. En plus de démarrer les serveurs en réponse aux connexions TCP et UDP, il peut également gérer les appels de fonction RPC (appel de procédure à distance) de la même manière. L'une des principales lacunes d'inetd est son incapacité à rejeter les connexions en fonction de l'adresse IP du client. Cependant, cela peut être surmonté en utilisant un programme serveur TCP-wrappers intermédiaire, qui possède son propre fichier de configuration de contrôle d'accès IP.

Un autre super-serveur qui gagne en popularité et a plus de fonctionnalités est xinetd, qui utilise le fichier de configuration /etc/xinetd.conf et parfois d'autres fichiers sous le répertoire /etc/xinetd.d. Comme inetd, il peut lancer des processus serveur en réponse aux connexions TCP et UDP, mais ne prend pas en charge RCP. Son principal avantage est la prise en charge intégrée de la restriction des connexions à certaines adresses IP client sans avoir besoin d'un programme configuré séparément. Il peut également rediriger une connexion entrante sur certains ports vers un autre hôte et port en établissant sa propre connexion client et en transférant les données dans les deux sens.

Étant donné que inetd et xinetd ont des fichiers de configuration et des formats de fichiers totalement différents, il existe un module Webmin distinct pour configurer chacun d'eux. La plupart des distributions Linux seront livrées avec l'une ou l'autre, mais dans certains cas, les deux peuvent être installées et coexister pacifiquement. La seule limitation est qu'ils ne peuvent pas écouter tous les deux sur le même port en même temps.

Le module Services réseau et protocoles

Ce module traite de la configuration d'inetd et se trouve dans la catégorie Réseaux de Webmin. Si l'icône n'est pas visible, Webmin a détecté qu'il n'est pas installé. Cela peut être dû au fait que votre distribution utilise xinetd à la place, auquel cas vous devriez passer à la section « Le module de service Internet étendu ». Si aucun module n'est visible, vérifiez votre CD de distribution ou votre site Web pour un package inetd ou xinetd.

La page principale du module (illustrée à la Figure 15-1) affiche deux tableaux, un pour les services Internet qui répondent aux connexions TCP ou UDP, et une pour les programmes RCP . Dans les Services Internet section, les noms et protocoles de tous les services sont affichés - dans certains cas, le même service peut être reconnu pour plus d'un protocole. Chaque service peut être dans l'un des trois états indiqués par la police dans laquelle son nom apparaît :

Activé (gras) Un programme serveur a été affecté à ce service et il est actuellement actif.
Désactivé (gras-italique) Un programme serveur a été affecté, mais il n'est pas actif. Cela correspond à une entrée commentée dans le fichier inetd.conf.
Non attribué (normal) Aucun programme serveur n'a été affecté à ce service, ce qui signifie qu'il n'y a pas d'entrée inetd.conf pour celui-ci.

Si l'option de configuration du module Afficher les services sans programme a été défini sur Non , les services à l'état non attribué ne seront pas affichés. Il s'agit de la valeur par défaut sur certains systèmes d'exploitation, en raison du grand nombre de services que le système connaît.

La plupart des distributions Linux sont livrées avec presque tous les services à l'état désactivé par défaut. Cela limite le nombre de services inutiles auxquels votre système autorise les connexions et réduit ainsi le risque qu'une faille de sécurité dans l'un des programmes du serveur soit exploitée par un attaquant.

La page principale du module Services et protocoles Internet

Parce que chaque service est affiché avec seulement un nom court comme telnet ou chargen, il n'est pas évident pour un administrateur inexpérimenté ce que chacun d'eux fait. Certains des services les plus couramment utilisés et leurs objectifs sont :

Les services de jour, d'écho et de charge pour les protocoles TCP et UDP sont gérés en interne par inetd lorsqu'ils sont activés, et non par un programme serveur séparé.

Activer un service Internet

Si vous souhaitez autoriser les utilisateurs à récupérer le courrier de votre système à l'aide du protocole POP3 ou à se connecter via telnet, il est nécessaire d'activer le service Internet approprié s'il n'est pas actuellement activé. Pour ce faire, les étapes à suivre sont :

  1. Sur la page principale du module, cliquez sur le nom du service que vous souhaitez activer dans les Services Internet table. Cela vous mènera à la page illustrée à la Figure 15-2 pour modifier ses détails. Si les services non attribués ne sont pas affichés sur votre système, vous pouvez saisir le nom du service et sélectionner le protocole dans les champs à côté de Modifier le service bouton. En cliquant sur le bouton, vous accéderez au formulaire d'édition, en supposant que le nom du service est reconnu.
  2. Le nom du service , Numéro de port , Protocole et Alias les champs doivent rester inchangés, sauf si vous souhaitez renommer le service ou modifier le port sur lequel il écoute. Pour les services que vous n'avez pas créés vous-même, modifier l'un de ces champs est une mauvaise idée car cela peut empêcher les programmes de votre système de se connecter à d'autres serveurs.
  3. Dans le programme serveur section, pour activer le service, sélectionnez le Programme activé option. Si Programme désactivé a été sélectionné précédemment, tous les autres paramètres de la section doivent être corrects et n'auront pas besoin d'être modifiés. Cependant, si Aucun programme attribué a été sélectionné auparavant, vous devrez choisir un programme serveur et un utilisateur sous lequel le serveur s'exécutera. Sélectionnez le programme champ Commande option et entrez le chemin d'accès complet au programme serveur dans le champ à côté, tel que /usr/sbin/in.ftpd. Dans les arguments , entrez à nouveau la commande du serveur et tous les arguments dont il a besoin, tels que in.ftpd –l –a. Même si le chemin du programme est dans la Commande champ, le nom du programme doit apparaître dans le champ Args terrain aussi. Vous devrez entrer un utilisateur pour que le programme serveur s'exécute en tant que dans Exécuter en tant qu'utilisateur domaine. Pour presque tous les serveurs, ce sera root. L'un des modes d'attente les options doivent également être définies - à moins que le serveur ne fonctionne et s'exécute très rapidement, choisissez Ne pas attendre . Certains services tels que le jour, l'écho, le chargen et le rejet sont gérés en interne par inetd. Si vous activez l'un d'entre eux, sélectionnez simplement Interne à inetd . Aucun programme ou argument n'a besoin d'être entré, et l'utilisateur que le serveur exécute n'est pas pertinent.
  4. Lorsque vous avez terminé, cliquez sur le bouton Enregistrer. Tant qu'il n'y a pas d'erreurs et que le programme serveur choisi existe réellement, le navigateur reviendra à la liste des services sur la page principale.
  5. Cliquez sur Appliquer les modifications bouton en bas de la page pour activer vos modifications.
Figure 15-2 “Editing an internet service” 

Dans certains cas, vous ne pourrez pas activer un service car le programme serveur correspondant n'est pas encore installé. Si tel est le cas, utilisez le module Packages logiciels pour l'installer à partir de votre CD de distribution Linux ou de votre site Web.

Si vous souhaitez désactiver un service, suivez simplement les mêmes étapes mais sélectionnez le Programme désactivé à la place. C'est mieux que de choisir Aucun programme attribué car il est facile de réactiver le service sans avoir à ressaisir les détails du programme serveur.

Créer votre propre service Internet

Dans certaines situations, vous souhaiterez peut-être ajouter un nouveau serveur à votre système qui écoute sur un port qui n'est affecté à rien d'autre. Vous voudrez peut-être exécuter un serveur telnet sur un port non standard ou rediriger le trafic d'un port de votre système vers un autre serveur à l'aide d'un programme tel que nc. Si vous essayez simplement d'activer un service standard comme ftp ou imap, les instructions de cette section ne sont pas pour vous - consultez plutôt la section "Activation d'un service Internet".

Les étapes à suivre pour créer un nouveau service sont :

  1. Sur la page principale du module, cliquez sur le lien *Créer un nouveau service Internet*. Cela vous mènera au formulaire de création de service, qui est similaire au formulaire d'édition de la Figure 15-2.
  2. Remplissez le nom du service champ avec un nom unique pour votre service.
  3. Saisissez le numéro de port auquel vous souhaitez associer le service dans le champ Numéro de port domaine.
  4. Sélectionnez le protocole dans le Protocole liste. Ce sera presque toujours TCP, mais dans certains cas, vous devrez peut-être utiliser UDP.
  5.  Entrez tous les autres noms auxquels vous souhaitez que le service soit référencé dans les Alias domaine.
  6. En supposant que vous souhaitiez associer un programme serveur à ce service, choisissez le Programme activé option dans le Programme Serveur section. Sinon, tout ce qui sera créé est une association entre un nom de service et un numéro de port.
  7. Pour le Programme champ, sélectionnez la Commande option et entrez le chemin d'accès complet au programme serveur dans le champ à côté - par exemple /usr/local/bin/someserver. Dans les arguments , entrez le nom du programme et tous les arguments de ligne de commande avec lesquels il doit être exécuté, tels que someserver –foo. Pour donner un autre exemple, si vous souhaitez créer un service qui affiche tous les processus en cours d'exécution sur votre système à toute personne se connectant via telnet, vous pouvez définir la Commande à /bin/ps et les Args à ps auxwww. Ce serait cependant une mauvaise idée du point de vue de la sécurité.
  8. Si le programme serveur va prendre plus d'une seconde pour s'exécuter ou s'il accepte une entrée, définissez le mode d'attente champ à N'attendez pas . Sinon, inetd cessera de gérer les nouvelles connexions réseau jusqu'à ce que le programme soit terminé. Le seul avantage de cette Attendre jusqu'à la fin mode est une légère réduction de l'utilisation de la mémoire.
  9. Entrez le nom d'utilisateur de l'utilisateur Unix sous lequel le programme serveur doit s'exécuter dans Exécuter en tant qu'utilisateur domaine. Il s'agit généralement de root, mais il peut s'agir de n'importe qui.
  10. Pour limiter le débit auquel inetd acceptera les connexions pour votre service, saisissez un nombre dans le champ Max par minute domaine. Si la limite est dépassée, les connexions suivantes seront refusées jusqu'à la minute suivante.
  11. Par défaut, le groupe sous lequel le programme serveur s'exécute est le groupe principal de l'utilisateur défini dans Exécuter en tant qu'utilisateur domaine. Pour changer cela, entrez un nom de groupe dans le champ Exécuter en tant que groupe domaine.
  12. Cliquez sur Créer bouton pour créer votre service. Tant qu'il n'y a pas d'erreurs dans le formulaire, vous serez renvoyé à la liste des services sur la page principale.
  13. Cliquez sur Appliquer les modifications bouton pour rendre le service actif.

Une fois qu'un service a été créé, vous pouvez le tester en exécutant telnet localhost portnumber à l'invite du shell sur votre système. Vous pouvez modifier votre service à tout moment en cliquant sur son nom sur la page principale et en modifiant l'une des options avant de cliquer sur Enregistrer – ou Supprimer si vous voulez vous en débarrasser. Après avoir apporté des modifications, le bouton Appliquer les modifications il faut utiliser le bouton pour les rendre actifs,

Créer et éditer des programmes RPC

RPC est un protocole et un format de données qui constituent la base d'autres protocoles tels que NFS et NIS. Les clients RPC effectuent des appels de fonction aux serveurs RPC, transmettent des paramètres et récupèrent les résultats. Pour le client ou le serveur, effectuer un appel de procédure à distance n'est pas plus difficile que d'appeler une fonction de bibliothèque normale, ce qui est beaucoup plus facile d'écrire des programmes utilisant RPC que de créer votre propre protocole à partir de rien.

Un programme RPC est un ensemble de fonctions gérées par un serveur. Chaque programme a un numéro unique, semblable au port d'un service Internet. Les programmes ne sont pas associés à un protocole particulier, car ils peuvent généralement accepter des connexions et des appels de fonction via UDP ou TCP. Il n'a pas non plus de port fixe, car ils sont attribués dynamiquement en cas de besoin.

Les serveurs RPC (comme les serveurs NIS et NFS) qui gèrent une grande quantité de trafic ont leurs propres processus qui s'exécutent en permanence. Cependant, certains serveurs qui ne doivent être exécutés qu'occasionnellement peuvent être exécutés par inetd uniquement en cas de besoin, tout comme avec les services Internet peu utilisés. Certains des programmes RPC les plus couramment utilisés sont :

Sur certains systèmes, ces programmes RPC peuvent être gérés par des serveurs qui ne sont pas exécutés à partir d'inetd mais plutôt comme des processus autonomes. Dans ce cas, le module Bootup and Shutdown (expliqué au chapitre 9) est l'endroit pour l'activer ou le désactiver. En raison du petit nombre de programmes RPC courants et de leur utilité limitée, de nombreuses distributions Linux n'ont aucun programme activé ou désactivé dans la configuration inetd par défaut. Cependant, ce n'est pas le cas sur d'autres systèmes d'exploitation comme Solaris.

Si vous souhaitez utiliser un protocole RPC qui n'est pas actuellement activé, vous pouvez utiliser ce module pour l'activer. Bien sûr, le programme serveur RPC approprié doit être installé en premier et inetd sur votre système doit prendre en charge les programmes RPC. Si oui, les étapes à suivre sont :

  1. Sur la page principale du module, cliquez sur le nom du programme dans les Programmes RPC table. Cela vous mènera au formulaire d'édition de programme illustré à la Figure 15-3.
  2. Dans le cadre du Programme Serveur section, sélectionnez l'option *Programme activé*. Si Programme désactivé a été sélectionné précédemment, tous les autres paramètres de la section doivent être corrects et n'auront pas besoin d'être modifiés. Cependant, si Aucun programme attribué a été cochée, vous devrez remplir plusieurs autres champs. Les versions RPC le champ doit être défini sur la plage de versions que le programme serveur prend en charge, comme 1_ – _3 . Le champ *Type de socket* doit être défini sur Datagramme , et le Protocole champ défini uniquement sur udp option. Pour le Programme Serveur , entrez le chemin d'accès complet au programme RPC, tel que /usr/sbin/rpc.rusersd. Pour la Commande champ, etner le nom du programme et tous les arguments, tels que rpc.rusersd –a. Pour le mode d'attente , sélectionnez *Ne pas attendre*. Pour le champ Exécuter en tant qu'utilisateur, entrez le nom d'utilisateur sous lequel vous souhaitez que le programme serveur s'exécute - généralement root.
  3. Lorsque vous avez terminé, cliquez sur Enregistrer bouton. Tant qu'il n'y a pas d'erreurs dans votre entrée, vous serez renvoyé à la page principale du module où le programme RPC devrait apparaître comme activé.
  4. Cliquez sur Appliquer les modifications bouton pour rendre le programme actif.
Figure 15-3 “The RPC program editing form” 

Configuration du module Services et protocoles Internet

Pour accéder aux options configurables du module Services Internet, cliquez sur Configuration du module lien dans le coin supérieur gauche de sa page principale. Cela vous amènera au formulaire de configuration standard, sur lequel vous pouvez modifier les options suivantes :

Le reste des options de configuration du module sous Configuration du système sont définis automatiquement par Webmin en fonction de votre type de système d'exploitation et ne doivent donc pas être modifiés.

Autres systèmes d'exploitation

Presque toutes les versions d'Unix incluent inetd en standard et l'utilisent pour lancer des programmes serveur rarement exécutés de la même manière que Linux. Cependant, son format de fichier de configuration et ses capacités sont légèrement différents sur d'autres systèmes d'exploitation, ce qui signifie que l'interface utilisateur du module ne sera pas exactement la même. La page principale affichera toujours des listes de services Internet et RPC, mais lors de la modification ou de la création d'un service, différents champs et options seront disponibles en fonction de la variante Unix que vous utilisez :

Soleil Solaris
Lors de la modification d'un service Internet, le *Max par minute* et Exécuter en tant que groupe les champs ne sont pas disponibles. - Les versions 8 et supérieures de Solaris prennent en charge les protocoles IPv6 TCP et UDP, ainsi que le standard IPv4 utilisé par Linux. - De nombreux services RPC existent dans l'état désactivé par défaut, pour des choses comme les quotas NFS et le verrouillage.
FreeBSD
Les services RPC ne peuvent pas avoir de programmes assignés. Tout ce que vous pouvez faire est de modifier les noms de service et les numéros de programme. - Lors de la modification ou de la création d'un service, vous pouvez contrôler le nombre de programmes serveur pouvant être actifs à tout moment avec le Processus enfants maximum domaine. - Lors de l'édition, vous pouvez également définir la classe de connexion que le programme serveur exécute avec la Exécuter en tant que classe de connexion champ.
NetBSD
Comme sur FreeBSD, les champs *Max Child Processes et *Execute as Login Class* sont disponibles lors de l'édition ou de la création d'un service. - Comme avec Solaris, les services Internet peuvent utiliser les protocoles IPv6 TCP et UDP.

OpenBSD , Compaq Tru64/OSF1 , IBM AIX , SCO OpenServer et SCO UnixWare

Comme sur Solaris, le *Max Par Minute et Les champs Exécuter en tant que groupe ne sont pas disponibles.
SGI Irix
Le maximum par minute et Exécuter en tant que groupe les champs ne sont pas disponibles lors de la modification d'un service. - Il y a une case à cocher supplémentaire sous le programme serveur Command champ étiqueté *La commande n'existe peut-être pas ?*, qui, si elle est définie, indique à inetd d'ignorer le service si le programme serveur n'est pas installé. Par défaut, cette option est activée pour de nombreux services liés aux packages Irix qui ne sont pas installés par défaut.
HP/UX
Sur HP/UX, le module a exactement les mêmes options que Linux.
Apple MacOS X
Comme sur Solaris, les champs *Max Per Minute et *Execute as Group* ne sont pas disponibles. - Les services RPC ne peuvent pas avoir de programmes assignés, comme sur FreeBSD. - Au lieu d'utiliser le fichier /etc/services pour stocker les noms de service et les ports, ils se trouvent dans une table NetInfo. Webmin vide et recharge cette table pour lire et modifier les services.

Webmin
  1. Comment utiliser les protocoles SSH et SFTP sur votre réseau domestique

  2. Renforcement du VPN :qu'est-ce que c'est et comment le faire

  3. Warpinator - Envoyer et recevoir des fichiers sur un réseau

  4. Tester les services réseau avec Netcat

  5. RHEL 7 – RHCSA Notes :Démarrez, arrêtez et vérifiez l'état des services réseau.

Introduction au VPN et voici comment l'utiliser sous Linux

Comment redémarrer les services réseau sous Linux

Systèmes de fichiers disque et réseau

Services réseau

SmarterMail et services de sécurité de messagerie tiers

Comment mettre en réseau Ubuntu et Windows 10 ?