De la bonne pratique de protéger vos scripts et mots de passe
- piratebab
- Site Admin
- Messages : 5858
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : En ligne
Comme je l'ai déja écrit, il subsustera toujours sur le client à minima un secretqui permet d'ouvrir le coffre. Mais si ce secret un associé a une info liée à la machine elle même, cela rends plus compliqué son utilisation sur une autre machine.
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Re,
Merci en tout cas des conseils.
Voici comment j'ai procédé:
Sur la machine ou se trouve le script:
Le mot de passe crypté par clef openssl est dans un fichier.
La clef est déplacé sur une autre machine.
Le script contient seulement le login. Le mot de passe est récupéré avec cette commande:
pass=$(openssl rsautl -inkey $1 -decrypt <~/.cache/.pass);
Le script est convertit en binaire avec shc.
Je lance le script sur la machine distante avec:
cat ~/.ssh/key | ssh machine_distante '/chemin/vers/le/script.sh <(cat -)'
Je crois que comme ça je suis plutôt tranquille...
Reste soit à faire un nohup soit installer screen sur le client.
Ça vous semble sécurisé ?
Merci en tout cas des conseils.
Voici comment j'ai procédé:
Sur la machine ou se trouve le script:
Le mot de passe crypté par clef openssl est dans un fichier.
La clef est déplacé sur une autre machine.
Le script contient seulement le login. Le mot de passe est récupéré avec cette commande:
pass=$(openssl rsautl -inkey $1 -decrypt <~/.cache/.pass);
Le script est convertit en binaire avec shc.
Je lance le script sur la machine distante avec:
cat ~/.ssh/key | ssh machine_distante '/chemin/vers/le/script.sh <(cat -)'
Je crois que comme ça je suis plutôt tranquille...
Reste soit à faire un nohup soit installer screen sur le client.

