Il ya quelques jours Je leur ai parlé de Presse à plat, une application web (CMS) à travers laquelle ils peuvent avoir un blog ou quelque chose de similaire sans utiliser de bases de données, ou devenir trop compliqué 🙂
Eh bien, j'ai sur mon ordinateur portable un Presse à plat pour des notes personnelles, des choses que je ne veux pas oublier et c'est pourquoi je les écris dans ce blog personnel. Mais, comme plusieurs d'entre vous doivent déjà le savoir ... Je suis un peu paranoïaque avec la sécurité, et, si cela concerne la sécurité de MES pensées, vous n'avez aucune idée à quel point je peux être paranoïaque.
J'ai donc été confronté au problème: comment utiliser FlatPress puis-je protéger tout le contenu?
J'ai pensé à plusieurs applications qui permettent le cryptage des données, mais… aucune d'entre elles n'a fait exactement ce que je voulais, alors j'ai pris la tâche de programmer ce que je voulais moi-même.
Maintenant, je vais vous montrer un script que j'ai fait, qui fait ce qui suit:
1. Il affiche une boîte de dialogue vous demandant si vous êtes KZKG ^ Gaara, si vous appuyez sur NON le script se ferme, si vous appuyez sur OUI tout continue comme d'habitude.
2. Afficher une zone de texte demandant quel est le mot de passe:
3. Si vous appuyez sur Annuler, le script se ferme, voici maintenant l'une des astuces de script 😉 ...
3.1. La logique est que le script compare le mot de passe que nous écrivons avec un qui est déjà prédéfini dans le même script, et si les mots de passe correspondent, il continue à s'exécuter, et si les mots de passe ne correspondent pas, un message d'erreur apparaîtra. Le problème est que, si nous mettons le bon mot de passe dans le script comme ça, quiconque ouvre le script avec un éditeur de texte pourrait voir très clairement le mot de passe correct .. et ceci mes amis, c'est simplement un échec impardonnable 🙂
3.2. Pour éviter de mettre le mot de passe comme ça en texte brut dans le script, j'ai utilisé MD5. Autrement dit, au début du script, j'ai déclaré que le mot de passe correct est «2dac690b816a43e4fd9df5ee35e3790d«, Et voici le MD5 de:«desdelinux«. ... Je ne comprends rien!! …
Détaillons un peu plus. Si j'écris maintenant dans un fichier (par exemple, ~ / pass.txt) du texte: desdelinux
Si dans un terminal j'écris: md5sum ~ / pass.txt
Il retournera: 2dac690b816a43e4fd9df5ee35e3790d sum
Et ... comme vous pouvez le voir, cette première colonne qui contient beaucoup de chiffres et de lettres sans ordre apparent, est identique à celle que j'ai mise ci-dessus, et est celle du script déclaré.
Eh bien, cette première colonne est le MD5 de desdelinux 😉
S'ils mettent ce qui suit, il ne renverra que la 1ère colonne, qui est celle qui nous intéresse: md5sum ~/pass.txt | awk '{print $1}'
4. Ainsi, le fonctionnement du script dans cette partie spécifique est:
4.1. Le script mettra le mot de passe que vous avez écrit dans un fichier temporaire appelé temp.txt, et il extraira le MD5 du contenu de ce fichier en utilisant la commande:
md5sum temp.txt | awk '{print $1}'
4.2. Si le MD5 du mot de passe que vous venez d'écrire n'est PAS identique à celui qu'il a défini (c'est-à-dire celui écrit dans le script), il se fermera et donnera une erreur:
4.3. Si le mot de passe correspond, parfait ... le script continue 😀
5. Lorsque le mot de passe correspond, le script effectuera une série d'étapes, dans mon cas:
5.1. Il entrera dans le dossier / accueil / partagé / hébergé / - » cd / accueil / partagé / hébergé /
5.2. Le dossier FlatPress s'appelle "me", et il est compressé en .RAR protégé par un mot de passe (le mot de passe est le même que celui qu'il devrait être défini auparavant), donc le script décompressera ce fichier (me.rar) - » rar x me.rar -hp $ MWORD
rares x - »Il décompresse les fichiers et les dossiers en conservant le même ordre qu'ils ont.
moi.rar - »Voici le fichier que je veux décompresser.
-hp $ MWORD - »Ici je vous dis que vous devez utiliser mot de passe pour décompresser le fichier, et le mot de passe est la variable $ MWORD (cette variable est le mot de passe que nous avons saisi auparavant)
5.3. Donc, s'il a bien été décompressé, je supprimerai le fichier me.rar ... pourquoi? Eh bien, parce que cela n'a aucun sens que le .rar existe si je travaille avec les fichiers que j'avais à l'intérieur, et ces fichiers changent parce que j'écris nouveautés sur le blog - » rm moi.rar
5.4. Je dois changer les permissions pour que tout fonctionne bien - » chmod 777 -R moi / (rappelez-vous que le dossier me / est ce qui contenait le me.rar compressé)
5.5. Il va me montrer une fenêtre qui me dit que j'ai 10 secondes pour ouvrir "le" navigateur…. WTF!, Qu'est-ce que cela signifie? ...
5.5 (a). Simple, très simple… 🙂… J'ouvre le navigateur (dans ce cas rekonq) et je travaille sur un nouveau message, mais lorsque je ferme le navigateur, le script compresse à nouveau le dossier me / en .rar (restant dans me.rar).
Cela est possible car le script vérifie toutes les 3 secondes si Rekonq est ouvert ou non, s'il détecte qu'il est ouvert, le script ne fait rien, mais s'il détecte qu'il n'est PAS ouvert, il s'exécute: rar a me.rar -hp $ MWORD moi / * && rm -R moi /
Ce qui signifie qu'il compressera le dossier moi/ en moi.rar (et il mettra un mot de passe, qui serait le même que nous avons déjà vu), et une fois que vous l'avez compressé et s'il n'y a pas eu d'erreur, il supprimera le dossier moi/ avec tout son contenu.
5.5 (b). Comment cela nous aide-t-il? ... simple, cela nous évite d'avoir à nous souvenir qu'il faut à nouveau protéger notre contenu, puisqu'il suffit d'arrêter de travailler dessus (fermez le navigateur) et le script fera tout le reste du travail 😉
6. Prêt, tout cela a été expliqué de manière générale 🙂
... bien qu'il y ait encore un autre détail 😀
Le script a une protection encore plus grande, la protection qui est désactivée (commentée) sont ces lignes:
if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi
Ce qu'il fait est simple. La variable $ USER est une variable globale du système, si dans un terminal mettez:
echo $USER
Vous verrez ce que votre utilisateur vous montre ... eh bien, la logique de ces lignes est simple.
Si $ USER ne correspond pas à la variable $ ME (et qu'elle a été déclarée par moi dans le script, et c'est: "gaara") le script supprimera TOUS les fichiers . Sh qui se trouvent dans ce dossier, c'est-à-dire qu'il s'autodétruira 😉
C'est pour empêcher quelqu'un d'autre d'exécuter le script sur un autre ordinateur hehehehe.
Et bien, je ne pense pas qu'il y ait beaucoup plus à expliquer, je laisse le script:
Je sais que beaucoup trouveront cela extrêmement complexe, mais cela effraie plus qu'il ne le devrait ... le script a une logique de fonctionnement vraiment simple, dans un but simple.
J'ai fait cela pour répondre à un de mes besoins très spécifiques, je le partage en espérant qu'une autre ligne ou idée expliquée ici puisse servir quelqu'un 😉
À propos, le script est destiné à KDE, car les boîtes de dialogue (fenêtres) qu'il affiche proviennent de KDE (en utilisant KDialog), mais il peut être adapté pour Gnome / Unity / Cinnamon / Mate en utilisant Zenité, ou utilisez-le à 100% dans le terminal en utilisant simplement la boîte de dialogue de commande.
Et oui, même le script a d'autres défauts, par exemple si le script décompresse le .rar, puis que quelqu'un ferme (tue) de force le script, le contenu du .rar ne sera pas protégé, il reste quelques détails à peaufiner ... mais bon, il faut aussi contrôler que personne ne peut vérifier notre ordinateur 😀
Pour finir je tiens à préciser que je ne suis PAS un programmeur, encore moins, je ne me considère pas comme tel, j'imagine que vous pouvez optimiser les lignes du code, ou utiliser une fonction pour améliorer le fonctionnement du script ... mais j'ai dit, je ne suis pas un programmeur 😉
Toutes les questions qu'ils ont à ce sujet, ils me le disent, bien que le script puisse ne pas leur servir parce qu'ils n'en ont pas besoin, ils peuvent toujours en apprendre d'autres astuces 😀
salutations
PD: Je sais que animé il dira que je suis trop paranoïaque ... ou que je perds mon temps, mais je ne le suis pas. Je voulais quelque chose de très spécifique, un système de sécurité très spécifique, et je l'ai programmé moi-même… à quel point est-ce geek? … LOL !!
C'est intéressant, mais je pense que la question oui / non est très pet xD
Et qu'en pensez-vous, au lieu d'utiliser rar qui est propriétaire et n'offre pas une vraie sécurité, remplacez-le par gpg, qui est un logiciel de sécurité plus que prouvé au fil des ans, et qui existe dans pratiquement toutes les distributions 😉
Une autre chose, vous pouvez passer une chaîne à md5sum, vous n'avez pas besoin de créer un fichier temporaire. Ici je vous recommande également d'aller à sha qui est beaucoup plus sécurisé, essayez dans le terminal: shasum
Saudos!
Bonjour et merci pour ton commentaire 😀
GPG me permet de conditionner un répertoire avec tout son contenu? C'est que je ne l'ai utilisé que pour des fichiers individuels, pas pour des répertoires contenant des sous-répertoires et des fichiers.
ooo ... super pour shasum, je ne le connaissais pas 😀
Je vais continuer à modifier le script pour utiliser celui-ci, et… oui !! vrai, avec simplement: echo "$ PASSWORD" | shasum Je reçois déjà la chaîne, en effet il n'est pas nécessaire de l'écrire dans un fichier :)
Merci beaucoup pour ton commentaire, j'ai déjà appris quelque chose de nouveau 🙂
salutations
c'est la même chose que je demandais ...
Ce dont vous auriez besoin, c'est de savoir comment crypter un fichier GPG et lui transmettre le mot de passe sur la même ligne ... par exemple:
gpg -e fichier.tar.gz –password elpassword quel que soit
Une idée comment faire? 🙂
Pour crypter un répertoire c / gpg, vous devez d'abord le compresser avec tar.
alors, dans ce cas, il est pratique d'utiliser le cryptage symétrique, avec le paramètre -c (voir wikipedia pour la différence entre le cryptage symétrique et asymétrique).
ce serait alors quelque chose comme:
tar -czf destination.tgz répertoire_source / && echo $ passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
cela créera un fichier compressé appelé "destination.tgz" et le fichier crypté appelé "destination.tgz.gpg". le répertoire source et la compression elle-même doivent être supprimés pour des raisons de sécurité (regardez la commande shred)
décrypter:
echo $ passwd | gpg –batch -d –passphrase-fd 0 fichier_chiffrement.tgz.gpg | tar -xz
qui extraire les fichiers dans le répertoire courant (alors mv peut être utilisé pour les déplacer ailleurs)
Des questions, répondez à ce commentaire 🙂
salutations!
ehm, attention aux doubles tirets (-) et aux simples tirets (-)… y a-t-il un moyen d'écrire quelque chose comme s'il s'agissait de code pour que le format ne change pas?
prueba de codigo -- -
[code] test code - - [/ code]
Je le passe plus bavard
compresser et crypter:
tar -czf destino.tgz directorio_fuente/ && echo $passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
Notez que voici deux étapes: créez d'abord le fichier compressé puis, s'il n'y a pas eu d'erreur, continuez le chiffrement (chaînage avec &&)
décrypter et décompresser:
echo $passwd | gpg –batch -d –passphrase-fd 0 archivo_cifrado.tgz.gpg | tar -xz
salue!
Ouais, en fait hier à la maison j'ai lu le gpg man et il y avait tout ce dont j'avais besoin necesitaba
En fait, je ne l'ai pas tout à fait fait comme ça, je n'ai pas utilisé d'écho ou de compression, j'ai fait un post à ce sujet, je viens de le poster.
Merci beaucoup pour l'ami d'aide, je le fais vraiment.
Quelle merveille! Je cherchais juste quelque chose comme ça et je suis tombé sur votre article. Je vais le tester pour protéger mes données. En matière de sécurité informatique, vous ne pouvez jamais être trop paranoïaque. Je vous remercie
Merci Haha.
Avez-vous compris comment fonctionne le script, non?
Cela semble beaucoup plus complexe qu'il ne l'est en réalité lol.
Merci pour le commentaire, vraiment 😀
salutations
PS: En effet, la sécurité n'est jamais assez hahaha.
Il m'a fallu un peu de temps pour le comprendre (je l'ai lu 3 fois) puisque j'utilise Linux depuis peu de temps. Mais c'est vraiment simple et c'est toujours agréable d'apprendre des choses comme ça. Salutations et merci encore.
L'important est de le comprendre hehe. J'ai essayé de tout expliquer de manière extrêmement détaillée, mais je pense que j'ai trop étendu hahaha.
Merci à vous 🙂
Wow, très bon script 🙂
PS: La paranoïa a plus de 9000! xD
hahahahahahaha c'est moi… LOL !!
En regardant votre script, je pense que cela peut être fait avec xdialog au cas où vous n'auriez pas kde :)! À votre santé
Oh, je ne connaissais pas xdialog ... je vais devoir jeter un œil pour voir 😀
Merci pour l'astuce.
au lieu de rar, pourquoi ne pas utiliser tar.xz / gz et gpg?
c'est parce que vous l'avez déjà en rar où vous avez votre CMS
Excellent @ KZKG ^ Gaara il y a quelques jours, je pensais à quelque chose comme ça, mais je suis aux examens donc je n'ai pas eu le temps pour quoi que ce soit, et du coup je vois votre article….
Je vais l'essayer la semaine prochaine 🙂
Merci, tous les détails ici je suis 😀
xD Je n'ai rien compris uu mais si je voudrais comment utiliser correctement kdialog dans les scripts, comment obtenir un message dans le notificateur KDE
Pour obtenir des messages dans les notifications KDE, essayez d'installer le package: libnotify-bin
Puis dans un terminal vous mettez:
notify-send "texto texto texto"
Et vous verrez à quel point c'est cool 😀… et, cela fonctionne pour KDE, Gnome, Unity, Cinnamon, Mate et Xfce 😉
Cependant, dans ce script, je n'utilise pas les notifications en tant que telles, mais juste les fenêtres KDialog. Dans un type de terminal:
kdialog
Et vous y verrez l'aide 😉
Salutations 😀
Merci beaucoup o /
Bonjour, bon post, juste une suggestion, ça vaut le coup qu'avec md5 on ne le voit pas à l'œil nu, mais certains curieux peuvent utiliser une table arc-en-ciel pour voir si le mot de passe converti en md5 est à l'intérieur, je recommande d'utiliser bcrypt (http://bcrypt.sourceforge.net/), ce n'est qu'une suggestion, vous pouvez le prendre en toute occasion, Salutations.
Merci 😀
En fait oui, MD5 n'est pas parfait et il y a ceux qui ont réussi à obtenir des mots de passe, je vais jeter un œil à cette application 😉
Merci pour ton commentaire.
avec le symétrique juste dans kdialog il vous demande le mot de passe
et avec le asymétrique utilisant une clé publique.
Je dois préciser que je n'ai pas la trace d'un programmeur.
Oui, j'ai déjà réussi à chiffrer avec GPG (en fait je viens de mettre un post à ce sujet) hehe.
KZKG ^ Gaara a toujours lu votre message.
Créez-en un à utiliser avec XFCE.
Baiser. Coûteux
Bonjour et tout d'abord, bienvenue sur le blog 😀
hahaha merci, je sais que parfois c'est difficile car j'écris des choses un peu techniques, mais j'essaye toujours de tout expliquer le plus clairement possible 🙂
Je vais expérimenter un peu avec XDialog ou Zenity pour voir si ça marche pour Xfce haha, je ferai les tests sur un Xubuntu virtuel 🙂
salutations
Homme assez utile, merci!
Salutations!
Merci, cela m'aidera beaucoup à protéger certains fichiers
J'ai dû l'adapter à zenity car je n'ai pas kde pour le moment: \
Ici je laisse le squelette que je vais utiliser adapté à la zénité
http://paste.desdelinux.net/4641
Merci encore et salutations 😀
oooo super, merci beaucoup 😀 😀
Je me souviens que quelqu'un a demandé cela mais pour Xfce, avec Zenity, cela fonctionnerait dans Xfce, n'est-ce pas?
Oui, seulement qu'il restait la commande pour ajouter les commandes à exécuter, après avoir passé le mot de passe de shasum ou md5
Il faudrait le modifier en fonction des besoins de chaque personne, pour protéger différentes choses dans différents itinéraires avec différentes commandes
Ou peut-être ajouter une autre partie (GUI) pour créer la configuration de sécurité de notre fichier
Salutations 😀
J'ai eu du temps et du xfce (dans Archlinux) et j'ai déjà complètement adapté le script tel quel, pour xfce en utilisant zenity (je pense) puisque celui que j'ai laissé ci-dessus n'était que le squelette que j'ai utilisé
http://paste.desdelinux.net/4644
Peut-il être édité s'il a un bogue de la pâte?
Ce qui se passe, c'est que j'ai plusieurs shells graphiques et je ne sais pas si cela fonctionnera dans xfce propre, par exemple dans xubuntu
Salutations 😀
Intéressant che !!! Bonne contribution !!!!!!
Je suis très novice en programmation, j'apprends peu à peu BASH ... mais certaines choses me sont venues à l'esprit et elles peuvent ou non vous être utiles.
Quand vous dites que le script dépouillé a le mot de passe incorporé et qu'il serait impardonnable pour quelqu'un de l'ouvrir et de le lire à partir de là ... vous proposez toute cette astuce consistant à intégrer le MD5 comme mesure de protection.
Ce qui est assez bon comme première étape pour rendre la vie difficile à l'intrus potentiel, mais consultez les idées suivantes (qui peuvent même être appliquées les unes sur les autres)
IDÉE 1) Que faire si vous enregistrez le mot de passe dans un fichier sur votre machine et que vous ne l'hébergez pas dans le script?
EJ: dans un txt, mettez la clé et enregistrez-la dans / home / /bla/bla/key.txt
Dans votre script, vous appelez la clé comme KEY = "$ (cat $ HOME / blah / bla / key.txt)", puis vous lancez le if $ questionkey = $ KEY, alors .. etc. etc.
De cette façon, vous obtenez 3 choses +1 avantage:
1) Que le mot de passe n'a jamais été dans le script. (Vous évitez le MD5)
2) Le chemin où se trouve le mot de passe dépend du nom d'utilisateur. (Quiconque veut l'ouvrir, le redirige n'importe où) Dans 99.9% des cas, le script échouera.
3) Si vous souhaitez plus de sécurité, supprimez toutes les autorisations sur le fichier key.txt pour tous les autres utilisateurs sauf le vôtre.
4) Avantage: Portabilité pour changer le mot de passe quand vous le souhaitez, sans modifier le script. Parce que la vérification est externe via un fichier.
IDÉE 2) Que diriez-vous de masquer tout le script bash pour qu'il ne puisse même pas être ouvert?
Une façon de faire est de tirer parti du fait que la compilation est requise en C.
Ensuite, il introduit le script dans un code C que tout ce qu'il fait est d'appeler ce script (mais qui est à l'intérieur du programme). Au moment de la compilation ... tout est laissé à l'intérieur et votre sortie est un exécutable ... et non plus un script. Il y a une personne qui a déjà fait un "script" qui fait le processus d'obfuscation, ce qui est très pratique.
Plus d'infos ici: http://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_B%C3%A1sico_para_Principiantes/Compilar_%28ofuscar%29_BASH_scripts_con_C_-_SHC
IDEA 3) Que faire si vous mettez une condition virtuelle dans le script où elle requiert un mot de passe administrateur?
Par exemple, exécutez une condition en utilisant "sudo" puis continuez avec le script, sinon arrêtez-le.
De cette façon, toute la protection tomberait comme un pont sur votre mot de passe ROOT.
Eh bien, rien de plus ...
À votre santé!!!!!!!! et maintenez BASH.
HAHAHAHA Merci 😀
En fait, j'utilise SHA512 car il est bien meilleur que MD5: https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/
Ainsi que GPG comme moyen de protection au lieu de compresser avec .RAR: https://blog.desdelinux.net/como-proteger-datos-con-gpg-de-forma-simple/
Le problème avec le fait de mettre le mot de passe dans un fichier différent, c'est que cela mettrait alors le mot de passe à un autre endroit, oui, mais serait-il en texte brut? Si je dois le crypter (ce qui est recommandé), je le laisse dans le même script, eh bien ... je doute tellement que quelqu'un puisse casser SHA512 hahahaha (regardez le 1er lien et vous comprendrez)
En ce qui concerne les autorisations, si quelqu'un utilise un LiveCD, il peut ouvrir le .txt en utilisant la racine du LiveCD, de sorte que les autorisations ne sont pas entièrement la meilleure option.
A propos de masquer le code Bash ... oui, j'y avais pensé et l'idée est géniale, le problème est que je ne sais pas comment faire, en fait je ne sais même pas si cela peut être fait HAHAHA.
Oh attendez ... maintenant j'ai lu le reste du commentaire O_O ... hehe, je ne savais pas que vous pouviez faire ça. Je n'ai aucune idée de C ou C ++, mais ça vaut peut-être la peine d'essayer lol.
À propos de l'idée 3, pas mal 😀
J'ai apporté plusieurs améliorations au script depuis que j'ai publié ce post, 2 sont celles que j'ai mentionnées dans les liens au début de ce commentaire, une autre est que si vous changez un caractère dans le script, il est supprimé. Et maintenant je dois essayer ceci pour obscurcir le code hahahaha.
Merci pour votre commentaire et… oui, attendez, bash !!! HAHA
WTF!
J'ai déjà utilisé SHC… GE-NI-AL !!!! O_O
Très bon script, hé et si vous utilisez un vérificateur de racine, pour pouvoir exécuter le script en tant que sudo ./script
Il vous suffirait d'ajouter ce code au début
http://paste.desdelinux.net/4663
A Salute
KZKG ^ Gaara, mon ami, je pense que développer une explication n'est pas le problème, c'est bon pour ceux d'entre nous qui n'ont pas beaucoup de connaissances. Des articles qui n'enseignent pas ont été publiés ici même, ils ne donnent que des informations sur quelque chose qui existe. Alors ne vous excusez pas et qu'il y en ait plus avec des explications détaillées.
Pour des choses comme ça, j'utilise http://www.truecrypt.org/
Quelqu'un pourrait-il partager le script? Je suis curieux et tous les liens sont en panne. 🙁
Merci.