Rechercher

14.2. Configuration des serveurs OpenSSH à l'aide du rôle de système sshd

download PDF

Vous pouvez utiliser le rôle de système sshd pour configurer plusieurs serveurs SSH en exécutant un script Ansible.

Note

Vous pouvez utiliser le rôle système sshd avec d'autres rôles système qui modifient la configuration de SSH et de SSHD, par exemple les rôles système RHEL de gestion des identités. Pour éviter que la configuration ne soit écrasée, assurez-vous que le rôle sshd utilise des espaces de noms (RHEL 8 et versions antérieures) ou un répertoire de dépôt (RHEL 9).

Conditions préalables

  • Accès et autorisations à un ou plusieurs managed nodes, qui sont des systèmes que vous souhaitez configurer avec le rôle de système sshd.
  • Accès et permissions à un control node, qui est un système à partir duquel Red Hat Ansible Core configure d'autres systèmes.

    Sur le nœud de contrôle :

    • Les paquets ansible-core et rhel-system-roles sont installés.
Important

RHEL 8.0-8.5 donne accès à un dépôt Ansible distinct qui contient Ansible Engine 2.9 pour l'automatisation basée sur Ansible. Ansible Engine contient des utilitaires de ligne de commande tels que ansible, ansible-playbook, des connecteurs tels que docker et podman, ainsi que de nombreux plugins et modules. Pour plus d'informations sur la manière d'obtenir et d'installer Ansible Engine, consultez l'article de la base de connaissances Comment télécharger et installer Red Hat Ansible Engine.

RHEL 8.6 et 9.0 ont introduit Ansible Core (fourni en tant que paquetage ansible-core ), qui contient les utilitaires de ligne de commande Ansible, les commandes et un petit ensemble de plugins Ansible intégrés. RHEL fournit ce paquetage par l'intermédiaire du dépôt AppStream, et sa prise en charge est limitée. Pour plus d'informations, consultez l'article de la base de connaissances intitulé Scope of support for the Ansible Core package included in the RHEL 9 and RHEL 8.6 and later AppStream repositories (Portée de la prise en charge du package Ansible Core inclus dans les dépôts AppStream RHEL 9 et RHEL 8.6 et versions ultérieures ).

  • Un fichier d'inventaire qui répertorie les nœuds gérés.

Procédure

  1. Copiez l'exemple de playbook pour le rôle de système sshd:

    # cp /usr/share/doc/rhel-system-roles/sshd/example-root-login-playbook.yml path/custom-playbook.yml
  2. Ouvrez le playbook copié en utilisant un éditeur de texte, par exemple :

    # vim path/custom-playbook.yml
    
    ---
    - hosts: all
      tasks:
      - name: Configure sshd to prevent root and password login except from particular subnet
        include_role:
          name: rhel-system-roles.sshd
        vars:
          sshd:
            # root login and password login is enabled only from a particular subnet
            PermitRootLogin: no
            PasswordAuthentication: no
            Match:
            - Condition: "Address 192.0.2.0/24"
              PermitRootLogin: yes
              PasswordAuthentication: yes

    Le playbook configure le nœud géré en tant que serveur SSH configuré de telle sorte que :

    • et le login de l'utilisateur root est désactivé
    • et root n'est possible qu'à partir du sous-réseau 192.0.2.0/24

    Vous pouvez modifier les variables en fonction de vos préférences. Pour plus de détails, voir Variables de rôle du système du serveur SSH.

  3. Facultatif : Vérifier la syntaxe du playbook.

    # ansible-playbook --syntax-check path/custom-playbook.yml
  4. Exécutez le playbook sur votre fichier d'inventaire :

    # ansible-playbook -i inventory_file path/custom-playbook.yml
    
    ...
    
    PLAY RECAP
    **************************************************
    
    localhost : ok=12 changed=2 unreachable=0 failed=0
    skipped=10 rescued=0 ignored=0

Vérification

  1. Connectez-vous au serveur SSH :

    $ ssh user1@10.1.1.1

    Où ?

    • user1 est un utilisateur du serveur SSH.
    • 10.1.1.1 est l'adresse IP du serveur SSH.
  2. Vérifiez le contenu du fichier sshd_config sur le serveur SSH :

    $ cat /etc/ssh/sshd_config.d/00-ansible_system_role.conf
    #
    # Ansible managed
    #
    PasswordAuthentication no
    PermitRootLogin no
    Match Address 192.0.2.0/24
      PasswordAuthentication yes
      PermitRootLogin yes
  3. Vérifiez que vous pouvez vous connecter au serveur en tant que root depuis le sous-réseau 192.0.2.0/24:

    1. Déterminez votre adresse IP :

      $ hostname -I
      192.0.2.1

      Si l'adresse IP se situe dans la plage 192.0.2.1 - 192.0.2.254, vous pouvez vous connecter au serveur.

    2. Se connecter au serveur en tant que root:

      $ ssh root@10.1.1.1

Ressources supplémentaires

  • /usr/share/doc/rhel-system-roles/sshd/README.md fichier.
  • ansible-playbook(1) page de manuel.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.