'何か'を保護するためのBashの高度なスクリプト(bash + md5)(+詳細な説明)

何日か前に 私は彼らに フラットプレス、データベースを使用せずに、または複雑になりすぎずにブログなどを作成できるWebアプリケーション(CMS)🙂

さて、私は私のラップトップに フラットプレス 個人的なメモについては、忘れたくないものがあるので、この個人的なブログに書いています。 しかし、あなた方の何人かはすでに知っているに違いありません...私はセキュリティにいくらか妄想的です、そしてそれが私の考えのセキュリティに関係しているなら、あなたは私がどれほど妄想的であることができるかわかりません

だから私は問題に直面しました:FlatPressを使用してその上のすべてのコンテンツを保護するにはどうすればよいですか?

データの暗号化を可能にするいくつかのアプリケーションを考えましたが、…どれも私が望んでいたことを正確に実行しなかったので、私は自分が望むものをプログラミングするタスクを引き受けました。

次に、私が作成したスクリプトを示します。これは次のことを行います。

スクリプトは次のように設計されています KDEで働く、持っていない場合 KDE ダイアログボックスは表示されません。

1. KZKG ^ Gaaraかどうかを尋ねるダイアログボックスが表示されます。NOを押すとスクリプトが閉じ、YESを押すとすべてが通常どおり続行されます。

2. パスワードを尋ねるテキストボックスを表示します。

3. [キャンセル]を押すと、スクリプトが閉じます。スクリプトのトリックのXNUMXつが表示されます😉...

3.1. ロジックは、スクリプトが作成したパスワードを同じスクリプト内ですでに事前定義されているパスワードと比較し、パスワードが一致する場合は実行を継続し、パスワードが一致しない場合はエラーメッセージが表示されるというものです。 問題は、そのようにスクリプト内に正しいパスワードを入力すると、テキストエディタでスクリプトを開いた人は誰でも、正しいパスワードを非常にはっきりと見ることができるということです。これは私の友人です。これは単に許されない失敗です。

3.2. このようなパスワードをスクリプトにプレーンテキストで入力しないようにするために、MD5を使用しました。 つまり、スクリプトの冒頭で、正しいパスワードは«であると宣言しました。2dac690b816a43e4fd9df5ee35e3790d«、そしてこれは次のMD5です:«desdelinux«。 ..。 私は何も分からない!! …😀

もう少し詳しく見ていきましょう。 ファイルに書き込む場合(例えば 〜/ pass.txt)テキストの: desdelinux

ターミナルで私が書く場合: md5sum〜 / pass.txt

それは私に戻ります: 2dac690b816a43e4fd9df5ee35e3790d sum

そして...ご覧のとおり、数字と文字が明確な順序でない最初の列は、上記の列とまったく同じであり、宣言されたスクリプトの列です。

さて、その最初の列はのMD5です desdelinux 😉

次のように入力すると、最初の列のみが返されます。これは、関心のある列です。 md5sum ~/pass.txt | awk '{print $1}'

4. したがって、この特定の部分でのスクリプトの操作は次のとおりです。

4.1. スクリプトは、あなたが書いたパスワードをという一時ファイルに入れます。 一時テキスト、およびコマンドによってそのファイルのコンテンツのMD5を抽出します。

md5sum temp.txt | awk '{print $1}'

4.2. 作成したパスワードのMD5が、定義したもの(つまり、スクリプトに記述されたもの)とまったく同じでない場合は、閉じてエラーが発生します。

4.3. パスワードが一致する場合は、完璧です...スクリプトは続行されます😀

5. パスワードが一致すると、スクリプトは一連の手順を実行します。私の場合は次のようになります。

5.1. フォルダに入ります /ホーム/共有/ホスト/ - » cd /ホーム/共有/ホスト/

5.2. FlatPressフォルダーは「me」と呼ばれ、パスワードで保護された.RARで圧縮されているため(パスワードは以前に設定したものと同じです)、スクリプトはそのファイル(me.rar)を解凍します-» rar x me.rar -hp $ MWORD

レア× -»ファイルとフォルダを同じ順序で解凍します。

me.rare -»これは私が解凍したいファイルです。

-hp $ MWORD -»ここで、ファイルを解凍するにはパスワードを使用する必要があることを説明します。パスワードは変数$ MWORDです(この変数は以前に入力したパスワードです)

