こんにちは!Narimasaです!
今回は、仮想デスクトップサービスであるAmazon WorkSpacesに多要素認証を設けるため、EC2にFreeRADIUSとGoogle Authenticator をインストールします。
※今回の記事は下記を参考にハンズオン形式で作成しています。
http://aws.typepad.com/sajp/2014/10/google-authenticator.html
RADIUSとは
Remote Authentication Dial In User Serviceの頭文字から名付けられたプロトコルで、クライアントの認証・承認を行うために用いられます。
今回はPAM(Pluggable Authentication Module)でユーザー認証を行い、これにGoogle Authenticator(2段階認証アプリ)を合わせることで、WorkSpacesにログインする際に2段階認証を設ける形式になります。
前準備
多要素認証を用いるにあたって、今回は下記の環境を利用します。
・WorkSpaces Connectを介してActive Directoryと連携しているWorkSpaces環境。
・WorkSpacesと同じVPC内にあるEC2インスタンス(Amazon Linux)。
・EC2インスタンスに対してWorkSpaces Connectのコントローラからの接続を許可(UDP 1812ポート)
インストール
EC2インスタンスにSSHで接続し、必要なパッケージをインストールします。
1 2 |
# sudo yum update # sudo yum install freeradius freeradius-utils git gcc pam-devel qrencode qrencode-libs qrencode-devel |
次にGoogle Authenticatiorをソースからインストールします。
1 |
# git clone https://code.google.com/p/google-authenticator/ |
インストールしたらコンパイルします。
1 2 3 |
# cd google-authenticator/libpam/ # make # sudo make install |
設定
RADIUS認証用のグループを作成します。
1 |
# sudo groupadd radius-enabled |
FreeRADIUSをrootユーザーで動作させる為の設定を行います。
1 2 3 4 5 6 |
# sudo vim /etc/raddb/radiusd.conf #user = radiusd #group = radiusd user = root group = root |
RADIUSがPAMを使うように設定します。
1 2 3 4 5 6 7 8 |
# sudo vim /etc/raddb/users #DEFAULT Group == "disabled", Auth-Type := Reject # Reply-Message = "Your account has been disabled." # DEFAULT Group != "radius-enabled", Auth-Type := Reject Reply-Message = "Your account has been disabled." DEFAULT Auth-Type := PAM |
1 2 3 4 |
# sudo vim /etc/raddb/sites-available/default # Pluggable Authentication Modules. pam |
続いて、FreeRADIUSがGoogle AuthenticatorのPAMモジュールを使うように設定します。
1 2 3 4 5 6 7 8 9 10 |
# sudo vim /etc/pam.d/radiusd #auth include password-auth #account required pam_nologin.so #account include password-auth #password include password-auth #session include password-auth auth requisite pam_google_authenticator.so account required pam_permit.so session required pam_permit.so |
FreeRADIUSがRADIUSプロトコルで受け付けるサブネットとパスワードを設定します。
1 2 3 4 5 6 7 8 9 |
# sudo vim /etc/raddb/clients.conf # secret = testing123 # } #} client VPC Network Address { secret = password shortname = from-vpc } |
ここまででFreeRADIUSの設定は完了です。
FreeRADIUSを起動させます。
1 2 |
# sudo chkconfig –level 345 radiusd on # sudo /etc/init.d/radiusd start |
起動できれば設定成功です。
次回は、Google Authenticatorを利用して実際に多要素認証ログインを行います。
お楽しみに!!