Table of contents
認証強化のおまけ
ここ最近(2018年)セキュリティ関連のニュースが多いので、NextCloudに二段階認証を導入したついでに、ApacheのBASIC認証にも、OTP認証を導入してみようと思った次第です。
では、行ってみましょう
パッケージ取得
2018年現在、OTPのモジュールは、Gentoo portageに取り込まれておりません。なので。GitHubからダウンロードしてきます。Gitで同期もよし、ZIPをダウンロードしてくるもよし。
vhostの設定ファイル
<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に、パスワード認証したセッションの有効期限を書きます。この時間がすぎると、再度パスワードを問われますので、適当な値を。
パスワードの設定
これはなかなか難儀なのですが、こちらのWebサイトのシェルを流用させて頂きました。
注意点は以下
- 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アプリで読み込ませると、ワンタイムパスワードが生成されます。
Page Info | |
---|---|
Page Name : | Gentoo Linuxな生活/Apacheのワンタイムパスワードで悩む |
Page aliases : | None |
Page owner : | maruo |
Can Read | |
Groups : | All visitors |
Users : | All visitors |
Can Edit | |
Groups : | No one |
Users : | No one |
Counter: 3200,
today: 1,
yesterday: 0
Princeps date: 2018-01-23 (Tue) 06:56:30
Last-modified: 2018-01-23 (Tue) 06:56:30 (JST) (2451d) by maruo