Kilka dni temu Opowiedziałem im o Prasa płaska, aplikacja internetowa (CMS), dzięki której mogą mieć bloga lub coś podobnego bez korzystania z baz danych lub zbytniego komplikowania się 🙂
Cóż, mam na swoim laptopie plik Prasa płaska na osobiste notatki, rzeczy, o których nie chcę zapomnieć, dlatego piszę je na tym osobistym blogu. Ale, jak wielu z was musi już wiedzieć ... Jestem trochę paranoikiem co do bezpieczeństwa, a jeśli chodzi o bezpieczeństwo MOICH myśli, to nie macie pojęcia, jak paranoikiem mogę być
Więc stanąłem przed problemem: w jaki sposób za pomocą FlatPress mogę zabezpieczyć całą zawartość?
Myślałem o kilku aplikacjach, które pozwalają na szyfrowanie danych, ale… żadna nie robiła dokładnie tego, co chciałem, więc podjąłem się zadania programowania tego, co chciałem.
Teraz pokażę ci skrypt, który zrobiłem, który wykonuje następujące czynności:
1. Pokazuje okno dialogowe z pytaniem, czy jesteś KZKG ^ Gaara, jeśli naciśniesz NIE, skrypt zamknie się, jeśli naciśniesz TAK, wszystko będzie kontynuowane normalnie.
2. Pokaż pole tekstowe z pytaniem, jakie jest hasło:
3. Jeśli naciśniesz Anuluj, skrypt zamyka się, teraz pojawia się jedna ze sztuczek skryptowych 😉 ...
3.1. Logika jest taka, że skrypt porównuje hasło, które piszemy, z hasłem, które jest już wstępnie zdefiniowane w tym samym skrypcie, i jeśli hasła są zgodne, to nadal działa, a jeśli hasła nie pasują, pojawi się komunikat o błędzie. Problem w tym, że jeśli umieścimy poprawne hasło wewnątrz takiego skryptu, każdy, kto otworzy skrypt za pomocą edytora tekstu, będzie mógł bardzo wyraźnie zobaczyć poprawne hasło ... a to moi przyjaciele, to po prostu niewybaczalna porażka 🙂
3.2. Aby uniknąć umieszczania takiego hasła w zwykłym tekście w skrypcie, użyłem MD5. Oznacza to, że na początku skryptu zadeklarowałem, że prawidłowe hasło to «2dac690b816a43e4fd9df5ee35e3790d«, A to jest MD5:«desdelinux«. ... Niczego nierozumiem!! …
Omówmy trochę więcej. Jeśli teraz napiszę do pliku (na przykład ~ / pass.txt) tekstu: desdelinux
Jeśli w terminalu napiszę: md5sum ~ / pass.txt
Wróci do mnie: 2dac690b816a43e4fd9df5ee35e3790d sum
I ... jak widać, ta pierwsza kolumna, która zawiera wiele cyfr i liter w niewidocznej kolejności, jest identyczna z tą, którą umieściłem powyżej i jest tą w zadeklarowanym skrypcie.
Cóż, ta pierwsza kolumna to MD5 z desdelinux 😉
Jeśli wstawią co następuje, zwróci tylko pierwszą kolumnę, czyli tę, która nas interesuje: md5sum ~/pass.txt | awk '{print $1}'
4. Tak więc działanie skryptu w tej konkretnej części to:
4.1. Skrypt umieści hasło, które zapisałeś w pliku tymczasowym o nazwie temp.txti wyodrębni MD5 z zawartości tego pliku za pomocą polecenia:
md5sum temp.txt | awk '{print $1}'
4.2. Jeśli MD5 hasła, które właśnie zapisałeś, NIE jest identyczne z tym, które zdefiniowało (to znaczy to, które zostało zapisane w skrypcie), zostanie zamknięte i wyświetli błąd:
4.3. Jeśli hasło pasuje, idealnie ... skrypt kontynuuje 😀
5. Gdy hasło się zgadza, skrypt wykona serię kroków, w moim przypadku:
5.1. Wejdzie do folderu / home / shared / hosted / - » cd / home / shared / hosted /
5.2. Folder FlatPress nazywa się „me” i jest skompresowany do formatu .RAR chroniony hasłem (hasło jest takie samo, jak powinno być ustawione wcześniej), więc skrypt zdekompresuje ten plik (me.rar) - » rar x me.rar -hp $ MWORD
rzadkie x - »To, co robi, to dekompresowanie plików i folderów z zachowaniem tej samej kolejności, w jakiej mają.
ja.rar - »To jest plik, który chcę rozpakować.
-hp $ MWORD - »Tutaj zaznaczam, że do rozpakowania pliku należy użyć hasła, a hasłem jest zmienna $ MWORD (ta zmienna to hasło, które wprowadziliśmy wcześniej)
5.3. Jeśli więc został dobrze rozpakowany, przechodzę do usunięcia pliku me.rar ... dlaczego? te pliki się zmieniają, ponieważ piszę nowe rzeczy na blogu - » rar.rar
5.4. Muszę zmienić uprawnienia, aby wszystko działało dobrze - » chmod 777 -R ja / (pamiętaj, że folder me / jest tym, co zawiera skompresowany me.rar)
5.5. Pokaże mi się okno z informacją, że mam 10 sekund na otwarcie „przeglądarki”…. WTF!, Co to oznacza? ...
5.5 (a). Proste, bardzo proste… 🙂… Otwieram przeglądarkę (w tym przypadku rekonq) i pracuję nad nowym postem, ale kiedy zamykam przeglądarkę, skrypt ponownie kompresuje folder me / w .rar (pozostając w me.rar).
Jest to możliwe, ponieważ skrypt sprawdza co 3 sekundy, czy Rekonq jest otwarty, czy nie, jeśli wykryje, że jest otwarty, skrypt nic nie robi, ale jeśli wykryje, że NIE jest otwarty, wykonuje: rar a me.rar -hp $ MWORD me / * && rm -R me /
Co oznacza, że skompresuje folder mnie/ en ja.rar (i umieści hasło, które będzie takie samo, jak już widzieliśmy), a gdy go skompresujesz i nie będzie żadnych błędów, usunie folder mnie/ z całą zawartością.
5.5 (b). Jak to nam pomaga? ... proste, dzięki temu nie musimy pamiętać, że musimy ponownie zabezpieczyć nasze treści, ponieważ musimy tylko przestać nad nimi pracować (zamknąć przeglądarkę), a skrypt wykona całą resztę pracy 😉
6. Gotowe, wszystko zostało ogólnie wyjaśnione 🙂
... chociaż jest jeszcze jeden szczegół 😀
Skrypt ma jeszcze lepszą ochronę, ochronę, która jest wyłączona (komentowana) to te linie:
if [ "$USER" != "$ME" ]; then
rm *.sh
kdialog --error "Sorry but u are not me. Auto-destroying..." --title "Im Me..."
exit
fi
To, co robi, jest proste. Zmienna $ USER jest globalną zmienną systemu, jeśli w terminalu umieścimy:
echo $USER
Zobaczysz, co pokazuje ci twój użytkownik ... cóż, logika tych linii jest prosta.
Jeśli $ USER nie pasuje do zmiennej $ ME (a została zadeklarowana przeze mnie w skrypcie i jest to: "gaara") skrypt usunie WSZYSTKIE pliki .sh które znajdują się w tym folderze, to znaczy ulegną samozniszczeniu 😉
Ma to na celu uniemożliwienie komuś wykonania skryptu na innym komputerze hehehehe.
I cóż, nie wydaje mi się, żeby było wiele więcej do wyjaśnienia, zostawiam scenariusz:
Wiem, że wielu uzna to za niezwykle złożone, ale w rzeczywistości przeraża to bardziej niż powinno… skrypt ma naprawdę prostą logikę działania w prostym celu.
Zrobiłem to, aby zaspokoić moją bardzo konkretną potrzebę, dzielę się nią z nadzieją, że jakaś inna wyjaśniona tutaj linia lub idea może komuś się przydać
Nawiasem mówiąc, skrypt jest przeznaczony dla KDE, ponieważ wyświetlane okna dialogowe (okna) pochodzą z KDE (przy użyciu KDialog), ale można go dostosować do Gnome / Unity / Cinnamon / Mate za pomocą Zenitylub użyj go w 100% w terminalu, używając po prostu okna dialogowego poleceń.
I tak, nawet skrypt ma inne wady, na przykład jeśli skrypt rozpakuje plik .rar, a następnie ktoś przymusowo zamknie (zabije) skrypt, zawartość pliku .rar pozostanie niezabezpieczona, pozostało jeszcze kilka szczegółów do dopracowania ... ale hej, musimy też mieć pewność, że nikt nie może sprawdzić naszego komputera 😀
Na koniec chcę wyjaśnić, że NIE jestem programistą, a tym bardziej nie uważam się za takiego, wyobrażam sobie, że można zoptymalizować linie w kodzie, lub użyć jakiejś funkcji do usprawnienia działania skryptu ... ale ja powiedział, że nie jestem programistą 😉
Wszelkie pytania, jakie mają na ten temat, mówią mi, chociaż scenariusz może im nie służyć, ponieważ go nie potrzebują, zawsze mogą się z niego nauczyć innej wskazówki 😀
pozdrowienia
PD: wiem to pełen życia powie, że jestem zbyt paranoikiem ... albo że marnuję czas, ale tak nie jest. Chciałem czegoś bardzo konkretnego, bardzo specyficznego systemu bezpieczeństwa i sam go zaprogramowałem… czy to dziwaczne? … LOL!!
To interesujące, ale myślę, że pytanie tak / nie jest bardzo pierdnięcie xD
A jak myślisz, zamiast używać rar, który jest zastrzeżony i nie oferuje prawdziwego bezpieczeństwa, zamień go na gpg, który jest oprogramowaniem zabezpieczającym więcej niż sprawdzonym przez lata i istnieje praktycznie we wszystkich dystrybucjach 😉
Inna sprawa, możesz przekazać ciąg md5sum, nie musisz tworzyć pliku tymczasowego. Tutaj również polecam udać się do sha, które jest znacznie bezpieczniejsze, spróbuj w terminalu: shasum
Twoje zdrowie!
Witam i dziękuję za komentarz 😀
GPG pozwala mi spakować katalog z całą zawartością? Chodzi o to, że faktycznie użyłem go tylko do pojedynczych plików, a nie do katalogów, które zawierają podkatalogi i pliki.
ooo… świetnie o shasumie, nie znałam go 😀
Później zmodyfikuję skrypt, by używał tego i… tak !! prawda, po prostu: echo "$ PASSWORD" | shasum Ciąg już mam, w efekcie nie ma potrzeby zapisywania go do pliku :)
Bardzo dziękuję za komentarz, nauczyłem się już czegoś nowego 🙂
pozdrowienia
to to samo, o co prosiłem ...
To, czego potrzebujesz, to dowiedzieć się, jak zaszyfrować plik GPG i podać mu hasło w tej samej linii ... na przykład:
gpg -e file.tar.gz –password elpassword cokolwiek
Masz pomysł, jak to zrobić? 🙂
Aby zaszyfrować katalog c / gpg, musisz najpierw spakować go za pomocą tar.
następnie w tym przypadku wygodnie jest używać szyfrowania symetrycznego z parametrem -c (zobacz wikipedię, aby poznać różnicę między szyfrowaniem symetrycznym i asymetrycznym).
to byłoby coś takiego:
tar -czf destination.tgz katalog_źródłowy / && echo $ passwd | gpg –batch –poziom kompresji 0 -c –passphrase-fd 0
spowoduje to utworzenie skompresowanego pliku o nazwie „destination.tgz” i zaszyfrowanego pliku o nazwie „destination.tgz.gpg”. ze względów bezpieczeństwa należy usunąć zarówno katalog źródłowy, jak i sam kompres (zwróć uwagę na polecenie shred)
odszyfrować:
echo $ passwd | gpg –batch -d –passphrase-fd 0 plik_szyfrowania.tgz.gpg | tar -xz
który wyodrębniłby pliki w bieżącym katalogu (wtedy można użyć mv do przeniesienia ich w inne miejsce)
Wszelkie pytania, odpowiedz na ten komentarz 🙂
Pozdrowienia !!
ehm, uważaj na podwójne myślniki (-) i pojedyncze (-)… czy jest sposób na napisanie czegoś tak, jakby to był kod, aby format się nie zmienił?
prueba de codigo -- -
[kod] kod testu - - [/ kod]
Wydaję to bardziej rozwlekle
kompresuj i szyfruj:
tar -czf destino.tgz directorio_fuente/ && echo $passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
Zwróć uwagę, że tutaj są dwa kroki: najpierw utwórz skompresowany plik, a następnie, jeśli nie wystąpił błąd, kontynuuj szyfrowanie (tworzenie łańcucha za pomocą &&)
odszyfruj i rozpakuj:
echo $passwd | gpg –batch -d –passphrase-fd 0 archivo_cifrado.tgz.gpg | tar -xz
salutuje!
Tak, właściwie wczoraj w domu przeczytałem gpg man i było tam wszystko, czego potrzebowałem necesitaba
Właściwie nie do końca to zrobiłem, nie użyłem echa ani kompresji, napisałem o tym post, po prostu go opublikowałem.
Bardzo dziękuję za pomocnika, naprawdę.
Wspaniale! Szukałem czegoś takiego i trafiłem na Twój artykuł. Zamierzam to przetestować, aby chronić moje dane. Jeśli chodzi o bezpieczeństwo komputerów, nigdy nie możesz być zbyt paranoikiem. Dziękuję Ci
Dzięki haha.
Czy zrozumiałeś, jak działa skrypt, prawda?
Wydaje się o wiele bardziej skomplikowane niż w rzeczywistości jest lol.
Dzięki za komentarz, naprawdę 😀
pozdrowienia
PS: Rzeczywiście, bezpieczeństwo nigdy nie jest wystarczające hahaha.
Trochę mnie to kosztowało zrozumienie (przeczytałem 3 razy), ponieważ od dawna nie korzystam z Linuksa. Ale to naprawdę proste i zawsze miło jest nauczyć się takich rzeczy. Pozdrawiam i jeszcze raz dziękuję.
Ważne, żeby to zrozumieć hehe. Próbowałem wszystko wyjaśnić niezwykle szczegółowo, ale wydaje mi się, że za bardzo rozciągnąłem hahaha.
Dzięki tobie 🙂
Wow, scenariusz jest bardzo dobry 🙂
PS: Paranoja to ponad 9000! xD
hahahahahahaha to ja… LOL !!
Patrząc na twój skrypt, myślę, że można to zrobić za pomocą xdialog, jeśli nie masz kde :)! Twoje zdrowie
Och, nie wiedziałem o xdialog ... Będę musiał mieć na to oko 😀
Dzięki za informację.
zamiast rar, czemu nie użyć tar.xz / gz i gpg?
to dlatego, że masz to już w rar, gdzie masz swój CMS
Świetnie @ KZKG ^ Gaara kilka dni temu myślałem o czymś takim, ale jestem na egzaminach, więc nie miałem czasu na nic i nagle widzę twój artykuł….
Spróbuję w przyszłym tygodniu 🙂
Dziękuję, wszelkie szczegóły tutaj jestem 😀
xD Nic nie zrozumiałem uu, ale jeśli chciałbym poprawnie używać kdialog w skryptach, jak uzyskać wiadomość w powiadamiaczu KDE
Aby otrzymywać wiadomości w powiadomieniach KDE, spróbuj zainstalować pakiet: libnotify-bin
Następnie w terminalu umieszczasz:
notify-send "texto texto texto"
Zobaczysz, jak fajnie 😀… i to działa dla KDE, Gnome, Unity, Cinnamon, Mate i Xfce 😉
Jednak w tym skrypcie nie używam powiadomień jako takich, a po prostu okna KDialog. W typie terminala:
kdialog
Tam zobaczysz pomoc 😉
Pozdrowienia 😀
Bardzo dziękuję o /
Witam, dobry post, tylko sugestia, w porządku, że z md5 nie widać go gołym okiem, ale niektórzy ciekawi mogą skorzystać z tęczowej tabeli, aby sprawdzić, czy hasło przekonwertowane na md5 jest w środku, polecam użycie bcrypt (http://bcrypt.sourceforge.net/), to tylko sugestia, możesz ją wziąć na każdą okazję, Pozdrowienia.
Dzięki 😀
Właściwie tak, MD5 nie jest doskonały i są tacy, którym udało się zdobyć hasła, przyjrzę się tej aplikacji 😉
Dzięki za komentarz.
z symetrycznym tylko w kdialog prosi o hasło
oraz asymetrycznym wykorzystującym klucz publiczny.
Muszę wyjaśnić, że nie mam śladu programisty.
Tak, już zdążyłem zaszyfrować za pomocą GPG (właściwie właśnie zamieściłem post o tym) hehe.
KZKG ^ Gaara zawsze czytaj twój post.
Zbuduj taki, który będzie używany z XFCE.
Pocałunek. Kosztowny
Witam i przede wszystkim witam na blogu 😀
hahaha dziękuję, wiem, że czasami jest to trudne, bo piszę nieco techniczne rzeczy, ale zawsze staram się wszystko wyjaśnić jak najdokładniej
Trochę poeksperymentuję z XDialogiem lub Zenity, żeby sprawdzić, czy działa na Xfce haha, testy zrobię w wirtualnym Xubuntu 🙂
pozdrowienia
Całkiem pożyteczny człowieku, dzięki!
Pozdrowienia!
Dzięki, bardzo mi to pomoże zabezpieczyć niektóre pliki
Musiałem dostosować go do zenity, ponieważ w tej chwili nie mam kde: \
Tutaj zostawiam szkielet, którego będę używał przystosowany do zenity
http://paste.desdelinux.net/4641
Jeszcze raz dziękuję i pozdrawiam 😀
ooo super, dziękuję bardzo 😀 😀
Pamiętam, że ktoś o to prosił, ale w przypadku Xfce, z Zenity to działałoby w Xfce, prawda?
Tak, tylko że pozostawiono komendę do dodania komend do wykonania, po podaniu hasła shasum lub md5
Musiałby być dostosowany do różnych potrzeb każdej osoby, aby chronić różne rzeczy na różnych trasach za pomocą różnych poleceń
A może dodanie kolejnej części (GUI), aby utworzyć konfigurację bezpieczeństwa naszego pliku
Pozdrowienia 😀
Miałem czas i xfce (w Archlinux) i już w pełni dostosowałem skrypt tak, jak był, dla xfce używającego zenity (myślę), ponieważ ten, który zostawiłem powyżej, był tylko szkieletem, którego użyłem
http://paste.desdelinux.net/4644
Czy można go edytować, jeśli zawiera błąd z wklejania?
Dzieje się tak, że mam kilka powłok graficznych i nie wiem czy zadziała w czystym xfce np. W xubuntu
Pozdrowienia 😀
Ciekawe che !!! Dobry wkład !!!!!!
Jestem bardzo nowy w programowaniu, stopniowo uczę się BASH ... ale pewne rzeczy przyszły mi do głowy i mogą ci się przydać lub nie.
Kiedy mówisz, że pozbawiony skryptu skrypt zawiera hasło i byłoby niewybaczalne, gdyby ktoś go otworzył i przeczytał stamtąd ... proponujesz całą sztuczkę osadzania MD5 jako środka ochrony.
Co jest całkiem dobrym pierwszym krokiem do utrudnienia życia potencjalnemu intruzowi, ale zapoznaj się z następującymi pomysłami (które można nawet zastosować jeden na drugim)
POMYSŁ 1) Co się stanie, jeśli zapiszesz hasło w pliku na komputerze i nie umieścisz go w skrypcie?
EJ: w txt umieść klucz i zapisz go w / home / /bla/bla/key.txt
W swoim skrypcie wywołujesz klucz jako KEY = "$ (cat $ HOME / blah / bla / key.txt)", a następnie rzucasz if $ questionkey = $ KEY, a następnie .. itd. Itd.
W ten sposób osiągasz 3 rzeczy +1 przewagę:
1) Że hasło nigdy nie było w skrypcie. (Unikasz MD5)
2) Ścieżka dostępu do hasła zależy od nazwy użytkownika. (Każdy, kto chce go otworzyć, przekierowuje go w dowolne miejsce) W 99.9% przypadków skrypt zawiedzie.
3) Jeśli chcesz zwiększyć bezpieczeństwo, usuń wszystkie uprawnienia do pliku key.txt dla wszystkich innych użytkowników oprócz Twojego.
4) Zaleta: Możliwość zmiany hasła w dowolnym momencie, bez edycji skryptu. Ponieważ weryfikacja jest zewnętrzna za pośrednictwem pliku.
POMYSŁ 2) Co powiesz na zaciemnienie całego skryptu basha, aby nie można go było nawet otworzyć?
Jednym ze sposobów jest skorzystanie z faktu, że musisz skompilować w C.
Następnie wprowadza skrypt do kodu C, który wywołuje tylko ten skrypt (ale to jest wewnątrz programu). W momencie kompilacji ... wszystko pozostaje w środku, a wyjście jest plikiem wykonywalnym ... i nie jest już skryptem. Jest osoba, która stworzyła już „scenariusz”, który wykonuje proces zaciemniania, co jest bardzo praktyczne.
Więcej informacji tutaj: http://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_B%C3%A1sico_para_Principiantes/Compilar_%28ofuscar%29_BASH_scripts_con_C_-_SHC
POMYSŁ 3) A co jeśli umieścisz w skrypcie warunek wirtualny, w którym będzie wymagane hasło administratora?
Na przykład wykonaj warunek za pomocą „sudo”, a następnie kontynuuj wykonywanie skryptu, jeśli nie, zatrzymaj go.
W ten sposób cała ochrona spadnie jako pomost nad hasłem ROOT.
Cóż, nic więcej ...
Twoje zdrowie!!!!!!!! i przytrzymaj BASH.
HAHAHAHA Dziękuję 😀
Właściwie teraz używam SHA512, ponieważ jest znacznie lepszy niż MD5: https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/
Oprócz GPG jako środka ochrony zamiast kompresji z .RAR: https://blog.desdelinux.net/como-proteger-datos-con-gpg-de-forma-simple/
Problem z umieszczeniem hasła w innym pliku polega na tym, że wtedy umieściłoby to hasło w innym miejscu tak, ale czy byłoby to zwykłym tekstem? Jeśli muszę to zaszyfrować (co jest zalecane) to zostawiam to w tym samym skrypcie, no cóż ... Wątpię, żeby ktoś mógł złamać SHA512 hahahaha (zobacz pierwszy link i zrozumiesz 😉)
Jeśli chodzi o uprawnienia, jeśli ktoś używa LiveCD, może otworzyć plik .txt za pomocą katalogu głównego LiveCD, więc uprawnienia nie są całkowicie najlepszą opcją.
O zaciemnianiu kodu Bash ... tak, myślałem o tym i pomysł jest WSPANIAŁY, problem w tym, że nie wiem jak to zrobić, właściwie nie wiem nawet, czy da się to zrobić HAHAHA.
Och, czekaj ... teraz przeczytałem resztę komentarza O_O ... hehe, nie wiedziałem, że możesz to zrobić. Nie mam pojęcia o C lub C ++, ale warto spróbować lol.
Co do pomysłu 3, nieźle 😀
Odkąd opublikowałem ten post, dokonałem kilku ulepszeń w skrypcie, 2 to te, o których wspomniałem w linkach na początku tego komentarza, innym jest to, że jeśli zmienisz jakiś znak w skrypcie, zostanie on usunięty. A teraz muszę tego spróbować, żeby zaciemnić kod hahahaha.
Dziękuję za komentarz i… tak, zaczekaj, bash !!! HA HA
WTF !!!
Użyłem już SHC… GE-NI-AL !!!! O_O
Bardzo dobry skrypt, hej i jeśli używasz narzędzia do sprawdzania rootów, aby móc uruchomić skrypt jako sudo ./script
Wystarczy, że dodasz ten kod na początku
http://paste.desdelinux.net/4663
Pozdrowienia
KZKG ^ Gaara, mój przyjacielu, myślę, że omawianie wyjaśnień nie jest problemem, to jest dobre dla tych z nas, którzy nie mają tak dużej wiedzy. Artykuły, które nie uczą, zostały opublikowane właśnie tutaj, podają jedynie informacje o czymś, co istnieje. Więc nie usprawiedliwiaj się i pozwól, aby było więcej z rozszerzonymi wyjaśnieniami.
Do takich rzeczy używam http://www.truecrypt.org/
Czy ktoś mógłby udostępnić scenariusz? Jestem ciekawy i wszystkie linki nie działają. 🙁
Dziękuję.