Avant-propos
Notre « amitié » a commencé il y a deux ans. Je suis arrivé sur un nouveau lieu de travail, où l'administrateur précédent m'a laissé ce logiciel en héritage. Je n'ai rien trouvé sur Internet autre que la documentation officielle. Même maintenant, si vous recherchez « gouvernail » sur Google, dans 99 % des cas, vous obtiendrez : des gouvernails de navire et des quadricoptères. J'ai réussi à trouver une approche avec lui. La communauté de ce logiciel étant négligeable, j'ai décidé de partager mon expérience et mon râteau. Je pense que cela sera utile à quelqu'un.
Alors gouvernail
Rudder est un utilitaire open source d'audit et de gestion de configuration qui permet d'automatiser la configuration du système. Il fonctionne sur le principe de l'installation d'un agent pour chaque utilisateur final. Grâce à une interface pratique, nous pouvons surveiller dans quelle mesure notre infrastructure est conforme à toutes les politiques spécifiées.
l'utilisation de
Ci-dessous, je vais énumérer pourquoi j'utilise Rudder.
-
Contrôle des fichiers et des configurations : ./ssh/authorized_keys ; /etc/hosts ; iptables ; (et puis là où mène votre imagination)
-
Contrôle des packages installés : zabbix.agent ou tout autre logiciel
Installation du serveur
Récemment j'ai mis à jour de la version 5 à 6.1, tout s'est bien passé. Vous trouverez ci-dessous les commandes pour Deban/Ubuntu mais il existe également un support :
Je vais cacher l'installation dans les spoilers pour ne pas vous distraire.
Becquet
Dépendances
rudder-server nécessite Java RE au moins la version 8, peut être installé à partir du référentiel standard :
Vérifier s'il est installé
java -version
si la conclusion
-bash: java: command not found
puis installez
apt install default-jre
Serveur
Importer la clé
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Voici l'impression elle-même
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Comme nous n'avons pas d'abonnement payant, nous ajoutons le référentiel suivant
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Mettre à jour la liste des référentiels et installer le serveur
apt update
apt install rudder-server-root
Créer un utilisateur administrateur
rudder server create-user -u admin -p "Ваш Пароль"
À l'avenir, nous pourrons gérer les utilisateurs via la configuration
Ça y est, le serveur est prêt.
Réglage du serveur
Vous devez maintenant ajouter les adresses IP des agents ou un sous-réseau entier à l'agent rudder, nous nous concentrons sur la politique de sécurité.
Paramètres -> Général
Dans le champ « Ajouter un réseau », saisissez l'adresse et le masque au format xxxx/xx. Afin de permettre l'accès depuis toutes les adresses du réseau interne (À moins bien sûr qu'il s'agisse d'un réseau de test et que vous soyez derrière NAT) saisissez : 0.0.0.0/0
Important - après avoir ajouté l'adresse IP, n'oubliez pas de cliquer sur Enregistrer les modifications, sinon rien ne sera enregistré.
Ports
Ouvrez les ports suivants sur le serveur
-
443 - tcp
-
5309 - tcp
-
514 - UDP
Nous avons réglé la configuration initiale du serveur.
Installation des agents
Becquet
Ajouter une clé
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | sudo apt-key add -
Empreinte digitale de clé
pub 4096R/474A19E8 2011-12-15 Rudder Project (release key) <[email protected]>
Key fingerprint = 7C16 9817 7904 212D D58C B4D1 9322 C330 474A 19E8
Ajout d'un référentiel
echo "deb http://repository.rudder.io/apt/6.1/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
Installation de l'agent
apt update
apt install rudder-agent
Configuration des agents
Nous indiquons à l'agent l'adresse IP du serveur de politique
rudder agent policy-server <rudder server ip or hostname> #Без скобок. Можно также использовать доменное имя
En exécutant la commande suivante, nous enverrons une demande pour ajouter un nouvel agent au serveur, dans quelques minutes il apparaîtra dans la liste des nouveaux agents, j'expliquerai comment l'ajouter dans la section suivante
rudder agent inventory
Nous pouvons également forcer l'agent à démarrer et il enverra la demande instantanément
rudder agent run
Notre agent est installé, passons à autre chose.
Ajout d'agents
Se connecter
https://127.0.0.1/rudder/index.html
Votre agent apparaîtra dans la section « Accepter les nouveaux nœuds », cochez la case et cliquez sur Accepter
Cela devrait prendre un peu de temps jusqu'à ce que le système vérifie la conformité du serveur.
Création de groupes de serveurs
Créons un groupe (cela reste du divertissement), je ne sais pas pourquoi les développeurs ont créé un groupe aussi odieux, mais si je comprends bien, il n'y a pas d'autre moyen. Accédez à la section Gestion des nœuds -> Groupes et cliquez sur Créer, sélectionnez un groupe statique et un nom.
Nous filtrons le serveur dont nous avons besoin par fonctionnalités spéciales, par exemple par adresse IP, et enregistrons
Le groupe est constitué.
Mise en place de règles
Accédez à Politique de configuration → Règles et créez une nouvelle règle
Ajoutez le groupe préparé plus tôt (cela peut être fait plus tard)
Et nous formons une nouvelle directive
Créons une directive pour ajouter des clés publiques à .ssh/authorized_keys. Je l'utilise lors du départ d'un nouvel employé, ou pour la réassurance, par exemple, si quelqu'un coupe accidentellement ma clé.
Allez dans Politique de configuration → Directives, à gauche, nous voyons « Bibliothèque de directives ». Recherchez « Accès à distance → Clés autorisées SSH », à droite, cliquez sur Créer une directive.
Nous saisissons les informations sur l'utilisateur et ajoutons sa clé. Ensuite, sélectionnez la politique d'application
-
Global – Politique par défaut
-
Appliquer - Exécuter sur les serveurs sélectionnés
-
Audit - Effectuera un audit et indiquera quels clients ont la clé
Assurez-vous d'indiquer notre règle
Ensuite, enregistrez et vous avez terminé.
Chèque
Clé ajoutée avec succès
Petits pains
L'agent fournit des informations complètes sur le serveur. Listes des packages installés, des interfaces, des ports ouverts et bien plus encore, que vous pouvez voir dans la capture d'écran ci-dessous
Vous pouvez également installer et contrôler le logiciel non seulement sous Linux mais aussi sous Windows, je n'ai pas vérifié ce dernier, ce n'était pas nécessaire.
De l'auteur
Vous vous demandez peut-être pourquoi réinventer la roue si ansible et puppet ont déjà été inventés il y a longtemps ?
Je réponds : Ansible présente certains inconvénients, par exemple, nous ne voyons pas dans quel état se trouve cette configuration actuellement, ou la situation familière lorsque vous lancez un rôle ou un playbook et que des erreurs de crash apparaissent, et vous commencez à monter sur le serveur et à voir quel paquet a été mis à jour où. Et je n’ai tout simplement pas travaillé avec Puppet.
Y a-t-il des inconvénients à Rudder ? Beaucoup... A partir du fait que les agents tombent et qu'il faut les réinstaller ou utiliser la commande rudder reset. (mais d'ailleurs, je n'ai pas encore vu cela dans la version 6), ce qui entraîne une configuration extrêmement complexe et une interface illogique.
Y a-t-il des avantages ? Et les avantages sont également nombreux : contrairement au célèbre Ansible, nous disposons d'une interface Web dans laquelle vous pouvez voir la conformité que nous avons appliquée. Par exemple, les ports dépassent-ils du monde, quel est l'état du pare-feu, des agents de sécurité sont-ils installés ou d'autres gadgets.
Ce logiciel est parfait pour le service de sécurité de l'information, car l'état de l'infrastructure sera toujours sous vos yeux, et si l'une des règles s'allume en rouge, c'est une raison pour visiter le serveur. Comme je l’ai dit, j’utilise Rudder depuis 2 ans maintenant, et si vous en fumez un peu, la vie s’améliore. Le plus difficile dans une grande infrastructure est que vous ne vous souvenez pas de l'état dans lequel se trouve le serveur, si June a manqué l'installation des agents de sécurité ou s'il a correctement configuré iptables, mais le gouvernail vous aidera à vous tenir au courant de tous les événements. Conscient signifie armé ! )
PS Cela s'est avéré bien plus que prévu, je ne décrirai pas comment installer des packages, si du coup il y a des demandes, j'écrirai une deuxième partie.
PSS L'article est à titre informatif, j'ai décidé de le partager car il y a très peu d'informations sur Internet. Peut-être que cela intéressera quelqu'un. Bonne journée, chers amis)
Comme la publicité
Serveurs épiques - Est
Source: habr.com