.htpasswd +例を使用してサイトを保護する方法

多くの理由から、ユーザー名とパスワードに基づく認証サービスを介して、Webサーバー上の特定のディレクトリへのアクセス、または単にページやブログのコンテンツへのアクセスを制御すると非常に便利です。 サービスが制限されているWebサイトにアクセスしたいときに表示される典型的なウィンドウのようなものについて話しています。

認証フォームを使用してウィンドウを生成する方法はいくつかありますが、サーバーレベルで興味深いソリューションが提供されています htpasswd。 これは、認証サービスでApacheが使用する暗号化された形式でパスワードを保存する機能を持つユーティリティです。 これを使用すると、特定のディレクトリまたはファイルをhttp経由で特定のユーザーにのみ表示でき、必ずしもすべてのユーザーが自由に利用できるとは限りません。

あまり派手なテーマではないことは理解していますが、一部の人にとっては役立つ可能性があります。 退屈で殺さないために、画像を使ってより教訓的にします。

以前の考慮事項:使用します Ubuntu Server 12.04.1 y Apacheの2.2.22 制御された環境で。

始めます。

ご存知の方もいらっしゃると思いますが、デフォルトでは、利用可能なApacheサイトはディレクトリに保存されています。 / var / www / この例では、HTMLテンプレートを使用してディレクトリを作成し、それを.htpasswdで保護しようとします。

保護するディレクトリは / var / www /例/ 次のページを配置しました。

サーバー上

ブラウザで

1..htpasswdを作成します。

それが配置される場所は関連する重要性があり、パブリックディレクトリの外に配置することは推奨以上のことです。 私の場合は、個人用フォルダー(パブリックApacheディレクトリではありません)に.htpasswdという名前で配置します。 (先験的にそれをそのように呼ぶ必要はありませんが、隠されているものは常に良いです)。

Linuxを初めて使用するユーザー向け。 ディレクトリまたはファイルを非表示にするには、名前をピリオド(。)で始めるだけです。

次のコマンドを使用して、「Luke」という名前のWebユーザー用の.htpasswdファイルを作成します。

# htpasswd -c /home/krel/.htpasswd Luke

パスワードを5回入力するように求められます。私の場合は、「skywalker」(引用符なし)を入力しました。 制御されていない環境では、より強力なパスワードを確立する必要があります。 Linuxのデフォルトの暗号化はMD8ですが、Unixではcrypt()の標準実装であり、XNUMX文字未満のパスワードの場合は脆弱になる可能性があります。 今、それがBSDでも同じかどうか疑問があります。

コマンドの構造は次のとおりです。

  • -c→ファイルを作成するには
  • /home/krel/.htpasswd→ファイルの絶対パス。
  • ルーク→ユーザー名(好きなように)

同様に、インターネット上に端末のサービスがある場合、私は誰にも端末の使用を強制しません。
http://www.web2generators.com/apache/htpasswd_generator

http://www.htaccesstools.com/htpasswd-generator/

必要に応じて、結果を.htpasswdという名前のテキストファイルにコピーします。 この方法については、次の段落でコメントする内容を読むのをやめないでください。

この例では、ファイルが/home/krel/.htpasswdを予期した場所に生成されていることがわかります。 この画像では、この方法でファイルがapacheユーザーとグループに属していることを強調しています。これはUbuntuではwww-dataと呼ばれています。 他の方法で.htpasswdを生成した場合は、644のアクセス許可があることを確認する必要があるため、これは重要です。

さて、今、私たちは彼らの内臓がどのようなものかを見るでしょう:

ご覧のとおり、ユーザー(Luke)がいますが、パスワードは暗号化されています。

このようにして、ユーザーLuke用に.htpasswdを作成および設計しました。最終的には、これはパスワードのコンテナーにすぎません。 「すべてXNUMXつのコマンドで」は良いキャッチフレーズです。

2.サイトでそのサービスを使用および許可するようにApacheを構成します。

# nano /etc/apache2/sites-available/default

複数のホストがある場合、それらはそれぞれで動作する必要があります。私の場合、デフォルトで提供されるホストのみがあります。 そのファイルのバックアップを作成することは常に良いことであることを忘れないでください。

そのファイルのデフォルトの構造は次のとおりです。

ServerAdmin webmaster @ localhost

..................

..................

特定のディレクトリにアクセスするために.htpasswdの使用が指定されるのは、まさにVirtualhostの見出し内です。 以下の画像が表示され、例に適しているように実行します。

良い。 私は行を説明します:

保護するディレクトリを配置する必要があります。

AuthTypeディレクティブの基本

これは、ブラウザとネゴシエートされるユーザーとパスワードのタイプです。この場合は、暗号化なしの基本です。

別の種類のネゴシエーションがあります。ダイジェスト。これはユーザー名とパスワードを暗号化する場合ですが、最後の言葉は、ブラウザーがそのサービスをサポートするかどうかについてです。 ダイジェストは、スニファーに対して少し堅牢な実装であると言えます。 これを詳しく調べてください。

AuthName「入る前にドアをノックしてください。」

これは、ログインフォームを使用してブラウザでユーザーに表示されるメッセージであり、必要なメッセージにすることができます。

AuthUserFile /var/www/.pass/.htpasswd

.htpasswdファイルをパスします。 そのため、.htpasswdという名前を付ける必要すらなく、パスを入力するだけでも同じように機能すると言います。

