コマンド
基本
htpasswd -c -b ファイルパス ユーザ名 パスワード
オプション -c : 新しいパスワードファイルを作成する。既存ファイルがあった場合は上書きされる。
オプション -b : パスワードを対話式ではなくコマンドライン引数として入力できるようにする。
*すでにhtpasswdファイルがある場合かつそれに追記したい場合はオプション -c を外してください。
セキュリティ強めにするなら。
- デフォだと、ハッシュがMD5になっとる。
- パスワードがShellのヒストリーに残ってまう。
- パスワード入力してるとき、後ろに人がいたら見えてまう。
ということで、セキュリティを意識するならば以下のコマンドでいかが?
htpasswd -B -C 5 -c ファイルパス ユーザー名
↓
- パスワード聞かれるので入力する
- 2回聞かれる
- 2回めは確認
- パスワード入力しても画面(ターミナル)上には表示されない
- そのためショルダーハッキングに、っぉぃ
- 2回聞かれる
オプション:
- -B
- > bcryptでパスワードを作る。MD5で作ったときよりセキュリティ強度が高い。
- -C
- > 上述のストレッチング回数を4〜31の範囲で変更する。数を増やすと処理時間が増える。(=それを解くために必要な処理時間も必要になるのでセキュリティ強度が高くなる)
[R]アザマスッッ…!!イイネシトイタヨ!
更にセキュリティ強めにするなら、HTTPS(SSL化)と組み合わせるか、Basic認証でなくDigest認証使うことやな!
http(暗号回していない)+Basic認証の組み合わせやったら、ユーザーが入力した際に、.htpasswdファイルの解析(デコード)(つまり盗聴による解析)されてまう可能性があるので注意。
[PR]
SSL化はLet’s Encryptっちゅう無料のやつが広く普及してるから、導入できる場合はそれを導入。
できない場合は安いやつ(年間1,000円以下のさくらのSSLとか)にしちゃう。
EV証明書とかいう超高級品をお求めならこの記事でも参考にしてちょ。
EVあんま意味無いけどねー。
htpasswdコマンドが無い場合
以下のコマンドでインストールする。
yum install httpd-tools
apacheをインストールしていれば同時に入っているが、dockerのホストマシンで実行する等の場合、htpasswdコマンドは入っていない。
参考にしたサイト
hatena(サーバにhtpasswdだけインストールしたい
以上
コメント