時間があるので、マイナンバーカードのPAM認証をArch Linuxでやってみました。
今回の環境は、ThinkPad X201で構築しています。
まずは参考文献から。
www.osstech.co.jp
www.osstech.co.jp
www.r-cnct.com
今回使用するのは「SCR80」という接触式カードリーダーです。今だと、Amazonで色々買えますが、数年前に安くてOSの依存がほぼない(独自ドライバインストール不要)なのはこれだったんですよね。
microSDカードなども読み書きできるので便利です。付属の小さなCDは捨てましょうw。
さて、環境を作っていきます。今回はyayを使っています。
yay -i opensc
openscは、community/openscを選んでいます。
yay -i p11
p11は、community/libp11だったかな?
yay -i pam_p11
pam_p11は、aur/pam_p11ですね。Arch Linuxだと、pam-p11ではないので注意。
yay -i pcsc-tools yay -i ccid
ccidは、community/ccidを選んでいます。
ここまできたら、pcscdサービスを有効にして起動します。
sudo systemctl enable pcscd sudo systemctl start pcscd
pkcs15-toolが使えるようになるはずです。
pkcs15-tool --list-info
読み取れれば次に進みます。
今回は、sshは無視するのでeidの方で。
cd mkdir .eid chmod 0700 .eid
パーミッションについては、.sshのやり方に合わせてみました。
pkcs15-tool --read-certificate 1 >> ~/.eid/authorized_certificates chmod 0600 ~/.eid/authorized_certificates
あとは、pam関連の変更です。
sudo vi /etc/pam.d/system-auth
/etc/system-auth
#以下を追加 auth [success=2 default=ignore] pam_p11.so opensc-pkcs11.so #「2」を「1」に変更 auth [success=1 default=ignore] pam_unix.so try_first_pass nullok #systemd-homedは削除
悩んだのは「pam_p11.so」ですね。どうやら、これに集約されているらしい。
my.eng.utah.edu
間違えていなければ、rebootするとマイナンバーカードのPINでログインできるはずです。