valid-userは必要

この行は、個別のパスワードを持つ複数のユーザー向けに設計されています。 シングルユーザーの場合、次のようにまとめることができます。

ユーザーel_que_seaを要求する

私の例では、次のようになります。 ユーザールークを要求する

そして最後にすべてを

Apacheを再起動します:

# service apache2 restart

やってみよう。

正しく認証しないと、エラー401が発生します。

反対に、正しいユーザー名とパスワードを入力すると、大きな不便を感じることなく合格できます。

追加のヒント。

  • 作成済みのhtpasswdファイルにユーザーを追加するには、このコマンドを使用できます

htpasswd -mb / home / krel / .htpasswdユーザーパスワード

「有効なユーザーを要求する」ではなく「ユーザーを要求する」を設定した場合は、新しいユーザーを追加し、その後に前のユーザーを追加し、スペースで区切る必要があります。 例:

ユーザーにLukeAnakinを要求する

  • ユーザーグループを使用する

個々のユーザーの代わりに、次のWebサイトでグループと協力することを好む、または必要とする場合、彼らはそれを非常に詳細に説明し、優れた記事です。
http://www.juanfelipe.net/node/23

  • 別のタイプの暗号化を設定することもできます。例:SHA

htpasswd -sb / home / krel / .htpasswdユーザーパスワード

これは、SHAパスワードの登録が.htpasswdにどのように反映されるかを示す画像です。 どちらも「スカイウォーカー」でした。

詳細についてはこちらをご覧ください。

htpasswd --- help

このトピックをさらに深く掘り下げたい場合は、RTFMが常に適しています。
http://httpd.apache.org/docs/2.0/es/howto/auth.html

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

また、グラナダ大学のページから、このPHPスクリプトがhtaccessおよびhtpasswdジェネレーターを作成することに興味を持っていることがわかりました。 私はそれを実践することができませんでしたが、私はあなたに「知性でこじ開ける」ことを勧めます。

誰かが興味を持った場合に備えて、このページから取得したHTMLテンプレート。
http://www.templatemo.com/

このhtpasswdプレゼンテーションが気に入っていただけたでしょうか。


コメントを残す

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

*

*

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

  1.   クレル

    もう一度投稿を読んで、私は小さな混乱をしたことに気づきました。 サイト構成の行を説明するとき、AuthUserFileに/var/www/.pass/.htpasswdを次のように配置します。
    /home/krel/.htpasswd。

    画像は大丈夫ですが、逃げてしまいました。以前にそのルートで記事を作ったのですが、土壇場で変更してしまい、修正し損ねたようです。

    あらかじめお詫び申し上げます。

  2.   フェルナンド

    オウムガイの代替品はありますか?

    1.    クレル

      あなたの質問は逆だと思いますが、とにかく答えます。
      Cryptkeeperを使用すると、ディレクトリなどを保護することが役立つと思います。

      正直なところ、gnomeが嫌いなのはnautilusです。 Dolphin(KDE)は、保護、gpgによる暗号化など、これらのことに対して正確にはるかに強力です...

  3.   DMOZ

    クレル、ここに持ってきた完全なチュートリアル、特にそれほど一般的なトピックではないことに感謝します...

    乾杯!!! ..。

  4.   フアン・カルロス

    こんにちはすべてがうまくいきましたが..クロームタブを閉じて別のタブを開くと、アドレスを書き込み、パスワードを要求しません...

  5.   バディ

    派手ではないと言った人。
    それは私が探していたものであり、不可能をよりよく説明しました
    どうもありがとうございました。
    挨拶

  6.   basco7

    こんにちは、情報、特に.htpasswdに複数のユーザーを追加する部分に感謝します。

    神のお恵みがありますように!

  7.   モタディ

    おめでとうございます、それは非常に良い記事であり、明確で消化しやすいものです。 どうもありがとうございます

  8.   エドゥアルド

    ユーザー名とパスワードを入力するとエラー500が表示されます

    AuthTypeディレクティブの基本
    AuthName "Tocc tocc"
    AuthUserFile /var/www/html/.pass/.htpasswd
    ユーザーAkiraが必要

  9.   エドゥアルド

    他のコメントペロドナを見ずにコメントすることは、私にとってどれほど素晴らしいことでしょう。
    素晴らしい素晴らしい投稿をします

  10.   ソムヌスシニア

    こんにちは、良いチュートリアルですが、「htpasswd」に代わるものはありますか? Linux mint 17.3を使用しているのに、コマンドがないのはなぜですか?インストールする必要がありますか?

  11.   ソムヌスシニア

    わかりました…sudoapt-get installapache2-utilsでインストールする必要がありました

  12.   フェルナンドモンティラ

    こんにちは、すばらしいチュートリアルです。ここに示されているとおりに実行しました。唯一のことは、ポイント2に示されていることを実行する代わりに実行することです。

    nano / etc / apache2 /サイト-利用可能/デフォルト

    それは私のために働いた

    nano /etc/apache2/sites-enabled/000-default.conf

  13.   ホルヘ・ロドリゴ・トレス・アラマヨ

    あいさつ、それは私のために機能しません🙁私のフォルダは私のサーバーに表示されません、つまり、私は私の/ var / 222 / html /コンテンツフォルダを保護しました、そしてブラウザから入るとコンテンツフォルダは表示されません。 助けて