Planifications ODA : la tâche SSH cleaner qui supprime les clés SSH obsolètes
Introduction
Oracle a ajouté une nouvelle planification sur l’ODA dans les ensembles de correctifs 19.16. Cette nouvelle planification, que l’on peut voir comme une tâche, s’appelle SSH cleaner job to clean up stale SSH keys. Son nom indique assez clairement ce qu’elle fait. La nouvelle planification SSH cleaner job est activée par défaut et s’exécute toutes les 30 minutes. Elle supprime les fichiers ida_rsa et id_rsa.pub des utilisateurs grid, oracle et root. Si vous ignoriez l’existence de cette nouvelle planification et que vous dépendez des clés SSH, alors, comme moi, vous verrez des choses cesser de fonctionner.
Voici ma solution, accompagnée de quelques conseils supplémentaires pour gérer les clés SSH sur un ODA.
Planifications ODA
Liste des planifications ODA disponibles : 19.15 et 19.16.
Une nouvelle planification a été ajoutée dans la version 19.16 :
--19.15 and lower [root@oda101vm01 ~]# odacli list-schedules ID Name Description CronExpression Disabled ------------------------------------- ------------------------- -------------------------------------------------- ------------------- ----- 1e2eccb9-c275-47c4-97c9-9bb6f0ec419c Rebalance Monitoring Rebalance poll and Power modification 0 0/5 * 1/1 * ? * true 283ca871-3905-441c-a97d-163ae75fe58b feature_tracking_job Feature tracking job 0 0 20 ? * WED * false 6c4cdf12-6ecf-4d82-893d-a43378a9a467 bom maintenance bom reports generation 0 0 1 ? * SUN * false c752c67f-c677-40ae-833e-24aafcad9818 Log files Cleanup Auto log file purge bases on policy 0 0 3 1/1 * ? * false fe3b1fc3-0bb3-4ecf-98d6-af4d40a6b0b5 AgentState metastore cleanup internal agentstateentry metastore maintenance 0 0 0 1/1 * ? * false --19.16 The SSHCleanerJob is enabled by default (Disabled = false) [root@oda101vm01 ~]# odacli list-schedules (node 1) ID Name Description CronExpression Disabled ------------------------------------- ------------------------- -------------------------------------------------- ------------------- ----- 1e2eccb9-c275-47c4-97c9-9bb6f0ec419c Rebalance Monitoring Rebalance poll and Power modification 0 0/5 * 1/1 * ? * true 283ca871-3905-441c-a97d-163ae75fe58b feature_tracking_job Feature tracking job 0 0 20 ? * WED * false 6c4cdf12-6ecf-4d82-893d-a43378a9a467 bom maintenance bom reports generation 0 0 1 ? * SUN * false b0b28833-80ee-4ff8-8a8a-0bbd4949ea63 SSHCleanerJob SSH cleaner job to clean up stale SSH keys 0 0/30 * 1/1 * ? * false c752c67f-c677-40ae-833e-24aafcad9818 Log files Cleanup Auto log file purge bases on policy 0 0 3 1/1 * ? * false fe3b1fc3-0bb3-4ecf-98d6-af4d40a6b0b5 AgentState metastore cleanup internal agentstateentry metastore maintenance 0 0 0 1/1 * ? * false [root@oda102vm01 ~]# odacli list-schedules (node 2) ID Name Description CronExpression Disabled ------------------------------------ ------------------------- -------------------------------------------------- ------------------ -------- 5a1aa639-4c6a-4d96-bb02-d3ed4e2b2245 feature_tracking_job Feature tracking job 0 0 20 ? * WED * false 704e2f3f-ef41-4b81-8246-d062203015ea bom maintenance bom reports generation 0 0 1 ? * SUN * false b0aa90ca-f847-47c1-beef-88bc42306c11 AgentState metastore cleanup internal agentstateentry metastore maintenance 0 0 0 1/1 * ? * false be68182f-81e1-41c8-9900-89e7d7900d52 SSHCleanerJob SSH cleaner job to clean up stale SSH keys 0 0/30 * 1/1 * ? * false ec0848d0-a17a-40ca-9c8f-16810b701fe1 Log files Cleanup Auto log file purge bases on policy 0 0 3 1/1 * ? * false f2e6c810-01ac-40f7-9c0e-21905d67df45 Rebalance Monitoring Rebalance poll and Power modification 0 0/5 * 1/1 * ? * true
Désactiver la planification SSHCleanerJob.
Les planifications sont propres à chaque nœud du cluster bare metal ou DBSystem. Vous devrez donc exécuter la commande sur les deux nœuds.
--If desired disable the SSHKey cleanup job [root@oda101vm02 ~]# odacli update-schedule -i b0b28833-80ee-4ff8-8a8a-0bbd4949ea63 -d Update job schedule success [root@oda101vm01 ~]# odacli list-schedules (node 1) ID Name Description CronExpression Disabled ------------------------------------- ------------------------- -------------------------------------------------- ------------------- ----- 1e2eccb9-c275-47c4-97c9-9bb6f0ec419c Rebalance Monitoring Rebalance poll and Power modification 0 0/5 * 1/1 * ? * true 283ca871-3905-441c-a97d-163ae75fe58b feature_tracking_job Feature tracking job 0 0 20 ? * WED * false 6c4cdf12-6ecf-4d82-893d-a43378a9a467 bom maintenance bom reports generation 0 0 1 ? * SUN * false b0b28833-80ee-4ff8-8a8a-0bbd4949ea63 SSHCleanerJob SSH cleaner job to clean up stale SSH keys 0 0/30 * 1/1 * ? * true c752c67f-c677-40ae-833e-24aafcad9818 Log files Cleanup Auto log file purge bases on policy 0 0 3 1/1 * ? * false fe3b1fc3-0bb3-4ecf-98d6-af4d40a6b0b5 AgentState metastore cleanup internal agentstateentry metastore maintenance 0 0 0 1/1 * ? * false [root@oda102vm01 ~]# odacli list-schedules (node 2) ID Name Description CronExpression Disabled ------------------------------------ ------------------------- -------------------------------------------------- ------------------ -------- 5a1aa639-4c6a-4d96-bb02-d3ed4e2b2245 feature_tracking_job Feature tracking job 0 0 20 ? * WED * false 704e2f3f-ef41-4b81-8246-d062203015ea bom maintenance bom reports generation 0 0 1 ? * SUN * false b0aa90ca-f847-47c1-beef-88bc42306c11 AgentState metastore cleanup internal agentstateentry metastore maintenance 0 0 0 1/1 * ? * false be68182f-81e1-41c8-9900-89e7d7900d52 SSHCleanerJob SSH cleaner job to clean up stale SSH keys 0 0/30 * 1/1 * ? * true ec0848d0-a17a-40ca-9c8f-16810b701fe1 Log files Cleanup Auto log file purge bases on policy 0 0 3 1/1 * ? * false f2e6c810-01ac-40f7-9c0e-21905d67df45 Rebalance Monitoring Rebalance poll and Power modification 0 0/5 * 1/1 * ? * true
Consulter les détails de la planification SSHCleanerJob
Pour consulter les détails supplémentaires de la planification :
--review the odacli help for describing a schedule.
[root@oda101vm01 ~]# odacli describe-schedule -h
describe-schedule
Describes a specific schedule
Syntax
describe-schedule -i [-j] [-h]
Parameters
Options Description
------------------------- -------------------------------------------------
--scheduleid,-i (*) Schedule ID
--json,-j Specifies to show output in JSON format
--help,-h Specifies to display help message
[root@oda101vm01 ~]# odacli describe-schedule -i b0b28833-80ee-4ff8-8a8a-0bbd4949ea63
Job Schedule details
----------------------------------------------------------------
ID: b0b28833-80ee-4ff8-8a8a-0bbd4949ea63
JobName: SSHCleanerJob
JobGroup: SSHCleanerJobGroup
CronExpression: 0 0/30 * 1/1 * ? *
JobClass: com.oracle.dcs.agent.schedule.jobs.SSHCleanerJob
UpdatedTime: November 25, 2022 4:50:55 PM EST
Description: SSH cleaner job to clean up stale SSH keys
Disable: true
Solution de contournement à la DÉSACTIVATION de la planification SSHCleanerJOB
Solution de contournement pour empêcher la planification SSHCleanerJob de supprimer les fichiers de clés SSH.
Au départ, je ne m’étais pas rendu compte de l’ajout de SSHCleanerJob et j’avais besoin d’une solution rapide pour empêcher la suppression des clés SSH. J’ai rendu les fichiers id_rsa et id_rsa.pub immuables, puis j’ai annulé ce changement une fois les planifications SSHCleanerJob désactivées. Je ne recommande pas cette méthode comme solution permanente.
--ssh key lockdown (make immutable) as the root user on each node. chattr +i -V /root/.ssh/id_rsa* chattr +i -V /home/grid/.ssh/id_rsa* chattr +i -V /home/oracle/.ssh/id_rsa* --ssh key unlock (required to make any changes to these files.) chattr -i /root/.ssh/id_rsa* chattr -i /home/grid/.ssh/id_rsa* chattr -i /home/oracle/.ssh/id_rsa*
RECOMMANDATION – SAUVEGARDER les fichiers de CLÉS SSH
Sauvegardez vos fichiers de clés SSH.
Lors des étapes d’application des correctifs ODA, les fichiers de clés SSH sont supprimés et ne sont pas recréés. C’est un autre comportement frustrant de l’application des correctifs. Pour y remédier, je recommande de sauvegarder vos clés SSH et votre fichier authorized_key avant d’appliquer les correctifs ODA.
--perform the following for root, oracle, and grid users on both nodes --root cp -p ~/.ssh/id_rsa /backup_location/`whoami`.`uname -n`.id_rsa cp -p ~/.ssh/id_rsa.pub /backup_location/`whoami`.`uname -n`.id_rsa.pub cp -p ~/.ssh/authorized_keys /backup_location/`whoami`.`uname -n`. authorized_keys --grid cp -p ~/.ssh/id_rsa /backup_location/`whoami`.`uname -n`.id_rsa cp -p ~/.ssh/id_rsa.pub /backup_location/`whoami`.`uname -n`.id_rsa.pub cp -p ~/.ssh/authorized_keys /backup_location/`whoami`.`uname -n`. authorized_keys --oracle cp -p ~/.ssh/id_rsa /backup_location/`whoami`.`uname -n`.id_rsa cp -p ~/.ssh/id_rsa.pub /backup_location/`whoami`.`uname -n`.id_rsa.pub cp -p ~/.ssh/authorized_keys /backup_location/`whoami`.`uname -n`. authorized_keys
Restaurez vos fichiers de clés SSH.
Une fois les correctifs ODA appliqués, restaurez les clés SSH et le fichier authorized_keys d’origine.
--perform the following for root, oracle, and grid users on both nodes keeping the original file timestamp. --root cp -p /backup_location/`whoami`.`uname -n`.id_rsa ~/.ssh/id_rsa cp -p /backup_location/`whoami`.`uname -n`.id_rsa.pub ~/.ssh/id_rsa.pub cp -p /backup_location/`whoami`.`uname -n`.authorized_keys ~/.ssh/authorized_keys --grid cp -p /backup_location/`whoami`.`uname -n`.id_rsa ~/.ssh/id_rsa cp -p /backup_location/`whoami`.`uname -n`.id_rsa.pub ~/.ssh/id_rsa.pub cp -p /backup_location/`whoami`.`uname -n`.authorized_keys ~/.ssh/authorized_keys --oracle cp -p /backup_location/`whoami`.`uname -n`.id_rsa ~/.ssh/id_rsa cp -p /backup_location/`whoami`.`uname -n`.id_rsa.pub ~/.ssh/id_rsa.pub cp -p /backup_location/`whoami`.`uname -n`.authorized_keys ~/.ssh/authorized_keys
CONCLUSION
C’est Oracle qui fixe les règles.
En général, quand Oracle ajoute une nouvelle fonctionnalité, c’est pour une bonne raison. Ce n’est pas toujours le cas, comme pour la tâche SSH cleaner job.
Vérifiez auprès du soutien Oracle.
J’ai ouvert une SR auprès du soutien Oracle pour m’assurer de ne rien faire que je ne devrais pas faire. Oracle a confirmé qu’il est permis de désactiver la tâche SSH cleaner job selon vos besoins. Documents de référence : Application de correctifs à Oracle Database Appliance, Interface de ligne de commande d’Oracle Database Appliance