CentOS 7にMFAを追加する

CentOS 7にGoogle Authenticatorをインストールし、多要素認証 Multi-Factor Authentication(MFA)で認証を強化します。EPELリポジトリがあればインストールできます。

sudo yum -y install google-authenticator


sudo backup /etc/pam.d
sudo sed -i \
   -e '/^auth       substack     password-auth$/aauth       required     pam_google_authenticator.so nullok echo_verification_code' \
   -e '/^auth       substack     password-auth$/s/^/#/' \


sudo backup /etc/ssh/sshd_config
sudo sed -i -e '/^ChallengeResponseAuthentication no$/s/no/yes/' /etc/ssh/sshd_config
echo -e "\nAuthenticationMethods publickey,keyboard-interactive" \
  | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd

ユーザ毎にGoogle Authenticatorを有効にします。アプリGoogle Authenticatorにトークンを設定するためのQRコードを表示するためのURLが表示されるので、コピーしてユーザに通知します。

sudo -u ${USER} google-authenticator
# Do you want authentication tokens to be time-based (y/n) y
# Do you want me to update your "/home/${USER}/.google_authenticator" file? (y/n) y
# Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
# Do you want to do so? (y/n) y
# Do you want to enable rate-limiting? (y/n) y