現: 2018-01-23 (火) 06:56:30 maruo[3] [4] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | *認証強化のおまけ [#afd98a4a] | ||
+ | ここ最近(2018年)セキュリティ関連のニュースが多いので、NextCloudに二段階認証を導入したついでに、ApacheのBASIC認証にも、OTP認証を導入してみようと思った次第です。 | ||
+ | では、行ってみましょう | ||
+ | |||
+ | *認証モジュール導入 [#e4c33f49] | ||
+ | **パッケージ取得 [#u6a9ad1c] | ||
+ | 2018年現在、OTPのモジュールは、Gentoo portageに取り込まれておりません。なので。[[GitHub>https://github.com/archiecobbs/mod-authn-otp]]からダウンロードしてきます。Gitで同期もよし、ZIPをダウンロードしてくるもよし。 | ||
+ | |||
+ | **展開&コンパイル [#h2be4733] | ||
+ | # unzip mod-authn-otp-master.zip | ||
+ | |||
+ | で解凍 | ||
+ | |||
+ | # ./autogen.sh | ||
+ | # make | ||
+ | # make install | ||
+ | |||
+ | で問題なくインストールが済みます | ||
+ | |||
+ | **Apacheに設定 [#e08fa619] | ||
+ | ***httpd.conf [#paa4a02f] | ||
+ | httpd.confに以下の行を追記します。 | ||
+ | LoadModule authn_otp_module modules/mod_authn_otp.so | ||
+ | |||
+ | ***vhostの設定ファイル [#d4f692ba] | ||
+ | <Directory "<認証したいHTTPファイルのあるディレクトリ"> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride All | ||
+ | AuthType Basic | ||
+ | AuthName "OTP Authentication (Enter OTP as password)" | ||
+ | AuthBasicProvider OTP | ||
+ | Require valid-user | ||
+ | OTPAuthUsersFile <パスワードファイルのあるパス> | ||
+ | OTPAuthMaxLinger 1800 | ||
+ | OTPAuthLogoutOnIPChange On | ||
+ | </Directory> | ||
+ | |||
+ | - OTP認証したいディレクトリのパスをDirectoryディレクティブに記載します。 | ||
+ | - OTPAuthUsersFileディレクティブに、ユーザ/パスワードを記載したファイルへのパスを記載します | ||
+ | - OTPAuthMaxLingerに、パスワード認証したセッションの有効期限を書きます。この時間がすぎると、再度パスワードを問われますので、適当な値を。 | ||
+ | |||
+ | ***パスワードの設定 [#d90a319e] | ||
+ | これはなかなか難儀なのですが、[[こちらのWebサイトのシェル>https://qiita.com/kz-takahashi/items/af8ea7d9894f26a65068]]を流用させて頂きました。 | ||
+ | |||
+ | 注意点は以下 | ||
+ | - 3行目 issuerは適当に自分のサイト名称に書き換えます | ||
+ | - python -cの部分を、python2 -cに書き換えます。Gentooではpython3がデフォルトなのでエラーが出ます。明示的にpython2を指定します。 | ||
+ | - file=は、パスワードを置いてあるファイルへのパスです。変えたい場合は適当に書き換えましょう | ||
+ | |||
+ | で、これをapache_otp_user_add.shとかと適当な名前にして実行してみます。 | ||
+ | |||
+ | # apache_otp_user_add.sh <ユーザ名> | ||
+ | |||
+ | と指定すると、<ユーザ名> と秘密鍵のセットのデータを登録してくれると同時に、QRコードを表示してくれるURLを表示してくれます。 | ||
+ | |||
+ | URLをコピって、ブラウザで表示し、Google認証アプリや、IIJ SmartKeyアプリで読み込ませると、ワンタイムパスワードが生成されます。 | ||
+ | |||
+ | ***Apacheを再起動 [#t492a0f6] | ||
+ | 設定を有効にするために、Apacheを再起動します。 | ||
+ | # /etc/init.d/apache2 restart | ||
+ | |||
+ | *動作 [#ra1ce707] | ||
+ | 認証させたいページにアクセスすると、おなじみApacheのBASIC認証画面が出てきます。 | ||
+ | |||
+ | :Username|先程apache_otp_user_add.shに指定した<ユーザ名> | ||
+ | :Password|アプリで表示したワンタイムパスワード | ||
+ | |||
+ | を入力すると、めでたくワンタイムパスワード認証が出来ます。いやぁ、めでたし、めでたし。 |
(This host) = https://femt.ddo.jp