VMWare ESXi6.7で2段階認証ができるセキュリティキー「Yubikey」を使ってUbuntuの特権ユーザーにハードウェア認証をしてみたいとGoogle先生に訊いたところ、ほぼ思い通りの設定ができたのでめも。
今回はTX1310 M3をベアメタルとしてインストールしたVMWare ESXi 6.7のホストからUSBデバイスのパススルー設定をしたのち、VMで「Yubikey」を認識できるようにしてUbuntuの pamモジュール「uf2」にて認証機能を実装して行こうと思います。
参考にしたのは以下のサイトです。
ESXi 6.5 Yubikey Passthrough (success!) – reddit
Ubuntu日和【第22回】強固なパスワードと二要素認証でUbuntuのセキュリティをさらに高めよう
以前にも「Yubikey」を使ってGoogleアカウントの2段階認証にセキュリティキーを追加したり、Wordpressのログイン画面の追加認証として重宝していました。(当拙過去ブログをご参考まで。)
まずTX1310 M3の筐体に差した「Yubikey」を認識するようにESXiホストにSSH接続して各種設定をするのでVMをシャットダウンしてから行っていきます。
[root@esx:~] lsusb | grep Yubi
Bus 004 Device 002: ID 1050:0404 Yubico.com Yubikey 4 CCID
(IDは個別環境で違いますので適宜、読み替えてください。)
[root@esx:~] vi /etc/vmware/config
usb.quirks.device0 = "0x1050:0x0404 allow"
(IDは個別環境で違いますので適宜、読み替えてください。)
[root@esx:~] vi /bootbank/boot.cfg
kernelopt=no-auto-partition CONFIG./USB/quirks=0x1050:0x0404::0xffff:UQ_KBD_IGNORE
(IDは個別環境で違いますので適宜、読み替えてください。)
次にVMの[編集]から[仮想マシンオプション]-[構成パラメータ]-[設定の編集]と辿ってパラメータを追加していきます。
キー | 値 |
usb.generic.allowHID | TRUE |
usb.generic.allowLastHID | TRUE |
usb.generic.allowCCID | TRUE |
usb.quirks.device0 | 0x1050:0x0404 allow |
(デバイスIDは実際とは異なることがあるので注意してください。)
ホストを再起動
ここまで設定が終わったら一旦、ホストを再起動します。
VMの構成に [USBデバイス]からポートに差したYubikeyが「Yubico.com Yubikey OTP+FIDO+CCID」として認識できました。
.
続いて、Ubuntu VMを起動してYubikeyのPAMモジュール「 u2f 」をインストール
$ sudo apt install libpam-u2f
ユーザーディレクトリでプロファイルを作成していきます。ここではpamu2fcfg をsudoで実行します
$ mkdir -p ~/.config/Yubico
$ sudo pamu2fcfg > ~/.config/Yubico/u2f_keys
プロファイルのユーザー名を「root」から「(ユーザー名)」に編集
$ vi .config/Yubico/u2f_keys
root:j1myua84jJcxVYDqWWVDV・・・・・
↓
(ユーザー名):j1myua84jJcxVYDqWWVDV・・・
最後に、/etc/pam.d/sudo /etc/pam.d/sudo-i に認証ポリシーを追加します
$ sudo vi /etc/pam.d/sudo session required pam_env.so readenv=1 user_readenv=0 session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0 auth sufficient pam_u2f.so cue @include common-auth #auth sufficient pam_u2f.so authfile=/home/gusachan/.config/Yubico/u2f_keys @include common-account @include common-session-noninteractive
すると、 sudo コマンドでYubikey認証が求められるようになりました
.
新しいデバイスが使えるようになると出来ることが広がって楽しみが増えますね。ぜひ、お使いのデバイスのセキュリティを高めていきましょう。それでは。