Ça vous semble sécurisé ?
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
- PengouinPdt
- Contributeur
- Messages : 1343
- Inscription : 23 avr. 2016, 23:37
- Localisation : 47/FR
- Diaspora* : https://framasphere.org/u/hucste
- Contact :
- Status : Hors-ligne
En tout cas, chapeau ...
Mais je ne comprends pas l'intérêt dans l'immédiat ... d'autant que tu encapsules dans un flux SSH, qui lui normalement demande une authentification, au mieux par clé authentifiée, au pire par mot-de-passe ... je dois assurément louper quelque chose, malgré les explications données plus haut !
Mais je ne comprends pas l'intérêt dans l'immédiat ... d'autant que tu encapsules dans un flux SSH, qui lui normalement demande une authentification, au mieux par clé authentifiée, au pire par mot-de-passe ... je dois assurément louper quelque chose, malgré les explications données plus haut !
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Salut,PengouinPdt a écrit :En tout cas, chapeau ...
Mais je ne comprends pas l'intérêt dans l'immédiat ... d'autant que tu encapsules dans un flux SSH, qui lui normalement demande une authentification, au mieux par clé authentifiée, au pire par mot-de-passe ... je dois assurément louper quelque chose, malgré les explications données plus haut !
La connexion ssh est initiée sans mot de passe, par clef. La clef privée étant sur la machine qui initie la connexion, pas de problème de sécurité.
Le mot de passe est décrypté à la volée sur la machine distante après lecture de la clef encapsulée envoyée dans une commande ssh.
On a donc sur la machine qui exécute le script uniquement le mot de passe crypté, sans la clef.
Impossible, de retrouver le mot de passe en clair sans accès à la machine qui détient le clef.
Pour faire court:
Je lance un script distant via ssh.
La clef pour décrypter le mot de passe dont le script distant à besoin est envoyée dans la même commande qui lance le script.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Salut,
Elle se trouve (la clef) si je ne me trompe pas, temporairement dans une variable de la machine "cliente".
D'ailleurs ça me fait penser qu'il faut que je vide la variable à le fermeture du script.
Je sais bien que ce n'est peut-être pas parfait.
Mais d'après tout ce que j'ai pu lire et chercher sur le net, y'a pas 36 solutions. D'ailleurs je n'en ai trouvé aucune d'aussi satisfaisante que la mienne (en toute humilité évidemment...).
Non, c'est la clef qui transite, et elle est encapsulée dans un tunnel ssh. Le mot de passe est dans un fichier crypté avec openssl sur la machine ou se trouve le script.piratebab a écrit :Donc ton MDP circule en clair entre les machines.
Elle se trouve (la clef) si je ne me trompe pas, temporairement dans une variable de la machine "cliente".
D'ailleurs ça me fait penser qu'il faut que je vide la variable à le fermeture du script.
Je sais bien que ce n'est peut-être pas parfait.
Mais d'après tout ce que j'ai pu lire et chercher sur le net, y'a pas 36 solutions. D'ailleurs je n'en ai trouvé aucune d'aussi satisfaisante que la mienne (en toute humilité évidemment...).
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
- PengouinPdt
- Contributeur
- Messages : 1343
- Inscription : 23 avr. 2016, 23:37
- Localisation : 47/FR
- Diaspora* : https://framasphere.org/u/hucste
- Contact :
- Status : Hors-ligne
Si, c'est intéressant en effet ...
Mais, étant donné que tu es déjà encapsulé dans ta connexion SSH, je trouve que tu rajoutes une couche de complexité, un niveau de sécurité ... tu n'es pas sûr de ta station ou du serveur ?!
Rassures-moi, ton niveau de chiffrement SSH est correct ?
4096 bits minimum ... ?
Les méthodes utilisées : absolument RSA, voire mieux ED25519 ?
Chiffrements utilisés : ok ?
Modes MAC EtM ?
Option "No Roaming", côté client désactivé ? (surtout si < v7.2) ...
Mais, étant donné que tu es déjà encapsulé dans ta connexion SSH, je trouve que tu rajoutes une couche de complexité, un niveau de sécurité ... tu n'es pas sûr de ta station ou du serveur ?!
Rassures-moi, ton niveau de chiffrement SSH est correct ?
4096 bits minimum ... ?
Les méthodes utilisées : absolument RSA, voire mieux ED25519 ?
Chiffrements utilisés : ok ?
Modes MAC EtM ?
Option "No Roaming", côté client désactivé ? (surtout si < v7.2) ...
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Je ne comprend pas. Quel niveau de complexité est en trop d'après toi ?PengouinPdt a écrit :Si, c'est intéressant en effet ...
Mais, étant donné que tu es déjà encapsulé dans ta connexion SSH, je trouve que tu rajoutes une couche de complexité, un niveau de sécurité ... tu n'es pas sûr de ta station ou du serveur ?!
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
- PengouinPdt
- Contributeur
- Messages : 1343
- Inscription : 23 avr. 2016, 23:37
- Localisation : 47/FR
- Diaspora* : https://framasphere.org/u/hucste
- Contact :
- Status : Hors-ligne
Je ne dis pas que c'est en trop ... je trouve cela en trop ... pour un usage quotidien ... mais je comprends ton besoin.
D'où ma question concernant sur le fait que tu ne sois pas sûr de ton "serveur" alors que tu communiques en SSH, voire mes questions en rapport avec SSH !
ou, alors, c'est dans le but de faire exécuter cette commande, par SSH, par un tiers, sans qu'il connaisse le couple id/pass pour exécuter ladite commande ;)
là, cela a vraiment du sens :p
D'où ma question concernant sur le fait que tu ne sois pas sûr de ton "serveur" alors que tu communiques en SSH, voire mes questions en rapport avec SSH !
ou, alors, c'est dans le but de faire exécuter cette commande, par SSH, par un tiers, sans qu'il connaisse le couple id/pass pour exécuter ladite commande ;)
là, cela a vraiment du sens :p
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
La raison est simple:
Sur mon serveur j'héberge des sites Web dont les CMS peuvent être piratés. Ça arrive souvent, même quand on est prudent (il suffit d'un plug pas à jour).
Une fois le CMS piraté, en étant un peu malin tu peut accéder au système. Même si c'est juste en lecture ça peut être très dangereux; je pense notamment à des scripts qui contiendraient les mots de passe... (Dump SQL ou Backup FTP par exemple).
En cryptant les mots de passe et en stockant la clé de décryptage ailleurs, je limite énormément les risques.
Je n'ai pas de doutes sur la sécurité de mon serveur lui même (SSH, FTP et autres services sont blindés).
Par contre les CMS hébergés peuvent parfois être piratés. C'est d'ailleurs la cible préférée des scripts kiddies.
Sur mon serveur j'héberge des sites Web dont les CMS peuvent être piratés. Ça arrive souvent, même quand on est prudent (il suffit d'un plug pas à jour).
Une fois le CMS piraté, en étant un peu malin tu peut accéder au système. Même si c'est juste en lecture ça peut être très dangereux; je pense notamment à des scripts qui contiendraient les mots de passe... (Dump SQL ou Backup FTP par exemple).
En cryptant les mots de passe et en stockant la clé de décryptage ailleurs, je limite énormément les risques.
Je n'ai pas de doutes sur la sécurité de mon serveur lui même (SSH, FTP et autres services sont blindés).
Par contre les CMS hébergés peuvent parfois être piratés. C'est d'ailleurs la cible préférée des scripts kiddies.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
- PengouinPdt
- Contributeur
- Messages : 1343
- Inscription : 23 avr. 2016, 23:37
- Localisation : 47/FR
- Diaspora* : https://framasphere.org/u/hucste
- Contact :
- Status : Hors-ligne
Beh, voilà ... là, ça a du sens :p
Merci de tes explications :D
Merci de tes explications :D
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
-
- Membre
- Messages : 31
- Inscription : 01 mai 2016, 10:53
- Status : Hors-ligne
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2
hQIOAwAAAAAAAAAAEAgAg4erpvTElZHDK3OG7dB7xKzl5nMvwVYD15g1HDsDX62V
ej88bKGb3uKE8RtG9xwuJji3uUIvGj3H7o0/lewFpmqsQKO1UBJ5UrAKw97PMlx9
tdEAPV8k0F+9UygaKthzBFHCCpkeWHRT1K3QJT/KMOy23yzLfDwZkwdUCYO10QeZ
yFvWxPlxjd6xbrut1p6xnJ9CFtcvptQjACzJxKHdttg9atC6x9jCzleCUA3AlX1d
JrEt5WQAWqR4Gi8xGNYK1EpZibu2cCOIiPGTJbD7L478CPqP2+uz7+fVA6FyrU9Y
/J/dv8Lgu26CFzz5vFxK+zSNX60bL/ppUHifGkXQLQf/ZJ53ggGR14PIq/E0jnoo
4Ird7FIIpyJaRdGUVGTRjrjwMkw53R+WHZirxIL+9l9epPnu+3Y6/tHeMnDLiI2V
dU5WlbeK7YRRwRrN4qgYA6dkE2xolAy1us1M39a0IWN/NnTXUuSsghxVP1gKMRzx
3dHKCwEfptKXfiVERuH2JFja+jtEvevVvFsPcvICRO2Ry5hhKNBG4uM6AGYtrdlo
tSk8a8LOn9QayZWBy1xvQlisLWeVBdTGG7Qiso2OMNqf9uZ3VAzjS4WhO5sjOW+Q
ZHQ98JNmf7b75E+bn9kgzSeaexO4Wdfmk8eYIpsVEC3df04h00bbRgZ7I1blGPS3
19LpATS004BhViR+v5fEn+xTSy/KHgZEvyORhztjhuEjuK+/4p7B43oeVz07Lyc+
ozdqJNr09Nn7C3TVcAynAIMmjyRoZa9k067Oi8sHQ1cg+DS70PLxKblphe0dTMB2
JYVB9G2EVbWuqGacMC21eIyH4IEVk7O6y5m5F12MnQt/+NVN/UjgDOkAvENwirg0
fvpGnJj51NisAH5lxx3cn6SPqD+mFxov1AHdHLc87BDbRiJZtqDAXMlXLdnFV8oo
nBFtDfjz5cGHNMfe0ApIjo24el+7b+1jSpU0XJjv8m3S0MXXXXjxhCvdmw+U7PBD
wIhoZxSWXFSeDBLLODsNzvp6LDK1zX5D+AwAPjP58l7GWBUMBffhHUrR03CQU9ZQ
1ZLG8UzK2DgpW8itGZPLCCHEQMz5htYF/2ImOYr4b9Liq53u5iMQL/2CUNkPeuLw
w7dPcEUjNQ5jqG7ff2bklObRpIpQpSO4hkCYU02u5x+D03dgyAQvLfsRYF1LhZU3
GPI1+v+yOusF/AGTZxBFRzEexqmwP7lzzHUsR6L8OJyPvIxPs2Lrwz7GFf/Es66F
YFHXFCvH2hhcERVRSeCw/er6HcuzsRr9hM1sj1EC/IbwR6CV1GTZbhhOLLtjGjtm
GJcOqkLd0L6TySM5zlXeJtPyxlskNkamlSVX5xsdEcXqX5ccpomSRtcoxn5N/6+o
Q9umhT4RYCLbXS9v4UBULg==
=A6u+
-----END PGP MESSAGE-----
Version: GnuPG v2
hQIOAwAAAAAAAAAAEAgAg4erpvTElZHDK3OG7dB7xKzl5nMvwVYD15g1HDsDX62V
ej88bKGb3uKE8RtG9xwuJji3uUIvGj3H7o0/lewFpmqsQKO1UBJ5UrAKw97PMlx9
tdEAPV8k0F+9UygaKthzBFHCCpkeWHRT1K3QJT/KMOy23yzLfDwZkwdUCYO10QeZ
yFvWxPlxjd6xbrut1p6xnJ9CFtcvptQjACzJxKHdttg9atC6x9jCzleCUA3AlX1d
JrEt5WQAWqR4Gi8xGNYK1EpZibu2cCOIiPGTJbD7L478CPqP2+uz7+fVA6FyrU9Y
/J/dv8Lgu26CFzz5vFxK+zSNX60bL/ppUHifGkXQLQf/ZJ53ggGR14PIq/E0jnoo
4Ird7FIIpyJaRdGUVGTRjrjwMkw53R+WHZirxIL+9l9epPnu+3Y6/tHeMnDLiI2V
dU5WlbeK7YRRwRrN4qgYA6dkE2xolAy1us1M39a0IWN/NnTXUuSsghxVP1gKMRzx
3dHKCwEfptKXfiVERuH2JFja+jtEvevVvFsPcvICRO2Ry5hhKNBG4uM6AGYtrdlo
tSk8a8LOn9QayZWBy1xvQlisLWeVBdTGG7Qiso2OMNqf9uZ3VAzjS4WhO5sjOW+Q
ZHQ98JNmf7b75E+bn9kgzSeaexO4Wdfmk8eYIpsVEC3df04h00bbRgZ7I1blGPS3
19LpATS004BhViR+v5fEn+xTSy/KHgZEvyORhztjhuEjuK+/4p7B43oeVz07Lyc+
ozdqJNr09Nn7C3TVcAynAIMmjyRoZa9k067Oi8sHQ1cg+DS70PLxKblphe0dTMB2
JYVB9G2EVbWuqGacMC21eIyH4IEVk7O6y5m5F12MnQt/+NVN/UjgDOkAvENwirg0
fvpGnJj51NisAH5lxx3cn6SPqD+mFxov1AHdHLc87BDbRiJZtqDAXMlXLdnFV8oo
nBFtDfjz5cGHNMfe0ApIjo24el+7b+1jSpU0XJjv8m3S0MXXXXjxhCvdmw+U7PBD
wIhoZxSWXFSeDBLLODsNzvp6LDK1zX5D+AwAPjP58l7GWBUMBffhHUrR03CQU9ZQ
1ZLG8UzK2DgpW8itGZPLCCHEQMz5htYF/2ImOYr4b9Liq53u5iMQL/2CUNkPeuLw
w7dPcEUjNQ5jqG7ff2bklObRpIpQpSO4hkCYU02u5x+D03dgyAQvLfsRYF1LhZU3
GPI1+v+yOusF/AGTZxBFRzEexqmwP7lzzHUsR6L8OJyPvIxPs2Lrwz7GFf/Es66F
YFHXFCvH2hhcERVRSeCw/er6HcuzsRr9hM1sj1EC/IbwR6CV1GTZbhhOLLtjGjtm
GJcOqkLd0L6TySM5zlXeJtPyxlskNkamlSVX5xsdEcXqX5ccpomSRtcoxn5N/6+o
Q9umhT4RYCLbXS9v4UBULg==
=A6u+
-----END PGP MESSAGE-----
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Salut,
Pour les fichiers de conf WP oui je ne vois pas de problème à ça.
Je ne me suis jamais penché dessus plus que ça, je crois que je ne risque pas grand chose:
- Le fichier de conf est une répertoire plus haut que la racine du site (et il ne contient que le mot de passe à une seule base de donnée, pas root évidemment)
- Le serveur SQL n'écoute que sur localhost
De plus maldet aime pas du tout les "eval(base64_decode..." dans les fichiers php... ça provoque plein d'alertes.
C'est le but de maldet tu me dira, mais les faux positifs risque de me faire passer à côté des vrais alertes.
Il faudrait donc que j'ajoute des exceptions pour chaque site. C'est faisable évidemment.
Dans le script bash je ne vois pas comment cacher la ligne qui contient la commande.
Pour les fichiers de conf WP oui je ne vois pas de problème à ça.
Je ne me suis jamais penché dessus plus que ça, je crois que je ne risque pas grand chose:
- Le fichier de conf est une répertoire plus haut que la racine du site (et il ne contient que le mot de passe à une seule base de donnée, pas root évidemment)
- Le serveur SQL n'écoute que sur localhost
De plus maldet aime pas du tout les "eval(base64_decode..." dans les fichiers php... ça provoque plein d'alertes.
C'est le but de maldet tu me dira, mais les faux positifs risque de me faire passer à côté des vrais alertes.
Il faudrait donc que j'ajoute des exceptions pour chaque site. C'est faisable évidemment.
Dans le script bash je ne vois pas comment cacher la ligne qui contient la commande.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.