5.3. それで、それがうまく解凍された場合、私はファイルme.rarを削除することに移ります...なぜですか?まあ、私が中に持っていたファイルで作業している場合、.rarが存在することは意味がないので、そして私がブログに新しいことを書いているので、それらのファイルは変更されています-» rm me.rar

5.4. すべてがうまく機能するようにアクセス許可を変更する必要があります-» chmod 777 -R me / (フォルダーme /は、圧縮されたme.rarを含むフォルダーであることを忘れないでください)

5.5. 「the」ブラウザを開くのに10秒あることを通知するウィンドウが表示されます…。 WTF!、これはどういう意味ですか? ..。

5.5(a)。 シンプル、とてもシンプル…🙂…ブラウザを開きます(この場合) レコンク)そして私は新しい投稿に取り組んでいますが、ブラウザを閉じると、スクリプトはme /フォルダを.rar(me.rarに残っている)に再び圧縮します。

これが可能なのは、スクリプトがRekonqが開いているかどうかを3秒ごとにチェックし、開いていることを検出した場合は何もしませんが、開いていないことを検出した場合は次のように実行します。 rar a me.rar -hp $ MWORD me / * && rm -R me /

つまり、フォルダが圧縮されます 私/ en me.rare (そしてそれは私達がすでに見たのと同じであろうパスワードを置くでしょう)、圧縮するとエラーが発生しなかった場合は、フォルダが削除されます 私/ そのすべてのコンテンツで。

5.5(b) これはどのように役立ちますか? ...簡単です。これにより、コンテンツの作業を停止(ブラウザを閉じる)するだけで、スクリプトが残りのすべての作業を実行するため、コンテンツを再度保護する必要があることを覚えておく必要がなくなります😉

6. 準備ができて、これはすべて一般的な方法で説明されています🙂

...まだ別の詳細がありますが😀

スクリプトにはさらに強力な保護があり、無効(コメント)されている保護は次の行です。

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 そのフォルダにある、つまり、それは自己破壊します😉

これは、他の誰かが別のコンピューターheheheheでスクリプトを実行するのを防ぐためです。

そして、説明することはこれ以上ないと思います。スクリプトを残します。

.SHファイルのダウンロード
貼り付けのスクリプトを参照してください

多くの人がそれを非常に複雑に感じることを知っていますが、実際には本来よりも恐ろしいです...スクリプトは単純な目的のために本当に単純な動作ロジックを持っています。

私は私の非常に特定のニーズを満たすためにこれを行いました、ここで説明されている他の行やアイデアが誰かに役立つことを願ってそれを共有します😉

ちなみに、スクリプトはKDEを対象としています。表示されるダイアログ(ウィンドウ)はKDEからのものであるため(KDialogを使用)、Gnome / Unity / Cinnamon / Mateを使用して適合させることができます。 ゼニティ、またはダイアログコマンドを使用するだけでターミナルで100%使用できます。

はい、スクリプトにはまだいくつかの他の欠陥があります。たとえば、スクリプトが.rarを解凍した後、誰かがスクリプトを強制的に閉じた(強制終了した)場合、.rarのコンテンツは保護されなくなり、詳細が残っています。洗練された...しかしねえ、私たちは誰も私たちのコンピューターをチェックできないように制御する必要があります😀

最後に、私はプログラマーではないことを明確にしておきたいと思います。ましてや、私は自分自身をそのように考えていません。コードの行を最適化したり、何らかの関数を使用してスクリプトの操作を改善したりできると思います...しかし、私は言いました、私はプログラマーではありません

彼らがそれについて持っている質問は私に教えてくれます、彼らはそれを必要としないのでスクリプトは彼らに役立たないかもしれませんが、彼らはいつでもそれから他のヒントを学ぶことができます😀

よろしく

