Пред неколку дена Им реков за FlatPress, веб апликација (CMS) преку која тие можат да имаат блог или нешто слично без да користат бази на податоци, или да станат премногу комплицирани
Па, имам на мојот лаптоп А. FlatPress за лични белешки, работи што не сакам да ги заборавам и затоа ги пишувам во овој личен блог. Но, како што веќе неколкумина од вас мора да знаат ... Јас сум донекаде параноичен во врска со безбедноста и, ако станува збор за безбедноста на МОИТЕ мисли, вие немате идеја колку параноично можам да бидам
Така, се соочив со проблемот: Како со користење на FlatPress можам да ја заштитам целата содржина на неа?
Мислев на неколку апликации што овозможуваат шифрирање на податоците, но ... ниту една не го стори точно тоа што го сакав, па ја презедов задачата да го програмирам она што го сакав самиот.
Сега ќе ви покажам сценарио што го направив, што го прави следново:
1. Тоа покажува дијалог-прозорец кој прашува дали сте KZKG ^ Gaara, ако притиснете НЕ, скриптата се затвора, ако притиснете ДА сè продолжува како што е нормално.
3. Ако притиснете Откажи, сценариото се затвора, сега следува еден од триковите за сценарио 😉 ...
3.1. Логиката е дека скриптата ја споредува лозинката што ја пишуваме со онаа што е претходно дефинирана во рамките на истата скрипта, и ако лозинките се совпаѓаат, тогаш таа продолжува да работи, и ако лозинките не се совпаѓаат, тогаш ќе се појави порака за грешка. Проблемот е во тоа што, ако ја ставиме точната лозинка во скриптата така, секој што ќе ја отвори скриптата со уредник на текст, ќе може многу јасно да ја види точната лозинка .. и ова мои пријатели, тоа е едноставно непростлив неуспех
3.2. За да избегнам ваква лозинка во обичен текст во скриптата, користев MD5. Тоа е, на почетокот на сценариото, изјавив дека точната лозинка е «2dac690b816a43e4fd9df5ee35e3790d«, И ова е MD5 на:«од линукс« ... Не разбирам ништо!! 😀
Да детализираме уште малку. Ако сега пишувам во датотека (на пример ~ / помине.txt) на текстот: од линукс
Ако на терминал напишам: md5sum ~ / pass.txt
Returnе се врати: 2dac690b816a43e4fd9df5ee35e3790d sum
И ... како што можете да видите, таа прва колона што има многу броеви и букви без очигледен редослед, е идентично истата со онаа што ја ставив погоре и е онаа во декларираната скрипта.
Па, таа прва колона е MD5 од од линукс ????
Ако го стават следново, таа ќе ја врати само 1-та колона, што е онаа што нè интересира: md5sum ~/pass.txt | awk '{print $1}'
4. Значи, работата на скриптата во овој специфичен дел е:
4.1. Скриптата ќе ја стави лозинката што сте ја напишале во повикана привремена датотека temp.txt, и ќе го извлече MD5 од содржината на таа датотека со употреба на командата:
md5sum temp.txt | awk '{print $1}'
4.2. Ако MD5 од лозинката што ја напишавте НЕ е идентична со онаа што ја дефинираше (т.е. онаа напишана во скриптата), таа ќе се затвори и ќе даде грешка:
5. Кога лозинката ќе се совпадне, скриптата ќе направи низа чекори, во мојот случај:
5.1. Enterе влезе во папката / дома / споделено / домаќин / - » cd / home / shared / host /
5.2. Папката FlatPress се нарекува „јас“ и таа е компресирана во .RAR заштитена со лозинка (лозинката е иста како што треба да се постави претходно), така што скриптата ќе ја декомпресира таа датотека (me.rar) - » rar x me.rar -hp $ MWORD
ретки x - »Она што го прави е да ги декомпресира датотеките и папките со истиот редослед што го имаат.
јас.rar - »Ова е датотеката што сакам да ја отпакувам.
-КС $ MWORD - »Овде укажувам дека мора да користите лозинка за да ја отпакувате датотеката, а лозинката е променливата $ MWORD (оваа променлива е лозинката што ја внесовме претходно)
5.3. Значи, ако беше добро отпакуван, ќе ја избришам датотеката me.rar ... зошто? Па, затоа што нема смисла дека .rar постои ако работам со датотеките што ги имав внатре, и тие датотеки се менуваат затоа што пишувам нови работи на блогот - » rm мене.rar
5.4. Морам да ги сменам дозволите за сè да работи добро - » chmod 777 -R me / (запомнете дека папката јас / е она што ме содржи компресирано.rar)
5.5. Meе ми покаже прозорец што ќе ми каже дека имам 10 секунди да го отворам прелистувачот. WTF!, Што значи ова? ...
Ова е можно затоа што скриптата проверува на секои 3 секунди дали Rekonq е отворена или не, ако открие дека е отворена, скриптата не прави ништо, но ако открие дека НЕ е отворена, таа извршува: rar a me.rar -hp $ MWORD me / * && rm -R me /
Што значи дека ќе ја компресира папката јас / en јас.rar (и ќе стави лозинка, која би била иста како што веќе видовме), и откако ќе го компресирате и ако немаше грешки, таа ќе ја избрише папката јас / со целата своја содржина.
5.5 (б) Како ни помага ова? ... едноставно, ова нè избегнува да мора да запомниме дека мораме повторно да ја заштитиме нашата содржина, бидејќи треба само да престанеме да работиме на неа (да го затвориме прелистувачот) и скриптата ќе ја заврши целата останата работа
6. Подготвени, сето ова е објаснето на општ начин
... иако има уште еден дета detail
Скриптата има уште поголема заштита, заштитата што е оневозможена (коментирана) се овие редови:
if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi
Она што го прави е едноставно. Променливата $ USER е глобална променлива на системот, ако во терминал се стави:
echo $USER
Seeе видите што ви покажува вашиот корисник ... добро, логиката на овие редови е едноставна.
Ако $ USER не се совпаѓа со променливата $ ME (и тоа беше прогласено од мене во скриптата, а тоа е: .sh што се наоѓаат во таа папка, односно ќе се самоуништи 😉
Ова е да се спречи некој друг да ја извршува скриптата на друг компјутер, хехехе.
И добро, мислам дека нема што повеќе да се објасни, го оставам сценариото:
Знам дека многумина ќе го сметаат за исклучително сложено, но всушност плаши повеќе отколку што треба ... сценариото има навистина едноставна работна логика, за едноставна намена.
Ова го сторив за да одговорам на мојата многу специфична потреба, го споделувам со надеж дека некоја друга линија или идеја објасни тука може да послужи некому
Патем, скриптата е наменета за KDE, бидејќи дијалозите (прозорците) што ги прикажува се од KDE (користејќи KDialog), но може да се прилагоди за Gnome / Unity / Cinnamon / Mate со користење Зенит, или користете го 100% во терминал со едноставно користење на командата за дијалог.
И да, дури и сценариото има некои други недостатоци, на пример, ако скриптата го распакува .rar, а потоа некој насилно ја затвори (убие) скриптата, содржината на .rar ќе биде незаштитена, има уште некои детали што треба да се полираат ... но еј, ние исто така мора да контролираме дека никој не може да го провери нашиот компјутер
За да завршам, сакам да разјаснам дека НЕ сум програмер, уште помалку, не се сметам за таков, замислувам дека можете да оптимизирате линии во кодот или да користите некоја функција за да ја подобрите работата на скриптата ... но јас рече, јас не сум програмер
Било какви прашања имаат во врска со тоа, тие ми ги кажуваат, иако сценариото можеби не им служи затоа што не им е потребно, тие секогаш ќе можат да научат некој друг совет од тоа
Со почит
П.С: го знам тоа елав тој ќе рече дека сум премногу параноичен ... или дека си го трошам времето, но не е така. Сакав нешто многу специфично, многу специфичен безбедносен систем и сам го програмирав ... колку е тоа гекирано? … СМЕЕЊЕ НА ГЛАС!!
41 коментари, оставете ги вашите
Ова интересно, но мислам дека прашањето за да / не е многу за да прдне xD
И што мислите, наместо да користите rar што е комерцијален и не нуди вистинска безбедност, заменете го со gpg, што е софтвер за безбедност повеќе од докажано со текот на годините, и постои практично во сите дистрибуции
Друга работа, можете да ја пренесете низата md5sum, не треба да креирате привремена датотека. Тука исто така препорачувам да одите во ша, што е многу побезбедно, пробајте во терминалот: шасум
На здравје!
Здраво и благодарам за коментарот
GPG ми дозволува да спакувам директориум со целата нејзина содржина? Тоа е дека јас всушност го користев само за одделни датотеки, не за директориуми што содржат поддиректориуми и датотеки.
ооо… супер за шасум, не го познавав
Goе продолжам да ја менувам скриптата за да ја користам оваа и ... да !! точно, со едноставно: ехо „$ PASSWORD“ | шасум Јас веќе ја добив низата, навистина нема потреба да ја пишувам во датотека :)
Ви благодарам многу за вашиот коментар, јас веќе научив нешто ново
Со почит
е истото што го прашував ...
Она што ќе ви треба е да откриете како да ја шифрирате датотеката GPG и да ја пренесете лозинката на истата линија ... на пример:
gpg -e датотека.tar.gz - патен збор elpassword што и да е
Некоја идеја како да го направите тоа? 🙂
За да шифрирате директориум c / gpg, прво мора да го спакувате со катран.
тогаш, за овој случај, погодно е да се користи симетрична енкрипција, со параметарот -c (видете ја Википедија за разликата помеѓу симетричната и асиметричната енкрипција).
ова тогаш би било нешто како:
tar -czf дестинација.tgz извор_директориум / && ехо $ passwd | gpg –серија –компрес-ниво 0 -в –нарочна фраза-fd 0
ова ќе создаде компресирана датотека наречена „destination.tgz“ и шифрираната датотека наречена „destination.tgz.gpg“. и изворниот директориум и самиот компрес треба да се отстранат за безбедност (проверете ја командата за парчиња)
за дешифрирање:
ехо $ passwd | gpg –batch -d –passphrase-fd 0 енкрипција_фајл.tgz.gpg | катран -хз
што ќе ги извлече датотеките во тековниот директориум (тогаш mv може да се користи за нивно преместување на друго место)
На какви било прашања, одговорете на овој коментар
Честитки!
ех, внимавајте на двојни цртички (-) и единечни цртички (-)… има ли начин да напишете нешто како да е код за да не се смени форматот?
prueba de codigo -- -
[код] код за тест - - [/ код]
Јас го трошам повеќе гласно
компресирај и шифрирај:
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
поздрав!
Да, всушност вчера дома го прочитав човекот со ГПГ и имаше се што ми требаше нецеситаба
Всушност, јас не го сторив тоа така, не користев ехо или компресија, направив објава за ова, само што ја објавив.
Ви благодарам многу за помошта пријател, навистина.
Прекрасно! Само барав такво нешто и наидов на вашата статија. Одам да го тестирам за да ги заштитам моите податоци. Кога станува збор за безбедноста на компјутерот, никогаш не можете да бидете премногу параноични. Ви благодарам
Фала хаха
Дали разбравте како работи сценариото, нели?
Се чини многу покомплексно отколку што навистина е лол.
Ви благодариме за коментарот, навистина
Со почит
ПС: Навистина, безбедноста никогаш не е доволна хахаха.
Мене ме чинеше малку да го разберам (го прочитав 3 пати) бидејќи не користев линукс подолго време. Но, тоа е навистина едноставно и секогаш е убаво да се научат вакви работи. Поздрав и повторно благодарам.
Важно е да го разбереме хехе. Се обидов да објаснам се што е крајно детално, но мислам дека проширив премногу.
Ви благодариме
Леле, многу добро сценарио
ПС: Параноја е над 9000! xD
хахахахахахаха тоа сум јас ... ЛОЛ !!
Гледајќи ја вашата скрипта, мислам дека може да се направи со xdialog во случај да немате kde :)! На здравје
О, не знаев за xdialog ... ќе треба да погледнам да видам
Ви благодариме за информацијата.
наместо rar зошто да не се користат tar.xz / gz и gpg?
тоа е затоа што веќе го имате поретко каде го имате вашиот CMS
Одлично @ KZKG ^ Gaara пред неколку дена размислував за такво нешто, но јас сум на испити, така што немав време за ништо, и одеднаш ја гледам твојата статија.
Tryе го пробам следната недела
Ви благодарам, какви било детали тука сум
xD Јас не разбирав ништо уу, но ако сакам правилно да го користам kdialog во скриптите, како да добијам порака во известувачот за KDE
За да добиете пораки во известувањата на KDE, обидете се да го инсталирате пакетот: libnotify-bin
Потоа во терминал ставате:
notify-send "texto texto texto"
И, ќе видите колку е кул 😀…, и ова работи за KDE, Gnome, Unity, Cinnamon, Mate и Xfce
Сепак, во оваа скрипта не користам известувања како такви, туку едноставно прозорци на KDialog. Во тип на терминал:
kdialog
И ќе ја видите помошта таму 😉
Поздрав
Многу благодарам о /
Здраво, добра објава, само предлог, вреди дека со md5 не се гледа со голо око, но некои curубопитни можат да користат табела за виножито за да видат дали лозинката претворена во md5 е таму, препорачувам да користите bcrypt (http://bcrypt.sourceforge.net/), тоа е само предлог, можете да го земете за секоја пригода, поздрав.
Благодарам
Всушност да, MD5 не е совршен и има такви што успеале да добијат лозинки, ќе ја разгледам оваа апликација
Ви благодариме за вашиот коментар
со симетричната само во kdialog ве прашува за лозинката
и со асиметричен со користење на јавен клуч.
Морам да појаснам дека немам трага од програмер.
Да, веќе успеав да шифрирам со GPG (всушност само ставив пост за ова) хехе.
KZKG ^ Гаара секогаш читај ја твојата објава.
Изградете еден за употреба со XFCE.
Бакнеж. Скапи
Здраво и пред се, добредојде на блогот
хахаха ти благодарам, знам дека понекогаш е тешко затоа што пишувам нешто технички работи, но секогаш се обидувам да објаснам сè што е можно појасно
Experimentе експериментирам малку со XDialog или Zenity за да видам дали му одговара на Xfce хаха, ќе ги направам тестовите во виртуелен Xubuntu
Со почит
Сосема корисен човек, благодарам!
Честитки!
Ви благодарам, тоа ќе ми помогне многу за да заштитам некои датотеки
Морав да го прилагодам на зенитот затоа што немам kde во моментот: \
Тука го оставам скелетот што ќе го користам прилагоден на зенитоста
http://paste.desdelinux.net/4641
Фала уште еднаш и поздрав
ооооооооооогу, благодарам многу 😀 😀
Се сеќавам дека некој го побара ова, но за Xfce, со Зенити би функционирал во Xfce, нели?
Да, само таа команда остана за да се додадат командите што треба да се извршат, откако ќе се помине лозинката на shasum или md5
Треба да се модифицира во различни потреби за секоја личност, за да се заштитат различни работи на различни правци со различни команди
Или можеби додавање на друг дел (GUI) за да се создаде безбедносната конфигурација на нашата датотека
Поздрав
Имав време и xfce (во Archlinux) и веќе целосно ја адаптирав сценариото како што беше, за xfce користејќи житилност (мислам) бидејќи тој што го оставив погоре беше само скелетот што го користев
http://paste.desdelinux.net/4644
Може ли да се уреди ако има грешка од пастата?
Она што се случува е дека имам неколку графички школки и не знам дали ќе работи во чиста xfce, на пример во xubuntu
Поздрав
Интересно че !!! Добар придонес !!!!!!
Јас сум многу нов во програмирањето, учам БАШ постепено ... но ми се случија некои работи и може да ти бидат корисни или не.
Кога ќе кажете дека на скриената скрипта е вметната лозинката и би било непростливо некој да ја отвори и да ја прочита од таму ... вие го предлагате целиот овој трик за вградување на MD5 како заштитна мерка.
Што е прилично добро како прв чекор во отежнување на животот на потенцијалниот натрапник, но проверете ги следниве идеи (што дури може да се применат една над друга)
ИДЕА 1) Што ако ја зачувате лозинката во датотека на вашата машина, а не ја хостирате во скриптата?
ЕЈ: во txt ставете го клучот и зачувајте го во / дома / /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) Што е со тоа, дали ја замаглувате целата баш-скрипта, па затоа не може ни да се отвори?
Еден начин да го направите ова е да го искористите фактот дека треба да составите Ц.
Потоа, ја воведува скриптата во 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.
Па, ништо повеќе ...
На здравје !!!!!!!! и држете БЕШ.
ХАХАХАХА благодарам
Всушност, сега користам 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, така што дозволите не се целосно најдобрата опција.
За опфаќањето на Баш-кодот ... да, размислував за ова и идејата е ГОЛЕМА, проблемот е што не знам како да го направам тоа, всушност не знам ни дали може да се направи ХАХАХА.
О, чекај ... сега го прочитав остатокот од коментарот О_О ... хехе, не знаев дека можеш да го сториш тоа. Немам претстава за Ц или Ц ++, но би вредело да пробам лол.
За идејата 3, не е лошо
Направив неколку подобрувања во сценариото откако го објавив овој пост, 2 се оние што ги споменав во врските на почетокот на овој коментар, друго е дека ако промените некој карактер во сценариото, тој ќе се избрише. И сега морам да го пробам ова за да го замавнам кодот хахахаха.
Ви благодариме за вашиот коментар и… да, издржете, баш !!! ХАХА
WTF !!!
Јас веќе користев SHC… GE-NI-AL !!!! О_О
Многу добра скрипта, еј и ако користите проверувач на корени, за да можете да ја извршите скриптата како судо. / Скрипт
Вие само треба да го додадете овој код на почетокот
http://paste.desdelinux.net/4663
Поздрав
KZKG ^ Гаара, пријателе, мислам дека елаборирањето на објаснување не е проблем, тоа е добро за оние кои немаат толку знаење. Написите што не учат се објавени токму тука, тие даваат информации само за нешто што постои. Затоа, не се оправдувајте и оставете да има уште со проширени објаснувања.
За вакви работи што ги користам http://www.truecrypt.org/
Може ли некој да го сподели сценариото? Curубопитен сум и сите врски се прекинати. 🙁
Ви благодариме.