ansibleでRHEL8のセットアップ~google-authenticator ユーザ作成編~
どうも2人目です。
ちょくちょくやっている、Red Hat Enterprise Linux 8のセットアップをansibleでやっていくコーナーです。
今回は google-authenticator ユーザ作成編 です。
Linuxサーバのログインについて、セキュリティを担保する上で、最近主流になりつつあるMFA認証をgoogle-authenticatorを使って実現しようと思います。
前回の記事は準備編として、Linuxサーバでインストールまで行っていますので参考にしていただければと思います。
↓ansibleを使ってダウンロードしました。
またこちらのサイトを参考にしました。
https://soji256.hatenablog.jp/entry/2020/05/17/150250
今回はユーザ作成編です。早速やっていきましょう。
①ユーザ作成
ユーザ作成は今まで通りuseraddコマンドで作成頂ければOKです。
ちなみにansibleで書くとこんな感じ
- name: Create user
user:
name: testuser
# パスワードの”Testhogehoge”をハッシュ化してます。
password: "{{ 'Testhogehoge'|password_hash('sha512') }}"
uid: 5000
shell: /bin/bash
②MFA設定(改善前)
作成したユーザにMFAを設定しましょう。
コマンドで設定可能でしたので、最初は参考サイトの情報通りに以下のようなコマンドで設定してみました。
また、今回CIサーバからMFA設定を自動化したかったのでテキストファイルに出力したかったのですが、以下のコマンドだとどうもうまく動きませんでした。
※失敗例
google-authenticator -t -d -W -R 30 -r 3 -e 10 -f --secret=/home/${USER}/.ssh/.google_authenticator > output.txt
③MFA設定(改善後)
イマイチ原因が分からず、いろんなサイトを見て手当たり次第試してみたら、以下のコマンドだとうまくテキストファイルに出力することが出来ました。
※結論:-C オプションを足すことでうまく動きました。
google-authenticator -t -d -W -R 30 -r 3 -e 10 -f -C --secret=/home/${USER}/.ssh/.google_authenticator > output.txt
yumで最新版をインストールしていたので、バージョンが変わってコマンドの仕様が変わったのかなと思ってます…
詳しい人がいたら教えてください…
MFA設定後はsshdのリロードもしておきましょう。
systemctl reload sshd
④ログイン
以下のようなQRコードが発行されるので、スマホで読み込んでMFAコードが入手出来ればOKです。
これで次回以降、ログイン時にMFAコードを聞かれるようになります。
![](https://assets.st-note.com/img/1653834166447-2j426n8Lfq.png)
皆様の参考になれたら幸いです。
では、皆様良いエンジニアライフを