LINEで送る
Pocket

踏み台サーバを海外では

Bastion server(ばすちょん)

と呼びます。🙄 今回はGoogle Authenticator(2段階認証)ssh鍵認証による踏み台サーバを構築してみました。設定もシンプルなのでいい感じ。👍


■Google Authenticator

https://github.com/google/google-authenticator

2段階認証はメールアドレスとパスワードに加えて、スマートフォン/Webアプリに送信される認証コードを入力してログインするものです。認証コードは数10秒しか使えないため、パスワードのように推測されることはなく、セキュア!クライアントとしてはデフォルトのGoogle AuthenticatorアプリAuthyが有名ですな。🤟


■要件

  • SSH鍵認証でログイン
  • SSH鍵を指定しない場合はログインパスワードとGoogle Authenticatorのパスを求められる(完全2段階認証)

2段階認証で踏み台サーバにログインするのは流石に利便性が悪いので、SSH鍵認証もできるようにしました。これで開発メンバーがログインしやすく、外からSSHアタックされても、二段階認証による完全セキュアを実現したというわけです。👀


■Install Google Authenticator/Setting sshd

OSはAmazon Linux2を利用しています。

qrencode-libsはQRコードで二要素目の認証をするために必要なのでインストールします。

・/etc/pam.d/google-auth

・ /etc/pam.d/sshd

・/etc/ssh/sshd_config

・restart sshd


■setting google-authenticator.sh

・/etc/profile.d/google-authenticator.sh

運用上、毎回アプリでQRコードを読ませるのはめんどくさいので、SSHログイン時に個人でQRコードを読み取るように出力させてみました😆 あとは各ユーザーに公開鍵を指定してログインしてみましょう。間違えて消しちゃった!などは$HOME/.google_authenticatorを消せばOKです。


■SSH login

・use ssh key

 

ちゃんとGoogle AuthenticatorのQRコードが出てきて、SSH鍵認証でログインできますな👍

・not use ssh key

上記のようにSSH鍵を指定しない場合はログインパスワードが通り、Google Authenticatorの二段階認証パスワードが求められます👀


■まとめ

導入が簡単!!むしろ入れるべき!
次回はansibleでのユーザー管理方法をブログします😋

LINEで送る
Pocket

カテゴリー: AWSBastionSSH

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、他社インフラレスポンス改善、ランサーズでの副業、ansibleでのインフラコード化を推進し、未経験によるエンジニアのMENTAなども実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなし中。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください