Comment installer et configurer un exemple de service avec Xinetd sur RHEL 8 / Centos 8 Linux

Comment installer et configurer un exemple de service avec Xinetd sur RHEL 8 / Centos 8 Linux

Xinetd, ou le démon des services Internet étendu, est un soi-disant super serveur. Vous pouvez le configurer pour écouter à la place de nombreux services et démarrer le service qui devrait traiter une demande entrante uniquement lorsqu'il y arrive réellement au système - économisant ainsi des ressources. Bien que cela ne semble pas être un gros problème sur un système où le trafic est relativement permanent, ce service devant une autre approche a des avantages intéressants, comme l'exploitation forestière ou le contrôle d'accès.

Dans cet article, nous installerons Xinetd sur un RHEL 8 / CentOS 8, et nous allons mettre le SSHD démon sous ses soins. Après avoir vérifié la configuration, nous allons modifier un peu la configuration pour voir le contrôle d'accès en action.

Dans ce tutoriel, vous apprendrez:

  • Comment installer Xinetd
  • Comment configurer SSHD sur RHEL 8 / CENTOS 8 en tant que service Xinetd
  • Comment autoriser l'accès uniquement à partir d'un réseau spécifique au service SSHD de Xinetd
  • Comment auditer le trafic à partir des entrées de journal Xinetd
Permettant l'accès à partir d'un certain segment de réseau à SSHD.

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système RHEL 8 / CENTOS 8
Logiciel xinetd 2.3.15-23, openssh 7.8p1
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Comment installer le service Xinetd dans Red Hat 8 instructions étape par étape

Xinetd Peut être trouvé dans les référentiels de base après avoir mis en place les référentiels officiels de gestion des abonnements. Le SSHD Le serveur est installé sur n'importe quel chapeau rouge (et à peu près n'importe quelle distribution Linux) par défaut.

AVERTISSEMENT
Garde en tête que SSHD sera désactivé pendant cette configuration. N'essayez pas de terminer ce guide sur un système auquel vous pouvez accéder uniquement avec SSH, sinon vous perdez votre connexion au système à la minute où vous éteignez SSHD pour démarrer le serveur Xinetd.
  1. Poing, nous devons installer le xinetd démon. Nous utiliserons DNF:
    # DNF Installer Xinetd
  2. Si pour une raison quelconque, votre système ne contient pas d'installation d'OpenSSH, vous pouvez installer des packages comme dans ce cas opensh Emballage de la même manière que ci-dessus:
    # DNF Installation OpenSSH


  3. Xinetd est livré avec un fichier de configuration par défaut / etc / xinetd.confli, ainsi que quelques exemples intéressants dans le / etc / xinetd.d/ répertoire, tous désactivés par défaut. Avec un éditeur de texte comme vi ou nano, Créons un nouveau fichier texte / etc / xinetd.d / ssh avec le contenu suivant (notez que la nouvelle ligne après le nom du service est obligatoire):
    service ssh disable = no socket_type = stream protocole = tcp port = 22 wait = no user = root server = / usr / sbin / sshd server_args = -i
    Copie
  4. Si la SSHD Le serveur s'exécute sur le système, nous devons l'arrêter, sinon xinetd Impossible de se lier au port TCP 22. C'est l'étape où vous serez déconnecté si vous êtes connecté via SSH.
    # systemctl stop sshd

    Si nous prévoyons d'utiliser SSHD sur Xinetd à long terme, nous pouvons également désactiver le systemd Service pour cela, pour l'empêcher de commencer à l'heure du démarrage:

    Systemctl Désactiver SSHD
  5. Maintenant, nous pouvons commencer xinetd:
    # systemctl start xinetd

    Et Facultatif Activez le démarrage au démarrage:

    # systemctl activer xinetd
  6. Après le début de Xinetd, nous pouvons nous connecter au creux SSH, car notre configuration de base ne contient aucune restriction supplémentaire. Pour tester le service, nous demandons la connexion sur hôte local:
    # ssh localhost root @ localhost's mot de passe: dernière connexion: dim 31 mars 17:30:07 2019 de 192.168.1.7 #
  7. Ajoutons une autre ligne à / etc / xinetd.d / ssh, Juste avant le bracelet de clôture:
    […] Server = / usr / sbin / sshd server_args = -i Only_From = 192.168.0.0 

    Avec ce paramètre, nous restreinons l'accès uniquement à partir du segment du réseau 192.168.*.*. Nous devons redémarrer Xinetd pour ce changement de configuration pour prendre effet:

    # SystemCTL Redémarrer Xinetd
  8. Notre machine de laboratoire a plus d'une interfaces. Pour tester la restriction ci-dessus, nous essaierons de nous connecter pour nous connecter à une interface qui n'est pas autorisée par la configuration de Xinetd, et celle qui est en effet autorisée:
    # hostname -i fe80 :: 6301: 609f: 4a45: 1591% ENP0S3 FE80 :: 6F06: DFDE: B513: 1A0E% ENP0S8 dix.0.2.15 192.168.1.14 192.168.122.1

    Nous essaierons d'ouvrir la connexion à partir du système lui-même, donc notre adresse IP source sera la même que la destination à laquelle nous essayons de nous connecter. Par conséquent, lorsque nous essayons de nous connecter à dix.0.2.15, Nous ne sommes pas autorisés à nous connecter:

    # ssh 10.0.2.15 SSH_EXCHANGE_IDENTIFICATION: LIRE: Connexion Réinitialiser par pair

    Tandis que l'adresse 192.168.1.14 est dans la plage d'adresses autorisée. Nous obtiendrons l'invite de mot de passe et pouvons nous connecter:

    # ssh 192.168.1.14 racine @ 192.168.1.Mot de passe du 14:


  9. Comme nous n'avons pas modifié la configuration de journalisation par défaut, nos tentatives de connexion (ou avec d'autres mots, nos tentatives d'accéder au service Xinetd) seront enregistrées pour / var / log / messages. Les entrées de journal peuvent être trouvées avec un simple grep:
    Cat / var / log / messages | Grep Xinetd 31 mars 18:30:13 RHEL8LAB XINETD [4044]: Démarrer: SSH PID = 4048 de = :: FFFF: 10.0.2.15 mars 31 18:30:13 RHEL8LAB XINETD [4048]: Échec: Adresse SSH de = :: FFFF: 10.0.2.15 mars 31 18:30:13 RHEL8LAB XINETD [4044]: Exit: statut ssh = 0 pid = 4048 durée = 0 (sec) 31 mars 18:30:18 RHEL8LAB XINETD [4044]: Début: SSH PID = 4050 De = :: FFFF: 192.168.1.14

    Ces messages facilitent la façon dont nos services ont accédé. Bien qu'il existe de nombreuses autres options (y compris la limitation des connexions concurrentes ou définir des délais d'expiration après des connexions ratées pour empêcher les attaques DOS), cette configuration simple montre, espérons-le, la puissance de ce super serveur qui peut faciliter la vie de la Sysadmin - en particulier encombrée, orientée vers l'Internet systèmes.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Manipulation de Big Data pour le plaisir et le profit Partie 1
  • Comparaison des MPM de Linux Apache PreFork vs Worker
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Journalisation et audit avancés sur Linux
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment exporter des référentiels avec le git-daemon
  • Masterring Bash Script Loops