Несколько дней назад Я рассказал им о Флэтпресс, una aplicación web (CMS) mediante el cual pueden tener un blog o algo similar sin necesidad de usar bases de datos, ni complicarse mucho
Ну, у меня на ноутбуке есть Флэтпресс para apuntes personales, cosas que no quiero olvidar y por eso los escribo en esta bitácora personal. Pero, como varios ya deben saber… yo soy algo paranoico con la seguridad, y, si es referente a la seguridad de MIS pensamientos, no tienen idea de qué tan paranoico puedo llegar a ser
Итак, я столкнулся с проблемой: как с помощью FlatPress я могу защитить весь контент на нем?
Я подумал о нескольких приложениях, которые позволяют шифрование данных, но… ни одно из них не делало именно то, что я хотел, поэтому я взял на себя задачу программирования того, что хотел сам.
Теперь я покажу вам созданный мной сценарий, который выполняет следующие функции:
1. Он показывает диалоговое окно с вопросом, являетесь ли вы KZKG ^ Gaara, если вы нажмете NO, скрипт закроется, если вы нажмете YES, все будет продолжаться как обычно.
2. Показать текстовое поле с вопросом, какой пароль:
3. Si presionas Cancelar se cierra el script, ahora viene uno de los trucos del script …
3.1. La lógica es que el script compare el password que escribimos con uno que esté predefinido dentro del mismo script ya, y si los passwords concuerdan entonces sigue ejecutándose, y si los passwords no concuerdan pues que aparezca un mensaje de error. El problema es que, si ponemos el password correcto dentro del script así sin más, cualquiera que abra el script con un editor de texto podría ver muy claramente el password correcto.. y esto amigos míos, es simplemente una falla imperdonable
3.2. Чтобы не вводить такой пароль в скрипт в виде обычного текста, я использовал MD5. То есть в начале скрипта я заявил, что правильный пароль - «2dac690b816a43e4fd9df5ee35e3790d«, А это MD5:«desdelinux«. ... Я ничего не понимаю!! …
Давайте поподробнее. Если я сейчас напишу в файл (например, ~ / pass.txt) текста: desdelinux
Если в терминале я пишу: md5sum ~ / pass.txt
Он вернется ко мне: 2dac690b816a43e4fd9df5ee35e3790d sum
И ... как вы можете видеть, этот первый столбец, в котором много цифр и букв в произвольном порядке, идентичен столбцу, который я поместил выше, и это столбец в объявленном скрипте.
Ну, этот первый столбец - это MD5 desdelinux
Если они поставят следующее, он вернет только 1-й столбец, который нас интересует: md5sum ~/pass.txt | awk '{print $1}'
4. Итак, работа скрипта в этой конкретной части:
4.1. Скрипт поместит пароль, который вы написали, во временный файл с именем темп.txt, и он извлечет MD5 из содержимого этого файла с помощью команды:
md5sum temp.txt | awk '{print $1}'
4.2. Если MD5 пароля, который вы только что написали, НЕ идентичен тому, который он определил (то есть, тот, который записан в скрипте), он закроется и выдаст ошибку:
4.3. Si el password coincide, perfecto… el script continúa
5. Когда пароль совпадает, скрипт выполнит ряд шагов, в моем случае:
5.1. Он войдет в папку / домашний / общий / размещенный / - » компакт-диск / домашний / общий / размещенный /
5.2. Папка FlatPress называется «я», и она сжата в .RAR и защищена паролем (пароль тот же, что и должен был быть установлен раньше), поэтому сценарий распакует этот файл (me.rar) - » rar x me.rar -hp $ MWORD
рар х - »Он распаковывает файлы и папки в том же порядке, что и они.
я.rar - »Это файл, который я хочу распаковать.
-hp $ MWORD - »Здесь я говорю вам, что вы должны использовать пароль для распаковки файла, а пароль - это переменная $ MWORD (эта переменная - это пароль, который мы ввели ранее)
5.3. Итак, если он был хорошо разархивирован, я удалю файл me.rar ... почему? Ну, потому что нет никакого смысла в существовании .rar, если я работаю с файлами, которые у меня были внутри, и эти файлы меняются, потому что я пишу новинки в блоге - » поговори со мной.rar
5.4. Я должен изменить разрешения, чтобы все работало нормально - » chmod 777 -R me / (помните, что папка me / - это то, что содержало сжатый файл me.rar)
5.5. Он покажет мне окно, в котором говорится, что у меня есть 10 секунд, чтобы открыть "браузер"…. WTF !, что это значит? ...
5.5 (а). Simple, muy simple… … Yo abro el navegador (en este caso Реконк), и я работаю над новым постом, но когда я закрываю браузер, скрипт снова сжимает папку me / в .rar (оставаясь в me.rar).
Это возможно, потому что скрипт каждые 3 секунды проверяет, открыт ли Rekonq или нет, если он обнаруживает, что он открыт, скрипт ничего не делает, но если он обнаруживает, что он НЕ открыт, он выполняет: rar a me.rar -hp $ MWORD me / * && rm -R me /
Это означает, что он сжимает папку мне/ en я.rar (и он поставит пароль, который будет таким же, как мы уже видели), и как только вы его сожмете и если ошибок не было, он удалит папку мне/ со всем его содержанием.
5.5 (б). ¿Esto en qué nos ayuda? … simple, esto nos evita tener que acordarnos de que debemos volver a proteger nuestro contenido, pues solo necesitamos dejar de trabajar en él (cerrar el navegador) y el script hará todo el resto del trabajo
6. Listo, esto viene siendo todo explicado de forma general
… aunque aún hay otro detalle
Скрипт имеет еще большую защиту, защита, которая отключена (прокомментирована), это следующие строки:
if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi
Это просто. Переменная $ USER является глобальной переменной системы, если в терминале поставить:
echo $USER
Вы увидите то, что показывает вам ваш пользователь ... ну, логика этих строк проста.
Если $ USER не соответствует переменной $ ME (а она была объявлена мной в сценарии, а это: "gaara"), сценарий удалит ВСЕ файлы .sh que estén en esa carpeta, o sea, se autodestruirá
Это сделано для того, чтобы кто-то другой не мог выполнить сценарий на другом компьютере, хехехе.
И что ж, я не думаю, что есть что-то еще объяснять, я оставляю сценарий:
Я знаю, что многим это покажется чрезвычайно сложным, но на самом деле это более страшно, чем следовало бы ... сценарий имеет очень простую рабочую логику для простой цели.
Esto lo hice para suplir una necesidad muy específica mía, lo comparto esperando que alguna que otra línea o idea acá explicada le pueda servir a alguien
Между прочим, скрипт предназначен для KDE, поскольку отображаемые диалоги (окна) взяты из KDE (с использованием KDialog), но его можно адаптировать для Gnome / Unity / Cinnamon / Mate с помощью Зенити, или используйте его на 100% в терминале, используя просто командный диалог.
Y sí, aún el script tiene alguna que otra falla, por ejemplo si el script descomprime el .rar, y luego alguien cierra a la fuerza (mata) el script, el contenido del .rar quedará desprotegido, son algunos detalles que quedan por pulir… pero eh!, que también nosotros debemos controlar que nadie pueda revisar nuestro ordenador
Para finalizar quiero aclarar que yo NO soy programador ni mucho menos, no me considero tal, imagino que se puede optimizar líneas en el código, o usar alguna función para mejorar el funcionamiento del script… pero lo dicho, no soy programador
Cualquier duda que tengan al respecto me dicen, si bien el script puede que no les sirva pues no lo necesitan, siempre podrán aprender algún que otro tip de él
привет
PD: Я знаю что Elav он скажет, что я слишком параноик ... или что я зря трачу время, но это не так. Я хотел что-то очень специфическое, очень специфическую систему безопасности, и я сам это запрограммировал… Как это круто? … СМЕШНО!!
Это интересно, но я думаю, что вопрос да / нет очень пердит xD
И как вы думаете, вместо того, чтобы использовать rar, который является проприетарным и не обеспечивает истинной безопасности, замените его на gpg, программное обеспечение безопасности, которое более чем проверено годами и существует практически во всех дистрибутивах 😉
Другое дело, вы можете передать md5sum строку, вам не нужно создавать временный файл. Здесь я также рекомендую вам перейти на sha, который намного безопаснее, попробуйте в терминале: shasum
Saludos!
Привет и спасибо за комментарий 😀
GPG позволяет мне упаковать каталог со всем его содержимым? Дело в том, что я действительно использовал его только для отдельных файлов, а не для каталогов, содержащих подкаталоги и файлы.
ооо ... отлично насчет шампанского, я его не знала 😀
Я продолжу модифицировать скрипт, чтобы использовать этот, и… да !! правда, просто: echo "$ PASSWORD" | шасум Строку уже получил, правда в файл писать не надо :)
Большое спасибо за комментарий, я уже узнал кое-что новое 🙂
привет
это то же самое, о чем я спрашивал ...
Что вам нужно, так это выяснить, как GPG зашифровать файл и передать ему пароль в той же строке ... например:
gpg -e file.tar.gz –password elpassword неважно
Есть идеи, как это сделать? 🙂
Чтобы зашифровать каталог c / gpg, вы должны сначала упаковать его tar.
тогда в этом случае удобно использовать симметричное шифрование с параметром -c (см. разницу между симметричным и асимметричным шифрованием в Википедии).
тогда это будет примерно так:
tar -czf destination.tgz исходный_каталог / && echo $ passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
это создаст сжатый файл с именем "destination.tgz" и зашифрованный файл с именем "destination.tgz.gpg". как исходный каталог, так и сам компресс должны быть удалены в целях безопасности (проверьте команду shred)
расшифровать:
echo $ passwd | gpg –batch -d –passphrase-fd 0 encryption_file.tgz.gpg | tar -xz
который извлечет файлы в текущий каталог (затем mv можно использовать для перемещения их в другое место)
Есть вопросы, ответьте на этот комментарий 🙂
привет!
эм, остерегайтесь двойных дефисов (-) и одинарных дефисов (-) ... есть ли способ написать что-то, как если бы это был код, чтобы формат не изменился?
prueba de codigo -- -
[code] тестовый код - - [/ code]
Я трачу его более подробно
сжать и зашифровать:
tar -czf destino.tgz directorio_fuente/ && echo $passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
Обратите внимание, что это два шага: сначала создайте сжатый файл, а затем, если ошибки не было, продолжите шифрование (соединение с помощью &&)
расшифровать и разархивировать:
echo $passwd | gpg –batch -d –passphrase-fd 0 archivo_cifrado.tgz.gpg | tar -xz
салюты!
Да, вообще-то вчера дома я читал gpg man и там было все необходимое necesitaba
На самом деле я не совсем так делал, я не использовал эхо или сжатие, я написал об этом, я просто опубликовал его.
Большое спасибо за помощь, друг, правда.
Замечательный! Я просто искал что-то подобное и наткнулся на вашу статью. Я собираюсь протестировать его, чтобы защитить свои данные. Когда дело касается компьютерной безопасности, нельзя быть слишком параноиком. Спасибо
Спасибо, ха-ха.
Вы ведь поняли, как работает сценарий?
Кажется, это намного сложнее, чем есть на самом деле.
Спасибо за комментарий, правда 😀
привет
PS: Действительно, безопасности никогда не бывает, хахаха.
Понять это стоило мне немного (я читал 3 раза), так как давно не пользуюсь linux. Но это действительно просто, и всегда приятно учиться подобным вещам. Приветствую и еще раз спасибо.
Важно понять это хе-хе. Я пытался объяснить все предельно подробно, но думаю, что слишком много расширил, хахаха.
Спасибо тебе 🙂
Вау, сценарий очень хороший 🙂
PS: Паранойя больше 9000! xD
хахахахахахаха это я… LOL !!
Глядя на ваш скрипт, я думаю, что это можно сделать с помощью xdialog, если у вас нет kde :)! Ура
О, я не знал про xdialog ... Надо взглянуть, чтобы увидеть 😀
Спасибо за информацию.
почему бы не использовать tar.xz / gz и gpg вместо rar?
это потому, что у вас уже есть это в rar, где у вас есть ваша CMS
Отлично @ KZKG ^ Gaara несколько дней назад я думал о чем-то в этом роде, но я на экзаменах, поэтому у меня нет времени ни на что, и вдруг я вижу вашу статью…
Попробую на следующей неделе 🙂
Спасибо, подробности здесь я 😀
xD Я ничего не понял uu, но если я хочу, как правильно использовать kdialog в скриптах, как получить сообщение в уведомлении KDE
Чтобы получать сообщения в уведомлениях KDE, попробуйте установить пакет: libnotify-bin
Затем в терминале вы помещаете:
notify-send "texto texto texto"
И вы увидите, как круто 😀… и это работает для KDE, Gnome, Unity, Cinnamon, Mate и Xfce 😉
Однако в этом скрипте я не использую уведомления как таковые, а просто окна KDialog. В терминальном типе:
kdialog
И там вы увидите помощь 😉
Привет 😀
Большое спасибо o /
Привет, хороший пост, просто предложение, это нормально, что с md5 это не видно невооруженным глазом, но некоторые любопытные могут использовать радужную таблицу, чтобы увидеть, находится ли там пароль, преобразованный в md5, я рекомендую использовать bcrypt (http://bcrypt.sourceforge.net/), это всего лишь предложение, можно использовать по любому поводу, Приветствую.
Спасибо 😀
На самом деле да, MD5 не идеален и есть те, кому удалось получить пароли, я посмотрю это приложение 😉
Спасибо за ваш комментарий.
с симметричным только в kdialog он запрашивает пароль
а с асимметричным - с использованием открытого ключа.
Сразу уточню, что программиста в помине нет.
Да, уже успел зашифровать с помощью GPG (по сути я только что выложил об этом пост) хе-хе.
КЗКГ ^ Гаара всегда читаю твой пост.
Создайте один для использования с XFCE.
Поцелуй. Дорого
Здравствуйте и прежде всего добро пожаловать в блог 😀
хахаха спасибо, я знаю, что иногда это сложно, потому что я пишу несколько технических вещей, но я всегда стараюсь все объяснить как можно яснее
Я немного поэкспериментирую с XDialog или Zenity, чтобы увидеть, работает ли он для Xfce, ха-ха, я проведу тесты в виртуальном Xubuntu 🙂
привет
Довольно полезный мужик, спасибо!
Привет!
Спасибо, мне очень поможет защитить некоторые файлы
Мне пришлось адаптировать его к zenity, потому что у меня сейчас нет kde: \
Здесь я оставляю скелет, который собираюсь использовать, адаптированный к зенити.
http://paste.desdelinux.net/4641
Еще раз спасибо и привет 😀
оооо здорово, спасибо тебе большое 😀 😀
Я помню, как кто-то просил об этом, но для Xfce с Zenity это будет работать в Xfce, верно?
Да только что оставалась команда добавить команды для выполнения, после передачи пароля shasum или md5
Его нужно было бы модифицировать для разных нужд каждого человека, чтобы защитить разные вещи на разных маршрутах с разными командами.
Или, может быть, добавление другой части (GUI) для создания конфигурации безопасности нашего файла
Привет 😀
У меня было время и xfce (в Archlinux), и я уже полностью адаптировал сценарий, как он был, для xfce с использованием zenity (я думаю), поскольку тот, который я оставил выше, был только скелетом, который я использовал
http://paste.desdelinux.net/4644
Можно ли его редактировать, если в нем баг из пасты?
Случается, что у меня есть несколько графических оболочек, и я не знаю, будет ли они работать в чистом xfce, например в xubuntu.
Привет 😀
Интересно че !!! Хороший вклад !!!!!!
Я новичок в программировании, я изучаю BASH понемногу ... но некоторые вещи приходили мне в голову, и они могут быть вам полезны, а могут и не оказаться.
Когда вы говорите, что очищенный скрипт имеет встроенный пароль, и кому-то было бы непростительно открыть его и прочитать оттуда ... вы предлагаете весь этот трюк по внедрению MD5 в качестве меры защиты.
Это неплохо в качестве первого шага к тому, чтобы усложнить жизнь потенциальному злоумышленнику, но обратите внимание на следующие идеи (которые можно даже применить друг к другу)
ИДЕЯ 1) Что делать, если вы сохраняете пароль в файле на своей машине, а не размещаете его в скрипте?
EJ: в txt поместите ключ и сохраните его в / home / /bla/bla/key.txt
В вашем скрипте вы вызываете ключ как KEY = "$ (cat $ HOME / blah / bla / key.txt)", затем вы бросаете if $ questionkey = $ KEY, затем ... и т. Д.
Таким образом, вы получаете 3 вещи +1 преимущество:
1) Чтобы пароля не было в скрипте. (Вы избегаете MD5)
2) Путь, где находится пароль, зависит от имени пользователя. (Любой, кто хочет его открыть, перенаправляет куда угодно) В 99.9% случаев скрипт не работает.
3) Если вы хотите большей безопасности, удалите все права доступа к файлу key.txt для всех остальных пользователей, кроме вашего.
4) Преимущество: возможность смены пароля в любое время без редактирования скрипта. Потому что проверка осуществляется извне через файл.
ИДЕЯ 2) Как насчет обфускации всего сценария bash, чтобы его даже нельзя было открыть?
Один из способов сделать это - воспользоваться тем фактом, что вам нужно компилировать на C.
Затем он вводит сценарий внутри кода C, и все, что он делает, это вызывает этот сценарий (но он находится внутри программы). Во время компиляции ... все остается внутри, и ваш вывод является исполняемым ... и больше не скриптом. Есть человек, который уже сделал «скрипт», который выполняет процесс обфускации, что очень практично.
Больше информации здесь: http://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_B%C3%A1sico_para_Principiantes/Compilar_%28ofuscar%29_BASH_scripts_con_C_-_SHC
ИДЕЯ 3) Что, если вы поместите виртуальное условие в скрипт, где оно требует пароля администратора?
Например, выполните условие с помощью «sudo», а затем продолжите выполнение сценария, если не остановите его.
Таким образом, вся защита станет мостом через ваш пароль ROOT.
Ну не более того ...
Ура !!!!!!!! и удерживайте BASH.
ХАХАХАХА Спасибо 😀
На самом деле сейчас я использую SHA512, потому что он намного лучше, чем MD5: https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/
А также GPG как средство защиты вместо сжатия с .RAR: https://blog.desdelinux.net/como-proteger-datos-con-gpg-de-forma-simple/
Проблема с помещением пароля в другой файл заключается в том, что он помещает пароль в другое место, да, но будет ли он в виде обычного текста? Если мне нужно его зашифровать (что рекомендуется), я оставлю его в том же скрипте, ну ... Я оооочень сильно сомневаюсь, что кто-то может сломать SHA512 хахахаха (см. 1-ю ссылку, и вы поймете 😉)
Что касается разрешений, если кто-то использует LiveCD, он может открыть .txt, используя корень LiveCD, поэтому разрешения - не совсем лучший вариант.
Насчет обфускации кода Bash ... да, я думал об этом, и идея ВЕЛИКАЯ, проблема в том, что я не знаю, как это сделать, на самом деле я даже не знаю, можно ли это сделать ХАХАХА.
Ой, погоди ... теперь я прочел оставшуюся часть комментария О_О ... хе-хе, я не знал, что ты можешь это сделать. Я понятия не имею о C или C ++, но стоит попробовать, lol.
Насчет идеи 3, неплохо 😀
С тех пор, как я опубликовал этот пост, я внес в сценарий несколько улучшений, 2 из них я упомянул в ссылках в начале этого комментария, еще одно - если вы измените любой символ в сценарии, он будет удален. И теперь я должен попробовать это, чтобы запутать код, хахахаха.
Спасибо за комментарий и… да, держись, бас !!! ХАХА
WTF!
Я уже использовал SHC… GE-NI-AL !!!! О_О
Очень хороший скрипт, эй, и если вы используете корневую проверку, чтобы иметь возможность запускать скрипт как sudo ./script
Вам просто нужно добавить этот код в начале
http://paste.desdelinux.net/4663
Приветствие
KZKG ^ Гаара, мой друг, я думаю, что расширение объяснения не проблема, это хорошо для тех из нас, кто не обладает такими знаниями. Здесь публикуются не обучающие статьи, а только информация о том, что существует. Так что не извиняйтесь, и есть еще кое-что с расширенными объяснениями.
Для подобных вещей я использую http://www.truecrypt.org/
Может кто-нибудь поделится сценарием? Мне любопытно, но все ссылки не работают. 🙁
Спасибо.