ການນຳໃຊ້ YubiKeys ກັບ Fedora
YubiKey ແມ່ນຫຍັງ?
YubiKey ແມ່ນອຸປະກອນຂະໜາດນ້ອຍທີ່ເຊື່ອມຕໍ່ຜ່ານ USB ແລະ NFC, ເຊິ່ງເອີ້ນວ່າ ໂຕເຄັນຄວາມປອດໄພຮາດແວ (hardware security token), ທີ່ມີໂມດູນສຳລັບການນຳໃຊ້ດ້ານຄວາມປອດໄພຫຼາຍຮູບແບບ. ມັນສາມາດສ້າງລະຫັດຜ່ານໃຊ້ຄັ້ງດຽວ (OTPs), ເກັບຮັກສາກຸນແຈສ່ວນຕົວ (private keys) ແລະ ນຳໃຊ້ໂປຣໂຕຄໍການຢືນຢັນຕົວຕົນທີ່ຫຼາກຫຼາຍ. ມັນຖືກຜະລິດ ແລະ ຈຳໜ່າຍໂດຍບໍລິສັດທີ່ມີຊື່ວ່າ Yubico.
ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບຄຸນສົມບັດຂອງ YubiKey, ສາມາດເບິ່ງໄດ້ທີ່ ໜ້າຜະລິດຕະພັນ ຂອງພວກເຂົາ.
ຂ້ອຍຈະຫາຊື້ YubiKey ໄດ້ແນວໃດ?
ທ່ານສາມາດຊື້ YubiKey ໄດ້ຈາກ ເວັບໄຊທ໌ຂອງ Yubico.
ຄວນມີ YubiKey ສຳຮອງ
ທັນທີທີ່ທ່ານເລີ່ມນຳໃຊ້ໂຕເຄັນຄວາມປອດໄພ, ທ່ານຕ້ອງຄຳນຶງເຖິງຄວາມສ່ຽງທີ່ຈະບໍ່ສາມາດເຂົ້າເຖິງບັນຊີທີ່ຜູກໄວ້ກັບໂຕເຄັນເຫຼົ່ານີ້ໄດ້. ເນື່ອງຈາກໂຕເຄັນຄວາມປອດໄພແບບຮາດແວມີລັກສະນະສະເພາະຕົວ ແລະ ຖືກອອກແບບມາໃຫ້ຄັດລອກໄດ້ຍາກທີ່ສຸດ, ທ່ານຈຶ່ງບໍ່ສາມາດເຮັດສຳເນົາສຳຮອງຄືກັບຊອບແວເກັບລະຫັດຢ່າງ KeePass ຫຼື AndOTP ໄດ້. ດ້ວຍເຫດນີ້, ທຸກໆການລົງທະບຽນທີ່ທ່ານເຮັດດ້ວຍກຸນແຈຫຼັກ, ທ່ານຄວນເຮັດດ້ວຍກຸນແຈສຳຮອງອັນທີສອງທັນທີ ແລະ ເກັບຮັກສາມັນໄວ້ໃນບ່ອນທີ່ປອດໄພ ເຊັ່ນ: ຕູ້ເຊັຟ ຫຼື ຢ່າງໜ້ອຍກໍປະໄວ້ຢູ່ເຮືອນຕະຫຼອດ.
ໃນທາງປະຕິບັດ, ນີ້ໝາຍເຖິງການລົງທະບຽນທັງສອງໂຕເຄັນກັບ Linux ແລະ ບັນຊີເວັບຂອງທ່ານ, ສ້າງກຸນແຈສ່ວນຕົວສອງຄັ້ງ, ແລະ ຕັ້ງຄ່າທັງສອງກຸນແຈສາທາລະນະ (public keys) ໃນເວັບໄຊທ໌ຕ່າງໆ ເຊັ່ນ github.
ຂໍ້ຈຳກັດໃນການຈັດເກັບ
ສຳລັບບາງຄຸນສົມບັດ, ກຸນແຈສ່ວນຕົວ ແລະ ຄວາມລັບອື່ນໆຈະຖືກເກັບໄວ້ໃນ YubiKey. ແຕ່ລະຄຸນສົມບັດມີພື້ນທີ່ຈັດເກັບຂອງຕົນເອງ, ດັ່ງນັ້ນຈຶ່ງມີ ຈຳນວນຊ່ອງບັນທຶກສູງສຸດ:
-
OTP - ບໍ່ຈຳກັດ, ເພາະໃຊ້ພຽງຄວາມລັບດຽວຕໍ່ໜຶ່ງກຸນແຈ
-
FIDO U2F - ບໍ່ຈຳກັດ, ເພາະໃຊ້ພຽງຄວາມລັບດຽວຕໍ່ໜຶ່ງກຸນແຈ
-
FIDO2 - 25 ຂໍ້ມູນການຢືນຢັນຕົວຕົນ
-
OATH - 32 ຂໍ້ມູນການຢືນຢັນຕົວຕົນ
-
PIV - 24 ໃບຢັ້ງຢືນ x509 ແລະ ກຸນແຈສ່ວນຕົວທີ່ກ່ຽວຂ້ອງ
-
OpenPGP - 3 ກຸນແຈ; ສຳລັບການເຂົ້າລະຫັດ, ການເຊັນຊື່ ແລະ ການຢືນຢັນຕົວຕົນ ຢ່າງລະອັນ
ການນຳໃຊ້ YubiKey ເພື່ອຢືນຢັນຕົວຕົນໃນເຄື່ອງທີ່ໃຊ້ Fedora
ການຢືນຢັນຕົວຕົນໃນລະບົບທ້ອງຖິ່ນແມ່ນໃຊ້ Pluggable Authentication Modules (PAM). ທ່ານມີສອງທາງເລືອກຄື: pam_yubico ແລະ pam_u2f. ອັນທຳອິດແມ່ນຈຳເປັນສຳລັບ YubiKeys ທີ່ບໍ່ຮອງຮັບ FIDO2/U2F. ສ່ວນວ່າກຸນແຈຂອງທ່ານຈະຮອງຮັບມາດຕະຖານ FIDO2 ຫຼື ບໍ່ນັ້ນ ແມ່ນຂຶ້ນກັບເຟີມແວ (firmware) ແລະ ລຸ້ນຂອງຮາດແວ.
ຂັ້ນຕອນການຕັ້ງຄ່າແມ່ນ: ຕິດຕັ້ງໂມດູນ PAM, ລົງທະບຽນ YubiKey ກັບບັນຊີຜູ້ໃຊ້ຂອງທ່ານ, ສ້າງການຕັ້ງຄ່າພື້ນຖານສຳລັບທາງເລືອກໃດໜຶ່ງໃນສອງອັນ, ແລະ ຈາກນັ້ນເລືອກການຕັ້ງຄ່າ PAM ທີ່ທ່ານຕ້ອງການໃຊ້ YubiKey ນຳ.
ສິ່ງທີ່ຈຳເປັນຕ້ອງໃຊ້ (Dependencies)
ແພັກເກດທີ່ຈຳເປັນສຳລັບທັງສອງໂມດູນ PAM ແມ່ນມີໃຫ້ຢູ່ໃນຄັງເກັບ (repositories) ທາງການ.
| === ໝາຍເຫດ: ຂໍ້ແຕກຕ່າງລະຫວ່າງທັງສອງໂມດູນ PAM ຄື: ຫາກໃຊ້ pam_yubico ທ່ານບໍ່ຈຳເປັນຕ້ອງສຳຜັດ YubiKey, ພຽງແຕ່ສຽບກຸນແຈໄວ້ໃນເຄື່ອງກໍພໍ. ແຕ່ຫາກໃຊ້ pam_u2f, ທ່ານຕ້ອງໄດ້ສຳຜັດກຸນແຈທຸກຄັ້ງທີ່ມີການຢືນຢັນຕົວຕົນ. === |
ໄຟລ໌ການຕັ້ງຄ່າພື້ນຖານ
ສຳລັບ pam_yubico
ມີສອງວິທີໃນການຕັ້ງຄ່າໂມດູນ YubiKey PAM ເພື່ອຢືນຢັນຕົວຕົນຜູ້ໃຊ້. ໂດຍຜ່ານ YubiCloud ຫຼື ໃຊ້ແບບ challenge-response. YubiCloud ແມ່ນວິທີມາດຕະຖານ ແຕ່ຕ້ອງອາໄສຄລາວຂອງ Yubico ເພື່ອກວດສອບ OTP ຂອງທ່ານ ດັ່ງນັ້ນຈຶ່ງຕ້ອງມີການເຊື່ອມຕໍ່ອິນເຕີເນັດຕະຫຼອດເວລາ.
ສ້າງໄຟລ໌ການຕັ້ງຄ່າພື້ນຖານສອງໄຟລ໌ໃນ /etc/pam.d/yubikey-required ແລະ yubikey-sufficient.
ສຳລັບ YubiCloud, ໃຫ້ໃຊ້ດັ່ງນີ້:
#%PAM-1.0
auth required pam_yubico.so id=[Your API Client ID] key=[Your API Client Key]
#%PAM-1.0
auth sufficient pam_yubico.so id=[Your API Client ID] key=[Your API Client Key]
|
ໝາຍເຫດ: ກຸນແຈ (key) ນັ້ນແມ່ນທາງເລືອກ, ແຕ່ຫາກບໍ່ມີມັນ ຈະບໍ່ມີການກວດສອບ TLS ເຊິ່ງເຮັດໃຫ້ສ່ຽງຕໍ່ການໂຈມຕີແບບ MitM ໄດ້. ສາມາດຂໍກຸນແຈໄດ້ທີ່ Yubico. |
|
ໝາຍເຫດ: ວິທີການຢືນຢັນຕົວຕົນແບບອອນລາຍຈະບໍ່ສາມາດໃຊ້ງານໄດ້ ຫາກອຸປະກອນອອຟລາຍ ແລະ ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາ YubiCloud ໄດ້. |
|
ຫາກທ່ານໃຊ້ SELinux ໃນໂໝດບັງຄັບໃຊ້ (enforcing mode - ເຊິ່ງເປັນໂໝດເລີ່ມຕົ້ນ), ທ່ານຄວນເປີດ allow_ypbind ກ່ອນ, ເພາະວ່າ pam_yubico ຈຳເປັນຕ້ອງສາມາດເຊື່ອມຕໍ່ຫາເຊີບເວີຢືນຢັນຕົວຕົນອອນລາຍຂອງ Yubico ໄດ້.
|
ສຳລັບ challenge-response, ໃຫ້ໃຊ້ດັ່ງນີ້:
#%PAM-1.0
auth required pam_yubico.so mode=challenge-response
#%PAM-1.0
auth sufficient pam_yubico.so mode=challenge-response
|
ທ່ານສາມາດເພີ່ມຕົວເລືອກ debug ໄວ້ທ້າຍແຖວເຫຼົ່ານີ້ (ຖັດຈາກ mode) ເພື່ອເບິ່ງຂໍ້ມູນການແກ້ໄຂບັນຫາໃນ journald. |
ຫາກທ່ານຕ້ອງການໃຊ້ທັງສອງວິທີສຳລັບກໍລະນີທີ່ແຕກຕ່າງກັນ, ພຽງແຕ່ສ້າງໄຟລ໌ການຕັ້ງຄ່າທີ່ກ່ຽວຂ້ອງ ແລະ ນຳໃຊ້ມັນເປັນແບບ include ຕາມທີ່ອະທິບາຍໃນສ່ວນຖັດໄປ.
ສຳລັບ pam_u2f
ເປີດໃຊ້ pam_u2f ໂດຍໃຊ້ authselect (ແນະນຳ)
Authselect ແມ່ນວິທີທີ່ແນະນຳໃນການລວມ pam_u2f ເຂົ້າໃນການຕັ້ງຄ່າ PAM ຂອງ Fedora. ນີ້ຈະຊ່ວຍໃຫ້ການຢືນຢັນຕົວຕົນແບບ U2F ໃນ PAM stack ມີຄວາມສອດຄ່ອງກັນໃນທຸກການບໍລິການ ແລະ ການອັບເດດລະບົບ.
ກ່ອນທີ່ຈະເປີດໃຊ້ຄຸນສົມບັດນີ້, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ລົງທະບຽນກຸນແຈຄວາມປອດໄພຂອງທ່ານແລ້ວ (ເບິ່ງໃນສ່ວນ Register YubiKey(s) with your local account(s)) ເພື່ອໃຫ້ pam_u2f ສາມາດຫາໄຟລ໌ u2f_keys ຂອງທ່ານເຫັນ.
|
ໃຫ້ເປີດ root shell ຫຼື ເປີດເຊສຊັນການເຂົ້າລະບົບສຳຮອງໄວ້ ໃນຂະນະທີ່ປ່ຽນແປງການຕັ້ງຄ່າການຢືນຢັນຕົວຕົນ ແລະ ທົດສອບການປ່ຽນແປງກ່ອນທີ່ຈະອອກຈາກລະບົບ. ການຕັ້ງຄ່າທີ່ຜິດພາດອາດເຮັດໃຫ້ທ່ານບໍ່ສາມາດເຂົ້າລະບົບໄດ້. |
ເປີດໃຊ້ການຮອງຮັບ U2F ໃນໂປຣໄຟລ໌ປັດຈຸບັນໂດຍການເພີ່ມຄຸນສົມບັດ with-pam-u2f. ໃຫ້ໃຊ້ Profile ID ອັນດຽວກັບທີ່ສະແດງໂດຍ authselect current. ຕົວຢ່າງ:
$ sudo authselect select sssd with-pam-u2f
ຫຼື:
$ sudo authselect select local with-pam-u2f
ທົດສອບການຢືນຢັນຕົວຕົນໃນເຊສຊັນເທີມິນໍໃໝ່ (ຕົວຢ່າງດ້ວຍ sudo) ກ່ອນທີ່ຈະອອກຈາກລະບົບ:
$ sudo -k
$ sudo true
ຂັ້ນສູງ: ການຕັ້ງຄ່າ PAM ດ້ວຍຕົນເອງ ສຳລັບ pam_u2f (ບໍ່ແນະນຳ)
ການປັບແຕ່ງໄຟລ໌ການຕັ້ງຄ່າ PAM ດ້ວຍຕົນເອງອາດເຮັດໃຫ້ເກີດຄວາມບໍ່ສອດຄ່ອງກັນ ຫຼື ເຖິງຂັ້ນເຮັດໃຫ້ຜູ້ໃຊ້ເຂົ້າລະບົບບໍ່ໄດ້. Authselect ຈະຊ່ວຍຈັດການການຕັ້ງຄ່າເຫຼົ່ານີ້ຜ່ານໂປຣໄຟລ໌ທີ່ກຳນົດໄວ້ລ່ວງໜ້າ ແລະ ຊ່ວຍຮັກສາຄວາມເຂົ້າກັນໄດ້ໃນທຸກການອັບເດດລະບົບ.
ສ້າງໄຟລ໌ການຕັ້ງຄ່າພື້ນຖານສອງໄຟລ໌ໃນ /etc/pam.d/u2f-required ແລະ u2f-sufficient.
|
ໄຟລ໌ ເພື່ອເລີ່ມໃຊ້ງານແທ້ໆ, ທ່ານຕ້ອງ include ໄຟລ໌ເຫຼົ່ານີ້ເຂົ້າໃນການຕັ້ງຄ່າ PAM ຂອງບໍລິການທີ່ຕ້ອງການ (ເຊັ່ນ: |
#%PAM-1.0
auth required pam_u2f.so
#%PAM-1.0
auth sufficient pam_u2f.so
|
ທ່ານສາມາດເພີ່ມຕົວເລືອກ debug ໄວ້ທ້າຍແຖວເຫຼົ່ານີ້ (ຖັດຈາກ mode) ເພື່ອເບິ່ງຂໍ້ມູນການແກ້ໄຂບັນຫາໃນ journald. |
ລົງທະບຽນ YubiKey(s) ກັບບັນຊີທ້ອງຖິ່ນຂອງທ່ານ
ສຳລັບ pam_yubico
ຫາກທ່ານໃຊ້ວິທີ YubiCloud ແບບອອນລາຍ, ທ່ານຈຳເປັນຕ້ອງມີ ID ຂອງ YubiKey. ສຳລັບວິທີນີ້, ພຽງແຕ່ສຽບກຸນແຈ ແລະ ກົດປຸ່ມສັ້ນໆເພື່ອຂໍລະຫັດ OTP, ຈາກນັ້ນໃຫ້ຄັດລອກເອົາ 12 ຕົວອັກສອນທຳອິດ - ນັ້ນຄື ID ກຸນແຈຂອງທ່ານ.
cccccbcgebif | bclbtjihhbfbduejkuhgvhkehnicrfdj
ສ້າງໄຟລ໌ການຕັ້ງຄ່າ ~/.yubico/authorized_yubikeys ໂດຍໃສ່ຊື່ບັນຊີຜູ້ໃຊ້ຂອງທ່ານ, ຕາມດ້ວຍ IDs ຂອງກຸນແຈ ເຊິ່ງຂັ້ນດ້ວຍເຄື່ອງໝາຍຈ້ຳສອງເມັດ (colon).
fedora-user:cccccbcgebif[:<another-key-id>]
ອີກວິທີໜຶ່ງແມ່ນ, ເປີດໃຊ້ challenge-response ໃນ slot 2 ແລະ ລົງທະບຽນກັບບັນຊີຜູ້ໃຊ້ຂອງທ່ານ. ຄຳສັ່ງທຳອິດ (ykman) ສາມາດຂ້າມໄດ້ ຫາກທ່ານມີຂໍ້ມູນ challenge-response ເກັບໄວ້ໃນ slot 2 ຂອງ YubiKey ແລ້ວ. (ກວດສອບດ້ວຍ 'ykman otp info') ໃຫ້ເຮັດຂັ້ນຕອນທັງໝົດຄືນ ຫຼື ເຮັດພຽງຂັ້ນຕອນສຸດທ້າຍ ຫາກທ່ານມີກຸນແຈສຳຮອງ (ແນະນຳໃຫ້ເຮັດຢ່າງຍິ່ງ).
$ ykman otp chalresp --generate --touch 2
$ ykpamcfg -2
Stored initial challenge and expected response in '/home/<username>/.yubico/challenge-1...5'.
ຫຼື ສຳລັບຜູ້ໃຊ້ລະບົບອື່ນໆ ໂດຍໃຊ້ sudo.
$ sudo -u someuser ykpamcfg -2
ສຳລັບ pam_u2f
ໃຊ້ເຄື່ອງມື pamu2fcfg ເພື່ອດຶງເອົາແຖວການຕັ້ງຄ່າທີ່ຈະຕ້ອງເອົາໄປໃສ່ໃນ ~/.config/Yubico/u2f_keys. ແຖວການຕັ້ງຄ່ານີ້ປະກອບດ້ວຍຊື່ຜູ້ໃຊ້ ແລະ ສ່ວນທີ່ຜູກໄວ້ກັບກຸນແຈ ເຊິ່ງຂັ້ນດ້ວຍເຄື່ອງໝາຍຈ້ຳສອງເມັດ.
fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence
ຫາກກຸນແຈຖືກປ້ອງກັນດ້ວຍ PIN, ທ່ານຈະຖືກຖາມໃຫ້ປ້ອນ PIN ສຳລັບການດຳເນີນການນີ້.
Insert your key and run:
$ mkdir -p ~/.config/Yubico
$ pamu2fcfg > ~/.config/Yubico/u2f_keys
ຫາກທ່ານມີກຸນແຈສຳຮອງ, ໃຫ້ເພີ່ມມັນດ້ວຍຕົວເລືອກ --nouser ແລະ ຕໍ່ໃສ່ທ້າຍກຸນແຈທີ່ມີຢູ່ແລ້ວ (ໃນແຖວດຽວກັນ). (ຜົນໄດ້ຮັບທັງໝົດຄວນຈະຢູ່ແຖວດຽວກັນ).
Insert your backup key and run:
$ pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
ຕັ້ງຄ່າໂມດູນ PAM ທີ່ຕ້ອງການ
ຕໍ່ໄປ, ຕັ້ງຄ່າ PAM ເພື່ອໃຫ້ຍອມຮັບ YubiKey ເປັນວິທີການຢືນຢັນຕົວຕົນ. ມີຫຼາຍທາງເລືອກໃນ /etc/pam.d ທີ່ສາມາດປັບແຕ່ງ ແລະ ເພີ່ມ YubiKey ເຂົ້າໄປໄດ້, ແຕ່ກໍລະນີທີ່ພົບເລື້ອຍທີ່ສຸດຄື:
-
/etc/pam.d/login
-
/etc/pam.d/gdm
-
/etc/pam.d/sudo
-
/etc/pam.d/sshd
ຕັ້ງຄ່າໂມດູນ PAM ທີ່ຕ້ອງການ
ຕໍ່ໄປ, ຕັ້ງຄ່າ PAM ເພື່ອໃຫ້ຍອມຮັບ YubiKey ເປັນວິທີການຢືນຢັນຕົວຕົນ. ມີຫຼາຍທາງເລືອກໃນ /etc/pam.d ທີ່ສາມາດປັບແຕ່ງ ແລະ ເພີ່ມ YubiKey ເຂົ້າໄປໄດ້, ແຕ່ກໍລະນີທີ່ພົບເລື້ອຍທີ່ສຸດຄື:
-
/etc/pam.d/login
-
/etc/pam.d/gdm
-
/etc/pam.d/sudo
-
/etc/pam.d/sshd
In a PAM configuration file, add the include line either before or after the existing system-auth line, depending on whether you use a -sufficient or -required include file:
-
If using a
-sufficientinclude, add it *beforeauth substack system-auth(orauth include system-auth). -
If using a
-requiredinclude, add it *after that line.
The include file name depends on which PAM module you configured earlier:
-
For pam_yubico, use
yubikey-sufficientoryubikey-required -
For pam_u2f (manual PAM configuration), use
u2f-sufficientoru2f-required
| If you enabled pam_u2f via authselect (recommended), you usually do not need to edit individual /etc/pam.d/* files manually. |
Examples:
auth include yubikey-sufficient
auth include u2f-sufficient
The following example sets a YubiKey OTP (pam_yubico) as a 'sufficient' factor for terminal login. This means that a YubiKey alone is enough to authenticate a user when logging in on a terminal.
Open /etc/pam.d/login with your editor of choice. Find the line that reads "auth substack system-auth". Above that, insert:
auth include yubikey-sufficient
ຜົນໄດ້ຮັບຈະຄ້າຍຄືແບບນີ້:
#%PAM-1.0
auth include yubikey-sufficient
auth substack system-auth
auth include postlogin
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
session include postlogin
-session optional pam_ck_connector.so
ໃນຄັ້ງຕໍ່ໄປທີ່ທ່ານເປີດຄອນໂຊນ (ແບບທ້ອງຖິ່ນ, ບໍ່ແມ່ນ SSH) ແລະ ພະຍາຍາມເຂົ້າລະບົບ, ທ່ານຈະເຫັນຂໍ້ຄວາມຖາມວ່າ YubiKey for '<user>':. ໃຫ້ແຕະທີ່ YubiKey ຂອງທ່ານເພື່ອປ້ອນ OTP, ແລະ ທ່ານຈະສາມາດເຂົ້າລະບົບໄດ້ໂດຍບໍ່ຕ້ອງໃສ່ລະຫັດຜ່ານ.
|
ເມື່ອໃຊ້ຕົວເລືອກ yubikey-required, ໃຫ້ແນ່ໃຈວ່າໄດ້ທົດສອບຢ່າງລະອຽດໃນອີກເຊສຊັນໜຶ່ງໂດຍບໍ່ຟ້າວປິດເຊສຊັນປັດຈຸບັນ ເພື່ອປ້ອງກັນບໍ່ໃຫ້ຕົວເອງຖືກລັອກອອກຈາກລະບົບ. |
ເພື່ອເພີ່ມການນຳໃຊ້ YubiKey ໃນສ່ວນອື່ນໆນອກຈາກການເຂົ້າລະບົບເທີມິນໍ ເຊັ່ນ: ເຊີບເວີ sshd ທ້ອງຖິ່ນ, sudo ຫຼື ການເຂົ້າລະບົບ GDM, ໃຫ້ເພີ່ມ auth include ທີ່ກ່ຽວຂ້ອງເຂົ້າໃນໄຟລ໌ການຕັ້ງຄ່າອື່ນໆໃນ /etc/pam.d.
ການປັບແຕ່ງ YubiKey ດ້ວຍ Fedora
YubiKey ຈະຖືກຕັ້ງຄ່າມາໃຫ້ກ່ອນສຳລັບ Yubico OTP, ແຕ່ສຳລັບຄຸນສົມບັດອື່ນໆ ມັນຈະໃຊ້ PIN ເລີ່ມຕົ້ນ ເຊິ່ງທ່ານອາດຈະຕ້ອງການປ່ຽນມັນກ່ອນການໃຊ້ງານ. ມີຊອບແວສຳລັບປັບແຕ່ງ YubiKey ຢູ່ໃນຄັງເກັບທາງການ.
ໂດຍພື້ນຖານແລ້ວມີສອງເຄື່ອງມືທີ່ໃຊ້ຮ່ວມກັບເວີຊັນ GUI ຂອງພວກມັນ ຄື: 'yubikey-manager' ແລະ 'ykpersonalize'. ອັນທຳອິດແມ່ນໃໝ່ກວ່າ ແຕ່ຮອງຮັບຕົວເລືອກໜ້ອຍກວ່າອັນຫຼັງ. ເພື່ອໃຫ້ມີຕົວເລືອກທັງໝົດ, ແນະນຳໃຫ້ຕິດຕັ້ງທັງສອງອັນ.
$ sudo dnf install ykpers
ມີ GUI ສຳລັບຄຳສັ່ງນີ້:
$ sudo dnf install yubikey-personalization-gui
ມີເຄື່ອງມືທີ່ໃໝ່ກວ່າ ແລະ ງ່າຍກວ່າ ຄື ykman:
$ sudo dnf install yubikey-manager
YubiKey manager ກໍມີ GUI ເຊັ່ນກັນ:
$ sudo dnf install yubikey-manager-qt
ການຂຽນລະຫັດຜ່ານຄົງທີ່ (static password) ໃໝ່ລົງໃນ slot ທີສອງຂອງກຸນແຈ
YubiKeys ລຸ້ນໃໝ່ໆ (YubiKey 2 ຂຶ້ນໄປ) ສາມາດເກັບການຕັ້ງຄ່າແຍກກັນໄດ້ສອງອັນ. ອັນທຳອິດມັກຈະໃຊ້ສຳລັບ OTP, ສ່ວນອັນທີສອງໃຊ້ສຳລັບລະຫັດຜ່ານຄົງທີ່ທີ່ມີຄວາມປອດໄພສູງ. ຫາກກົດປຸ່ມສັ້ນໆ (ບໍ່ເກີນ 1.5 ວິນາທີ), ການຕັ້ງຄ່າທຳອິດຈະຖືກໃຊ້. ຫາກກົດປຸ່ມຄ້າງໄວ້ (ປະມານ 2.5 ຫາ 5 ວິນາທີ), ການຕັ້ງຄ່າທີສອງຈະຖືກໃຊ້.
ຂຽນກຸນແຈຄົງທີ່ (static key) ໂດຍໃຊ້ ykman otp static.
$ ykman otp static 2 cbdefghijklnrtuv
ຕົວຢ່າງທີ່ລະອຽດກວ່າ: ຂຽນກຸນແຈຄົງທີ່ໃໝ່ລົງໃນ slot ການຕັ້ງຄ່າທີສອງໂດຍໃຊ້ກຸນແຈ AES ທີ່ລະບຸ.
$ ykpersonalize -2 -o append-cr -a 123456deadcafebeef65432112345678 -o -man-update
ນີ້ແມ່ນການຂຽນກຸນແຈຄົງທີ່ລົງໃນ YubiKey ໂດຍອີງຕາມກຸນແຈ AES ຂະໜາດ 32 ໄບທ໌ ທີ່ລະບຸດ້ວຍຕົວເລືອກ -a. ຕົວເລືອກ -2 ແມ່ນການກຳນົດ slot ທີສອງເປັນເປົ້າໝາຍ. ສ່ວນອີກສອງຕົວເລືອກແມ່ນຂຶ້ນກັບຄວາມມັກສ່ວນຕົວ. ຕົວເລືອກ append-cr ຈະສົ່ງຄ່າຂຶ້ນແຖວໃໝ່ (carriage return) ເປັນຕົວອັກສອນສຸດທ້າຍຂອງກຸນແຈ ເຊິ່ງເຮັດໃຫ້ທ່ານບໍ່ຕ້ອງກົດ <ENTER> ເອງ. ສ່ວນຕົວເລືອກ -man-update ຈະປິດການອັບເດດກຸນແຈຄົງທີ່ໃນ YubiKey ແບບງ່າຍໆ ເຊິ່ງຈະຊ່ວຍໃຫ້ສາມາດປ່ຽນລະຫັດຜ່ານຄົງທີ່ໄດ້ໂດຍບໍ່ຕ້ອງໃຊ້ ykpersonalize.
ການຂຽນກຸນແຈ AES ໃໝ່ລົງໃນ slot ທຳອິດຂອງກຸນແຈ
|
Slot 1 ມີຄວາມພິເສດ ເພາະມັນມີຂໍ້ມູນການຢືນຢັນຕົວຕົນຈາກໂຮງງານທີ່ຖືກອັບໂຫຼດຂຶ້ນ YubiCloud ໄວ້ແລ້ວ. ການລຶບ ແລະ ສ້າງຄວາມລັບ Yubico OTP ໃໝ່ ແລ້ວອັບໂຫຼດຂຶ້ນ YubiCloud ດ້ວຍຕົນເອງ ຈະເຮັດໃຫ້ມັນຖືກໝາຍໄວ້ເປັນພິເສດ ເຊິ່ງອາດສົ່ງຜົນກະທົບຄື: ຜູ້ໃຫ້ບໍລິການບາງແຫ່ງອາດຈະບໍ່ເຊື່ອຖືຊຸດກຸນແຈດັ່ງກ່າວ, ແລະ Yubico ອາດຈະລຶບຄວາມລັບເຫຼົ່ານັ້ນໄດ້ທຸກເວລາດ້ວຍເຫດຜົນໃດກໍຕາມ. |
ຫາກພວກເຮົາຕ້ອງການຂຽນການຕັ້ງຄ່າໃໝ່ລົງໃນ slot ທຳອິດ, ພວກເຮົາຈຳເປັນຕ້ອງລະບຸຕົວເລືອກເພີ່ມເຕີມບາງຢ່າງ. ຫາກທ່ານຕ້ອງການອັບໂຫຼດກຸນແຈຂອງທ່ານຂຶ້ນ Yubico ເພື່ອຢືນຢັນຕົວຕົນກັບເຊີບເວີຂອງພວກເຂົາ, ໃຫ້ຈົດຈຳຄ່າຕ່າງໆທີ່ທ່ານໃຊ້ຂ້າງລຸ່ມນີ້ ເພາະທ່ານຈະຕ້ອງໄດ້ໃຊ້ມັນໃນພາຍຫຼັງ.
$ ykpersonalize -1 -o fixed=vvhhhrhkhgidic -o uid=deadbeefcafe -a 123456deadcfaebeef65432112345678 -o append-cr
ຕົວເລືອກ -1 ບອກໃຫ້ ykpersonalize ໃຊ້ການຕັ້ງຄ່າອັນທຳອິດ. ຕົວເລືອກ fixed ແມ່ນການລະບຸ public ID ຂອງ YubiKey ເຊິ່ງຈະຖືກເອີ້ນວ່າ 'prefix' ໃນເວລາທີ່ພວກເຮົາອັບໂຫຼດມັນ. ຄ່າທີ່ທ່ານໃຊ້ຢູ່ບ່ອນນີ້ຕ້ອງເລີ່ມຕົ້ນດ້ວຍ 'ff' ໃນແບບ hex ຫຼື 'vv' ໃນແບບ modhex (ເບິ່ງຂ້າງລຸ່ມ). Yubico ບັງຄັບໃຊ້ກົດນີ້ເມື່ອທ່ານພະຍາຍາມອັບໂຫຼດກຸນແຈຂຶ້ນເຊີບເວີຂອງພວກເຂົາ. ຄ່າສຳລັບ fixed ສາມາດມີຄວາມຍາວໄດ້ສູງສຸດ 16 ຕົວອັກສອນ.
ໃນສ່ວນຂອງ OTP, ທ່ານສາມາດລະບຸຕົວລະບຸພາຍໃນ (internal identifier) ສຳລັບກຸນແຈຂອງທ່ານໄດ້ ເຊິ່ງແມ່ນໜ້າທີ່ຂອງຕົວເລືອກ uid. ຄ່ານີ້ຈະເປັນແບບ hex ທຳມະດາ, ບໍ່ແມ່ນ modhex ແລະ ຕ້ອງມີຄວາມຍາວ 12 ຕົວອັກສອນ 'ພໍດີ'.
ຕົວເລືອກ -a ກໍຄືກຸນແຈ AES ຂະໜາດ 32 ໄບທ໌ ແລະ append-cr ຈະເພີ່ມການຂຶ້ນແຖວໃໝ່ເຂົ້າໄປໃນກຸນແຈເປັນຕົວອັກສອນສຸດທ້າຍ.
ເມື່ອທ່ານກົດປຸ່ມ <ENTER>, ໂປຣແກຣ ykpersonalize ຈະສະແດງຕົວເລືອກຕ່າງໆ ແລະ ຖາມເພື່ອຢືນຢັນກ່ອນດຳເນີນການຕໍ່:
Firmware version 2.1.1 Touch level 1795 Program sequence 3 Configuration data to be written to key configuration 1:
fixed: m:vvhhhrhkhgidic uid: h:deadbeefcafe key: h:123456deadcfaebeef65432112345678 acc_code: h:000000000000 ticket_flags: APPEND_CR config_flags:
ຢືນຢັນການຂຽນຂໍ້ມູນ? (y/n) [n]:
ຫຼັງຈາກກົດ 'y', ທ່ານຈະສາມາດສ້າງ OTP ດ້ວຍກຸນແຈໃໝ່ຂອງທ່ານໄດ້ແລ້ວ!
modhex ແມ່ນຫຍັງ?
ເມື່ອສຽບເຂົ້າໄປ, ລະບົບປະຕິບັດການຈະເບິ່ງ YubiKey ເປັນຄີບອດ USB. ຄີບອດ USB ຈະສົ່ງ scancodes ໄປຫາລະບົບປະຕິບັດການ ເຊິ່ງລະບົບຈະແປຄ່ານັ້ນເປັນຕົວອັກສອນ. YubiKey ຕ້ອງໝັ້ນໃຈວ່າຈະບໍ່ເກີດຄວາມສັບສົນ: ເນື່ອງຈາກມີຮູບແບບຜັງຄີບອດ (keyboard layout) ທີ່ຫຼາກຫຼາຍ ແລະ scancodes ຕ້ອງຖືກແປເປັນຕົວອັກສອນດຽວກັນໃນທຸກໆເຄື່ອງ. ເພື່ອແກ້ໄຂບັນຫານີ້, ທາງ Yubico ຈຶ່ງໄດ້ສ້າງ 'modhex' ຂຶ້ນມາ ເຊິ່ງເປັນການດັດແປງຕົວເລກຖານສິບຫົກ (hexadecimal) ໃຫ້ໃຊ້ແຕ່ຕົວອັກສອນທີ່ 'ປອດໄພ'. ຕົວອັກສອນທີ່ 'ປອດໄພ' ກໍຄືຕົວອັກສອນທີ່ມີ scancode ຕົງກັນໃນທຸກໆຜັງຄີບອດ.
ການອັບໂຫຼດກຸນແຈ AES ທີ່ສ້າງຂຶ້ນໄປຫາ Yubico
ຫາກທ່ານຕ້ອງການປັບແຕ່ງກຸນແຈ AES ຂອງ YubiKey ແຕ່ຍັງຢາກໃຊ້ງານມັນເພື່ອຢືນຢັນຕົວຕົນຜ່ານເຊີບເວີຂອງ Yubico, ທ່ານສາມາດອັບໂຫຼດກຸນແຈໄດ້ທີ່ https://upgrade.yubico.com/getapikey/. ທ່ານຈຳເປັນຕ້ອງປ້ອນທີ່ຢູ່ອີເມວ ແລະ OTP ຈາກ YubiKey ຂອງທ່ານ.
ອັບເດດ PIN ຂອງໂມດູນ PIV
ໂມດູນ Personal Identity Verification (PIV) ໃຊ້ສຳລັບເກັບກຸນແຈສ່ວນຕົວ ແລະ ໃບຢັ້ງຢືນທີ່ກ່ຽວຂ້ອງ ເພື່ອຈຸດປະສົງຕ່າງໆ ເຊັ່ນ: ການເຂົ້າລະຫັດ, ການຢືນຢັນຕົວຕົນ ແລະ ການເຊັນຊື່. ຫາກ YubiKey ຂອງທ່ານຮອງຮັບຄຸນສົມບັດນີ້, ທ່ານຄວນປ່ຽນ PIN, PUK ແລະ Management Key ຂອງມັນ.
ຕັ້ງຄ່າ PIN.
$ ykman piv access change-pin
Enter the current PIN: 123456
Enter the new PIN: ********
Repeat for confirmation: ********
New PIN set.
ຕັ້ງຄ່າ PUK.
$ ykman piv access change-puk
Enter the current PUK: 12345678
Enter the new PUK: ********
Repeat for confirmation: ********
New PUK set.
ອັບເດດ Management Key.
$ ykman piv access change-management-key --generate --protect
Enter the current management key [blank to use default key]:
Enter PIN: ********
ຕອນນີ້ທ່ານສາມາດໃຊ້ໂມດູນ PIV ເພື່ອສ້າງກຸນແຈສ່ວນຕົວ ແລະ ເກັບໃບຢັ້ງຢືນໄດ້ຢ່າງປອດໄພແລ້ວ.
ປ່ຽນ PIN ຂອງໂມດູນ FIDO2
FIDO2 ແມ່ນມາດຕະຖານການຢືນຢັນຕົວຕົນແບບເປີດ ເຊິ່ງລວມມີມາດຕະຖານຍ່ອຍ ແລະ ໂປຣໂຕຄໍຕ່າງໆ ເພື່ອໃຫ້ບໍລິການການຢືນຢັນຕົວຕົນແບບສອງຂັ້ນຕອນ ຫຼື ແມ່ນແຕ່ການຢືນຢັນຕົວຕົນແບບບໍ່ໃຊ້ລະຫັດຜ່ານ.
ກໍລະນີການນຳໃຊ້ທີ່ໜ້າສົນໃຈຂອງໂມດູນ FIDO ຄືການເກັບຂໍ້ມູນ OpenSSH public-key ເຊິ່ງ OpenSSH agents ລຸ້ນໃໝ່ໆສາມາດນຳໄປໃຊ້ໄດ້ທັນທີ. ນີ້ເຮັດໃຫ້ SSH keys ມີຄວາມສະດວກໃນການພົກພາ.
ຫາກກຸນແຈຂອງທ່ານຮອງຮັບ FIDO, ໃຫ້ປ່ຽນ PIN ດ້ວຍ ykman fido access ດັ່ງນີ້:
$ ykman piv access change-pin
Enter the current PIN: 123456
Enter the new PIN: ********
Repeat for confirmation: ********
New PIN set.
ຕັ້ງຄ່າລະຫັດຜ່ານສຳລັບ OATH
ຄຸນສົມບັດ OATH ໃຫ້ບໍລິການໂປຣໂຕຄໍການຢືນຢັນຕົວຕົນແບບ TOTP ແລະ HOTP. ມັນສາມາດປ້ອງກັນດ້ວຍລະຫັດຜ່ານ (passphrase) ເພື່ອເຂົ້າເຖິງ ແລະ ສ້າງລະຫັດ OTP ໄດ້. ນີ້ຈະແຕກຕ່າງຈາກຄຸນສົມບັດ Yubico OTP ທີ່ໃຊ້ຄວາມລັບດຽວທີ່ເກັບໄວ້ໃນ YubiKey ສຳລັບ challenge-response.
ປ່ຽນລະຫັດຜ່ານ OATH ດ້ວຍ:
$ ykman oath access change
Enter the new password:
Repeat for confirmation:
ຕັ້ງຄ່າໃຫ້ອຸປະກອນຂອງທ່ານຈົດຈຳລະຫັດຜ່ານນີ້ໄວ້ ເພື່ອທີ່ທ່ານຈະບໍ່ຕ້ອງປ້ອນມັນອີກ.
$ ykman oath access remember
ການນຳໃຊ້ YubiKey ເພື່ອຢືນຢັນຕົວຕົນກັບເຊີບເວີ OpenSSH
ເມື່ອໃຊ້ FIDO2 ແລະ OpenSSH 8.2 ຂຶ້ນໄປ, ທ່ານສາມາດສ້າງກຸນແຈ OpenSSH ທີ່ສາມາດໃຊ້ໄດ້ກໍຕໍ່ເມື່ອເຊື່ອມຕໍ່ YubiKey ເທົ່ານັ້ນ. ທ່ານສາມາດປ້ອງກັນການໃຊ້ກຸນແຈໄດ້ໂດຍການໃຫ້ມີການແຕະຢືນຢັນ ຫຼື ການແຕະ + ປ້ອນ PIN.
ສ້າງກຸນແຈສາທາລະນະ (public key) ໃນທຸກໆເຄື່ອງທີ່ທ່ານຕັ້ງໃຈຈະໃຊ້ກຸນແຈສ່ວນຕົວ ເພື່ອໃຫ້ OpenSSH agent ສາມາດກວດພົບໄດ້:
$ ssh-keygen -t ed25519-sk
ສ້າງກຸນແຈສາທາລະນະ ແລະ ເກັບຂໍ້ມູນຕົວຕົນໄວ້ໃນໂມດູນ FIDO2 ເພື່ອເຮັດໃຫ້ຄູ່ກຸນແຈ ສ່ວນຕົວ-ສາທາລະນະ ສາມາດພົກພາໄປໃຊ້ໄດ້ທຸກບ່ອນ:
$ ssh-keygen -t ed25519-sk -O resident -O application=ssh:fedora -O verify-required
| ສິ່ງທີ່ເອີ້ນວ່າ resident keys ແມ່ນກຳນົດໃຫ້ກຸນແຈສ່ວນຕົວຕ້ອງຖືກປ້ອງກັນດ້ວຍ PIN. |
ທາງເລືອກສຳລັບກຸນແຈທີ່ບໍ່ຮອງຮັບ FIDO2
ຫາກກຸນແຈບໍ່ຮອງຮັບ FIDO2, ທ່ານຕ້ອງໃຊ້ວິທີທາງເລືອກຜ່ານໂມດູນ PIV ແລະ PKCS#11.
ສ້າງກຸນແຈສ່ວນຕົວ ED25519 ໄວ້ພາຍໃນໂມດູນ PIV, ໂດຍກຳນົດໃຫ້ຕ້ອງປ້ອນ PIN ເມື່ອໃຊ້ງານ ແລະ ຕ້ອງສຳຜັດປຸ່ມ YubiKey ສະເໝີ:
$ ykman piv keys generate --algorithm ED25519 --pin-policy ONCE --touch-policy ALWAYS 9a public.pem
Enter PIN: ********
Slot 9a ໃນກຸນແຈແມ່ນໃຊ້ສຳລັບການຢືນຢັນຕົວຕົນໂດຍສະເພາະ. ຍັງມີ slot ອື່ນໆ ສຳລັບຄຸນສົມບັດຕ່າງໆ ເຊັ່ນ ການເຂົ້າລະຫັດ ຫຼື ການເຊັນຊື່.
ສ້າງໃບຢັ້ງຢືນໃນ slot ອັນດຽວກັນນີ້ສຳລັບໄລບຣາຣີ PIV/PKCS#11:
$ ykman piv certificates generate --subject "CN=OpenSSH" --hash-algorithm SHA384 9a pubkey.pem
Enter PIN: ********
Touch your YubiKey…
ຕອນນີ້ໃຫ້ສ້າງກຸນແຈສາທາລະນະຈາກໃບຢັ້ງຢືນ X.509 ທີ່ເກັບໄວ້ໃນ YubiKey. ຄຸນສົມບັດອື່ນໆ ເຊັ່ນ resident keys ຈະເຮັດວຽກຄືກັນກັບວິທີຂອງ FIDO2, ແຕ່ທ່ານຕ້ອງເພີ່ມຕົວເລືອກເພີ່ມເຕີມຕາມທີ່ສະແດງຂ້າງລຸ່ມນີ້.
$ ssh-keygen -D /usr/lib/libykcs11.so -e
ເຂົ້າລະບົບໂດຍໃຊ້ກຸນແຈສາທາລະນະນີ້:
$ ssh -I /usr/lib/libykcs11.so user@remote.example.org
ssh-agent ກໍສາມາດໂຫຼດກຸນແຈຈາກ YubiKey ໄດ້ດ້ວຍຄຳສັ່ງ:
$ ssh -s /usr/lib/libykcs11.so
ການນຳໃຊ້ YubiKey ເພື່ອຢືນຢັນຕົວຕົນກັບເວັບໄຊທ໌
ຕັ້ງແຕ່ປີ 2019, ໄດ້ມີການພະຍາຍາມເຮັດໃຫ້ການນຳໃຊ້ YubiKey ໃນເວັບເປັນມາດຕະຖານດຽວກັນ. ມາດຕະຖານໃໝ່ນີ້ເອີ້ນວ່າ WebAuthn, ເຊິ່ງທ່ານສາມາດສຶກສາເພີ່ມເຕີມໄດ້ທີ່ນີ້: https://www.yubico.com/solutions/webauthn/. ສຳລັບຕອນນີ້, ວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະເບິ່ງວ່າແພລັດຟອມໃດຮອງຮັບ YubiKey ແດ່ ແມ່ນການເຂົ້າໄປເບິ່ງໃນ ແຄັດຕາລັອກຂອງ Yubico.
ນອກຈາກ Yubico OTP ຫຼື WebAuthn (ເຊິ່ງໂດຍເລີ່ມຕົ້ນແລ້ວບໍ່ຈຳເປັນຕ້ອງເກັບຂໍ້ມູນການຢືນຢັນຕົວຕົນໄວ້ໃນ YubiKey), ທ່ານຍັງສາມາດໃຊ້ TOTP ແບບເກົ່າ ເຊິ່ງເປັນວິທີທີ່ເວັບໄຊທ໌ສ່ວນໃຫຍ່ໃຊ້ໃນປັດຈຸບັນ. ມີແອັບພລິເຄຊັນໃນເດັສທັອບ ແລະ Android ທີ່ຊ່ວຍໃຫ້ໃຊ້ງານໄດ້ສະດວກ. ທ່ານສາມາດເກັບຂໍ້ມູນ TOTP ໄດ້ສູງສຸດ 32 ອັນໃນ YubiKey 5.
ຕິດຕັ້ງແອັບພລິເຄຊັນເດັສທັອບຈາກຄັງເກັບທາງການ:
$ sudo dnf install -y yubioath-desktop
ເພີ່ມບັນຊີ TOTP ດ້ວຍ ykman ດັ່ງນີ້:
$ ykman oath accounts add google <TOTP secret>
ຂໍລະຫັດ TOTP ດັ່ງນີ້:
$ ykman oath accounts code google
Want to help? Learn how to contribute to Fedora Docs ›