PD: そんなこと知ってる エラヴ 彼は私があまりにも妄想的だと言うでしょう...または私は私の時間を無駄にします、しかしそれはそうではありません。 私は非常に具体的な、非常に具体的なセキュリティシステムが欲しかったので、自分でプログラムしました…それはどれほどオタクですか? … 笑!!


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   はっかん

    これは興味深いですが、はい/いいえの質問は非常におならxDだと思います
    そして、独自仕様で真のセキュリティを提供しないrarを使用する代わりに、長年にわたって証明されているセキュリティソフトウェアであり、事実上すべてのディストリビューションに存在するgpgに置き換えてください😉
    もう5つは、mdXNUMXsumに文字列を渡すことができ、一時ファイルを作成する必要がないことです。 ここでも、はるかに安全なshaに行くことをお勧めします。ターミナルで試してみてください:shasum

    サルドス!

    1.    KZKG ^我愛羅

      こんにちは、コメントありがとうございます😀
      GPGを使用すると、ディレクトリとそのすべてのコンテンツをパッケージ化できますか? 私は実際には個々のファイルにのみ使用しており、サブディレクトリやファイルを含むディレクトリには使用していません。

      ooo…shasumは素晴らしい、私は彼を知りませんでした😀
      これを使用するようにスクリプトを変更します、そして…はい!! 本当、簡単に: エコー「$パスワード」| シャサム 私はすでに文字列を取得しています。事実上、ファイルに書き込む必要はありません:)

      コメントありがとうございます、私はすでに何か新しいことを学びました🙂
      よろしく

    2.    ジーク84

      私が尋ねていたのと同じことです...

      1.    KZKG ^我愛羅

        必要なのは、ファイルをGPG暗号化して、同じ行にパスワードを渡す方法を理解することです...例:
        gpg -e file.tar.gz –passwordelpassword何でも

        それを行う方法はありますか? 🙂

        1.    はっかん

          ディレクトリc / gpgを暗号化するには、最初にtarをパックする必要があります。
          次に、この場合、-cパラメーターを指定して対称暗号化を使用すると便利です(ウィキペディアの対称暗号化と非対称暗号化の違いを参照してください)。
          これは次のようになります。
          tar -czf destination.tgz source_directory / && echo $ passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
          これにより、「destination.tgz」という圧縮ファイルと「destination.tgz.gpg」という暗号化ファイルが作成されます。 セキュリティのために、ソースディレクトリと圧縮自体の両方を削除する必要があります(shredコマンドを確認してください)

          復号化するには:
          echo $ passwd | gpg –batch -d –passphrase-fd0暗号化ファイル.tgz.gpg | tar -xz
          これにより、現在のディレクトリ内のファイルが抽出されます(その後、mvを使用してファイルを別の場所に移動できます)

          質問があれば、このコメントに答えてください🙂

          ご挨拶!

          1.    はっかん

            えーと、ダブルハイフン(-)とシングルハイフン(-)に気をつけてください…フォーマットが変わらないように、コードのように何かを書く方法はありますか?
            prueba de codigo -- -
            [コード]テストコード---- [/コード]

          2.    はっかん

            もっと冗長に使う

            圧縮と暗号化:
            tar -czf destino.tgz directorio_fuente/ && echo $passwd | gpg –batch –compress-level 0 -c –passphrase-fd 0
            ここにXNUMXつのステップがあることに注意してください:最初に圧縮ファイルを作成し、次にエラーがなかった場合は、暗号化を続行します(&&でチェーン)

            復号化して解凍します。
            echo $passwd | gpg –batch -d –passphrase-fd 0 archivo_cifrado.tgz.gpg | tar -xz

            敬礼!

          3.    KZKG ^我愛羅

            ええ、実は昨日家でgpg manを読んだのですが、必要なものはすべてありました。
            実際、私はそのようにはしていませんでした。エコーや圧縮を使用していませんでした。これについて投稿しました。投稿したばかりです。

            助けてくれてありがとう、本当にそうです。

  2.   ジョシュ

    素晴らしい! 私はちょうどそのようなものを探していました、そして私はあなたの記事に出くわしました。 データを保護するためにテストします。 コンピュータのセキュリティに関しては、偏執的になりすぎることはありません。 ありがとうございました

    1.    KZKG ^我愛羅

      ありがとうハハ。
      スクリプトがどのように機能するか理解しましたか?

      それは実際よりもはるかに複雑に見えます笑。

      コメントありがとうございます、本当に😀

      よろしく

      PS:確かに、セキュリティは決して十分ではありません。

      1.    ジョシュ

        私は長い間Linuxを使っていなかったので、それを理解するのに少し費用がかかりました(私はそれを3回読みました)。 しかし、それは本当に簡単で、このようなことを学ぶことは常に素晴らしいことです。 ご挨拶とありがとうございました。

        1.    KZKG ^我愛羅

          重要なことはそれを理解することです。 私はすべてを非常に詳細に説明しようとしましたが、私はあまりにも多くのハハハを拡張したと思います。
          ありがとう🙂

  3.   アウロス

    うわー、スクリプトはとても良いです🙂

    PS:パラノイアは9000を超えています! xD

    1.    KZKG ^我愛羅

      はははははははは私です…笑!!

  4.   ラファエル

    スクリプトを見ると、kdeがない場合はxdialogで実行できると思います:)! 乾杯

    1.    KZKG ^我愛羅

      ああ、私はxdialogについて知りませんでした...私はそれを監視する必要があります😀
      情報のおかげで。

  5.   ジーク84

    rarの代わりにtar.xz / gzとgpgを使用しないのはなぜですか?

    1.    ラファエル

      それはあなたがあなたのCMSを持っているrarにすでにそれを持っているからです

  6.   シトゥクス

    すばらしい@KZKG ^我愛羅数日前、私はそのようなことを考えていましたが、私は試験中なので何もする時間がなく、突然あなたの記事を見る…。
    来週やってみます🙂

    1.    KZKG ^我愛羅

      ありがとう、ここに詳細があります😀

  7.   トルコ22

    xD何も理解できませんでしたが、スクリプトでkdialogを正しく使用する方法、KDE通知機能でメッセージを取得する方法が必要な場合

    1.    KZKG ^我愛羅

      KDE通知でメッセージを受け取るには、パッケージをインストールしてみてください。 libnotify ビン
      次に、ターミナルに次のように配置します。
      notify-send "texto texto texto"

      そして、あなたはどれほどクールかを見るでしょう😀…そして、これはKDE、Gnome、Unity、Cinnamon、Mate、Xfceで機能します😉

      ただし、このスクリプトでは、通知自体は使用せず、KDialogウィンドウのみを使用します。 ターミナルタイプの場合:
      kdialog

      そして、あなたはそこで助けを見るでしょう😉

      ご挨拶😀

      1.    トルコ22

        どうもありがとうございましたo /

  8.   Joel antonio vasquez

    こんにちは、良い投稿です。単なる提案です。md5では肉眼で見えなくても大丈夫ですが、レインボーテーブルを使用して、md5に変換されたパスワードがそこにあるかどうかを確認する場合があります。bcryptを使用することをお勧めします(http://bcrypt.sourceforge.net/)、それは単なる提案です、あなたはどんな機会にもそれを取ることができます、ご挨拶。

    1.    KZKG ^我愛羅

      ありがとう😀
      実際にはそうです、MD5は完璧ではなく、パスワードを取得できた人もいます。このアプリケーションを見てみましょう😉

      ご意見をありがとうございます。

  9.   ジーク84

    kdialogの対称的なものでは、パスワードを要求されます
    公開鍵を使用する非対称のものを使用します。

    私にはプログラマーの痕跡がないことを明確にしなければなりません。

    1.    KZKG ^我愛羅

      はい、私はすでにGPGで暗号化することができました(実際、私はこれについて投稿しただけです)。

  10.   カロ

    KZKG ^我愛羅はいつもあなたの投稿を読んでいます。
    XFCEで使用するものを作成します。
    接吻。 高価な

    1.    KZKG ^我愛羅

      こんにちは、そしてまず第一に、ブログへようこそ😀
      はははありがとうございます。技術的なことを書いているので難しいこともあると思いますが、常にできるだけ明確に説明するようにしています。

      XDialogまたはZenityを少し試して、Xfce haha​​で機能するかどうかを確認し、仮想Xubuntuでテストを行います🙂

      よろしく

  11.   エリンクス

    とても便利な人、ありがとう!

    ご挨拶!

  12.   ダミアンリベラ

    ありがとう、それは私がいくつかのファイルを保護するのに大いに役立ちます

    現時点ではkdeがないため、zenityに適応させる必要がありました:\

    ここでは、使用するスケルトンを天頂に適合させたままにします

    http://paste.desdelinux.net/4641

    もう一度ありがとうと挨拶😀

    1.    KZKG ^我愛羅

      ああ、すごい、どうもありがとう😀😀
      誰かがこれを求めたのを覚えていますが、Xfceの場合、Zenityを使用するとXfceで機能しますか?

      1.    ダミアンリベラ

        はい、shasumまたはmd5のパスワードを渡した後、実行するコマンドを追加するためにコマンドが残されただけです

        さまざまなコマンドを使用してさまざまなルートでさまざまなものを保護するために、各人のさまざまなニーズに合わせて変更する必要があります

        または、ファイルのセキュリティ構成を作成するために別の部分(GUI)を追加することもできます

        ご挨拶😀

        1.    ダミアンリベラ

          私には時間とxfce(Archlinuxで)があり、上に残したのは私が使用したスケルトンだけだったので、zenityを使用するxfce(私は思う)のために、スクリプトをそのまま完全に適応させました

          http://paste.desdelinux.net/4644

          貼り付けにバグがある場合、編集できますか?

          何が起こるかというと、私はいくつかのグラフィカルシェルを持っていて、それがクリーンなxfce、たとえばxubuntuで機能するかどうかわかりません

          ご挨拶😀

  13.   マティアスガストン

    面白いチェ!!! 良い貢献!!!!!!

    私はプログラミングにとても慣れていません。少しずつBASHを学んでいます...しかし、私にはいくつかのことが起こり、それらはあなたにとって役立つかもしれないし、役に立たないかもしれません。
    ピールされたスクリプトにパスワードが組み込まれていて、誰かがそれを開いてそこから読み取ることは許されないと言うとき...あなたは保護手段としてMD5を埋め込むこのトリック全体を提案します。

    これは、侵入者の生活を困難にするための最初のステップとしてはかなり良いですが、次のアイデアを確認してください(重ねて適用することもできます)

    IDEA 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)利点:スクリプトを編集せずに、いつでもパスワードを変更できる移植性。 検証はファイルを介して外部で行われるためです。

    IDEA 2)bashスクリプト全体を難読化して、開くことさえできないようにするのはどうですか?

    これを行うXNUMXつの方法は、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

    IDEA 3)管理者パスワードが必要な仮想条件をスクリプトに配置した場合はどうなりますか?

    たとえば、「sudo」を使用して条件を実行してから、スクリプトを停止しない場合は続行します。
    このようにして、すべての保護はROOTパスワードへの架け橋として機能します。

    まあ、これ以上何も...
    乾杯!!!!!!!! そしてBASHを保持します。

    1.    KZKG ^我愛羅

      HAHAHAHAありがとうございます😀
      MD512よりもはるかに優れているため、実際には現在SHA5を使用しています。 https://blog.desdelinux.net/como-saber-la-suma-md5-o-sha-de-una-palabra-oracion-o-archivo/
      .RARで圧縮する代わりに保護の手段としてGPGと同様に: https://blog.desdelinux.net/como-proteger-datos-con-gpg-de-forma-simple/

      パスワードを別のファイルに入れることの問題は、パスワードを別の場所に置くことです、はい、しかしそれはプレーンテキストになりますか? 暗号化する必要がある場合(推奨)、同じスクリプトのままにしておきます...誰かがSHA512ハハハを壊す可能性があることを疑っています(最初のリンクを参照してください。理解できます😉)

      パーミッションに関しては、誰かがLiveCDを使用している場合、LiveCDルートを使用して.txtを開くことができるため、パーミッションが完全に最良のオプションではありません。

      Bashコードの難読化について...はい、私はこれについて考えていましたが、アイデアは素晴らしいです。問題は、それを行う方法がわからないことです。実際、それができるかどうかさえわかりません。

      ちょっと待って...コメントの残りを読んだO_O ...ふふ、あなたがそれができるとは知らなかった。 CまたはC ++のことはわかりませんが、試してみる価値があるかもしれません。

      アイデア3については悪くない😀

      この投稿を公開してから、スクリプトにいくつかの改善を加えました。2つは、このコメントの冒頭のリンクで言及したものです。もうXNUMXつは、スクリプトの文字を変更すると削除されることです。 そして今、私はこれを試してコードを難読化する必要があります。

      コメントありがとうございます…はい、ちょっと待ってください、bash !!! ハハ

    2.    KZKG ^我愛羅

      WTF!
      私はすでにSHCを使用しています…GE-NI-AL !!!! O_O

  14.   アテユス

    非常に優れたスクリプトです。ルートチェッカーを使用している場合は、スクリプトをsudo./scriptとして実行できます。

    最初にこのコードを追加する必要があります

    http://paste.desdelinux.net/4663

    挨拶

  15.   Neo61

    KZKG ^我愛羅、私の友人、説明を詳しく説明することは問題ではないと思います。それはあまり知識がない私たちにとっては良いことです。 教えていない記事はここに掲載されており、存在するものについての情報を提供するだけです。 ですから、言い訳をしないで、詳細な説明でもっと多くのことをさせてください。

  16.   ハンター

    このようなもののために私は使用します http://www.truecrypt.org/

  17.   アベル

    誰かがスクリプトを共有できますか? 私は興味があり、すべてのリンクがダウンしています。 🙁

    ありがとう。