ApacheでBasic認証をOSユーザで行う方法

どーも。あいしんくいっと(@ithinkitnet)です。

Apacheで簡易なセキュアページを設けたい場合、選択肢のひとつとして挙げられるのがBasic認証です。
手軽にパスワード設定して特定の人に公開したいに便利なのです。

というわけで今回はApacheにおけるベーシック認証に加え、認証に使用するユーザをOSユーザにする手順について書いておきたいと思います。

●検証環境
CentOS7.4
Apache2.4(RPMパッケージ)

ApacheでBasic認証設定

  • Basic認証用許可ユーザの作成
  • Basic認証で使用するユーザを作成。(OSユーザとは別管理)

    # htpasswd -c -b /etc/httpd/conf/.htpasswd hoge P@ssw0rd

    新規作成する場合は「-c」オプションを付与、追加なら不要

    「-c」をつけると既存ユーザが上書きされてしまうので注意!追加の場合は「-c」をつけないこと!

    実行例)hogeユーザ作成

    # htpasswd -c -b /etc/httpd/conf/.htpasswd hoge P@ssw0rd
    Adding password for user hoge
    # cat /etc/httpd/conf/.htpasswd
    hoge:$apr1$3n8o912D$0UW.IDaPaEskaZpu4hp3//
  • Basic認証設定
  • httpd.confに下記設定。
    (ディレクトリパスは任意)
    AuthUserFileには前工程で作成したパスワードファイルを指定。


    AllowOverride none
    AuthUserFile /etc/httpd/conf/.htpasswd
    AuthGroupFile /dev/null
    AuthName “Basic Auth”
    AuthType Basic
    Require valid-user

  • Apache再起動
  • # systemctl restart httpd
  • 動作確認
  • Basic認証を設定したディレクトリにアクセスし、Basic認証がかかることを確認。
    さらに設定したユーザでアクセス可能であることを確認。

    Chromeでアクセスした場合)
    Chromeでアクセスした場合、「AuthName」で設定した内容は表示されない?
    IE11でアクセスした場合)

    Basic認証で使用するユーザをOSユーザに変更

  • OS認証に変更するためpwauthモジュール追加
  • # yum --enablerepo=epel -y install mod_authnz_external pwauth
  • Basic認証をPAM(OS認証)で行う設定
  • /etc/httpd/conf.d/authnz_external.confに下記追記。


    AuthName “PAM Auth Basic”
    AuthType Basic
    AuthBasicProvider external
    AuthExternal pwauth
    require valid-user

  • Apache再起動
  • # systemctl restart httpd
  • 動作確認
  • OSユーザでBasic認証が許可されることを確認。

    rootユーザは許可されない

    参考 Basic認証 + PAM

    Apacheで簡易的にセキュリティを担保したいのであれば、Basic認証はとても便利です。
    さらに認証をOSユーザで行えればもっと。

    ithinkit
    ぜひ、覚えておきましょう。

    以上、あいしんくいっとでした(☝︎ ՞ਊ ՞)☝︎

    こちらの記事もおすすめ!

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    *

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

    ABOUTこの記事をかいた人

    あいしんくいっとの中の人。

    少しでも人の役に立つ記事書くことをモットーにブログ運営しています。
    しょうもない記事も多いけど、たまには役立つことが書けると良いかなー。
    気軽に楽しんでいってください。
    聞きたいことがあれば、気軽にツイートください♪可能な範囲でお答えします。
    follow us in feedly