Skip to content

FEAT: interrupteur SSH + changement du mot de passe systeme dans les … - #228

Merged
maisonnavejul merged 1 commit into
mainfrom
dev
Aug 7, 2026
Merged

maisonnavejul merged 1 commit into
mainfrom
dev

Conversation

@maisonnavejul

Copy link
Copy Markdown
Collaborator

…reglages, correction du calcul CPU/RAM, bump 0.0.33-alpha

Securite

  • Nouvelle section "Acces SSH" placee juste avant la Zone Dangereuse, visible et utilisable par les admins uniquement.
  • Interrupteur du service SSH persistant au reboot : agit sur ssh.service ET ssh.socket (sinon le socket relance sshd et le bouton n'a aucun effet), et masque les unites a l'extinction pour qu'une mise a jour d'openssh-server ne le reactive pas silencieusement.
  • Detection du mot de passe par defaut de l'image via crypt(3)/libxcrypt en ctypes : Debian 13 utilise yescrypt, que openssl passwd ne gere pas, et le module crypt de Python a ete retire en 3.13. Le script ne renvoie qu'un verdict, jamais le hash.
  • Changement du mot de passe via chpasswd, secret ecrit sur stdin donc absent de ps et des journaux. Minimum 10 caracteres, refus du mot de passe par defaut et des caracteres de controle qui permettraient d'injecter une seconde ligne.
  • Les 4 routes sont gardees par verifyToken + role Admin.

Contexte : install.sh accorde sudo NOPASSWD au compte applicatif, donc tant que le mot de passe par defaut est en place, un acces SSH equivaut a un acces root.

CPU/RAM

  • Echantillonnage deplace du handler HTTP vers un ticker serveur de 5 s, sur le modele du cron CasaOS. si.currentLoad() mesure la charge depuis son appel precedent via un compteur global au processus : avec trois pollers (Settings 5 s, CpuRamWidget 8 s, StorageWidget 30 s) multiplies par onglet et par utilisateur, la fenetre de mesure tombait a quelques millisecondes et la valeur affichee devenait aberrante.
  • ramTotal n'etait jamais renvoye par getServerInfo alors que le widget le lit.
  • Suppression du filtre "moyenne intelligente" cote widget : son seuil proportionnel (mediane x 0.3) ne tolerait que +/- 0,6 point a 2 % de CPU et plus rien du tout a 0 %, si bien que les jauges restaient collees au repos pendant que la charge montait.

Divers

  • Retrait de l'indicateur "Web" de l'etat de connexion, cle i18n conservee.

Description

Type de changement

  • 🐛 Bug fix (correction d'un problème)
  • ✨ Nouvelle fonctionnalité (ajout de fonctionnalité)
  • 💥 Breaking change (changement qui casse la compatibilité)
  • 📝 Documentation (mise à jour de la documentation)
  • 🎨 Style (formatage, points-virgules manquants, etc.)
  • ♻️ Refactoring (ni bug fix ni nouvelle fonctionnalité)
  • ⚡ Performance (amélioration des performances)
  • ✅ Tests (ajout ou correction de tests)
  • 🔧 Chore (maintenance, dépendances, etc.)

Motivation et contexte

Comment cela a été testé ?

  • Tests unitaires
  • Tests d'intégration
  • Tests manuels
  • Aucun test nécessaire

Détails des tests :

Screenshots (si applicable)

Checklist

  • Mon code suit les standards de style de ce projet
  • J'ai effectué une auto-review de mon code
  • J'ai commenté mon code, particulièrement dans les zones complexes
  • J'ai mis à jour la documentation correspondante
  • Mes changements ne génèrent pas de nouveaux warnings
  • J'ai ajouté des tests qui prouvent que mon fix fonctionne ou que ma fonctionnalité marche
  • Les tests unitaires nouveaux et existants passent localement
  • Toutes les dépendances nécessaires ont été ajoutées
  • J'ai lu et signé le CLA (le bot vous guidera si ce n'est pas fait)

Impact sur les utilisateurs

  • Aucun impact
  • Impact mineur (amélioration, bug fix)
  • Impact majeur (nouvelle fonctionnalité, breaking change)

Détails :

Notes supplémentaires


Merci pour votre contribution à Ryvie ! 🎉

…reglages, correction du calcul CPU/RAM, bump 0.0.33-alpha

Securite
- Nouvelle section "Acces SSH" placee juste avant la Zone Dangereuse, visible et
  utilisable par les admins uniquement.
- Interrupteur du service SSH persistant au reboot : agit sur ssh.service ET
  ssh.socket (sinon le socket relance sshd et le bouton n'a aucun effet), et
  masque les unites a l'extinction pour qu'une mise a jour d'openssh-server ne
  le reactive pas silencieusement.
- Detection du mot de passe par defaut de l'image via crypt(3)/libxcrypt en
  ctypes : Debian 13 utilise yescrypt, que openssl passwd ne gere pas, et le
  module crypt de Python a ete retire en 3.13. Le script ne renvoie qu'un
  verdict, jamais le hash.
- Changement du mot de passe via chpasswd, secret ecrit sur stdin donc absent de
  ps et des journaux. Minimum 10 caracteres, refus du mot de passe par defaut et
  des caracteres de controle qui permettraient d'injecter une seconde ligne.
- Les 4 routes sont gardees par verifyToken + role Admin.

Contexte : install.sh accorde sudo NOPASSWD au compte applicatif, donc tant que
le mot de passe par defaut est en place, un acces SSH equivaut a un acces root.

CPU/RAM
- Echantillonnage deplace du handler HTTP vers un ticker serveur de 5 s, sur le
  modele du cron CasaOS. si.currentLoad() mesure la charge depuis son appel
  precedent via un compteur global au processus : avec trois pollers (Settings
  5 s, CpuRamWidget 8 s, StorageWidget 30 s) multiplies par onglet et par
  utilisateur, la fenetre de mesure tombait a quelques millisecondes et la
  valeur affichee devenait aberrante.
- ramTotal n'etait jamais renvoye par getServerInfo alors que le widget le lit.
- Suppression du filtre "moyenne intelligente" cote widget : son seuil
  proportionnel (mediane x 0.3) ne tolerait que +/- 0,6 point a 2 % de CPU et
  plus rien du tout a 0 %, si bien que les jauges restaient collees au repos
  pendant que la charge montait.

Divers
- Retrait de l'indicateur "Web" de l'etat de connexion, cle i18n conservee.
@maisonnavejul
maisonnavejul merged commit 18aa043 into main Aug 7, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant