اگر احراز هویت مبتنی بر رمز عبور و احراز هویت دو مرحلهای را غیرقابل اعتماد میدانید، احراز هویت مبتنی بر سختافزار را در لینوکس با استفاده از YubiKey تنظیم کنید.
اگر نگران تهدید روزافزون هک هستید، تنها نیستید. در حالی که درخواستهای احراز هویت و 2FA برای دفع بیشتر هکرهای احتمالی کافی است، هزاران نقض همچنان هر روز موفق میشوند.
یکی از رایج ترین راه حل هایی که برای مشکل احراز هویت تبلیغ می شود، YubiKey است. اما YubiKey چیست و احراز هویت سخت افزاری چگونه کار می کند؟ آیا می توانید رایانه لینوکس خود را با YubiKey ایمن کنید؟
چرا از YubiKey برای احراز هویت سخت افزاری استفاده کنیم؟
انواع مختلفی از احراز هویت وجود دارد، از جمله رمزهای عبور، احراز هویت پیامکی، و حتی برنامه های احراز هویت که می توانید با تلفن خود استفاده کنید. یکی از انواع کمتر رایج، احراز هویت سخت افزاری است که شامل استفاده از یک دستگاه پلاگین کوچک برای ارسال یک نشانه احراز هویت در صورت درخواست است.
YubiKeys و سایر دستگاه های احراز هویت سخت افزاری نسبت به سایر احراز هویت چند مزیت دارند. استفاده از آنها آسانتر، بسیار ایمنتر و تقریبا غیرممکن است که بدون دسترسی به YubiKey فیزیکی به خطر بیفتند.
شروع کار با Yubikey
شما می توانید با YubiKey فقط در چند مرحله ساده شروع کنید. به عنوان اولین گام، باید از آزمون ساخته شده توسط Yubico برای خرید بهترین YubiKey برای مشخصات دستگاه خود استفاده کنید. هنگامی که YubiKey خود را در دسترس دارید، می توانید از آن به عنوان یک دستگاه احراز هویت برای وب سایت ها و برنامه ها استفاده کنید.
حتی می توانید از آن برای احراز هویت sudo و SSH در رایانه لینوکس خود استفاده کنید. ما هر آنچه را که باید در مورد انتخاب YubiKey سازگار با sudo/SSH و پیکربندی آن برای احراز هویت بدانید، توضیح خواهیم داد.
انتخاب YubiKey مناسب برای سیستم شما
اگر می خواهید از YubiKey خود برای احراز هویت در رایانه لینوکس خود استفاده کنید، چند YubiKey وجود دارد که به عنوان گزینه های برتر برجسته می شوند. YubiKey 5 و YubiKey 5 NFC هر دو کلاسیک هستند که به ترتیب با سیستم های USB-A و USB-C به خوبی کار می کنند.
اگر می خواهید از YubiKey خود با رایانه لینوکس و تلفن اندرویدی خود استفاده کنید، باید YubiKey 5c NFC را در نظر بگیرید. اگر یک کامپیوتر لینوکس و یک آیفون دارید، باید YubiKey 5ci را در نظر بگیرید زیرا از USB-C و لایتنینگ پشتیبانی می کند.
توجه به این نکته مهم است که سری YubiHSM با احراز هویت sudo سازگار نیست. بسته به ویژگیهای خاص، YubiKeyهای قدیمی ممکن است با احراز هویت sudo/SSH سازگار باشند یا نباشند.
قبل از شروع احراز هویت sudo یا SSH، باید YubiKey PPA را نصب کنید. ترمینال را باز کنید و دستورات زیر را برای به روز رسانی بسته های خود وارد کنید و YubiKey Authenticator و YubiKey Manager را نصب کنید:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt install yubikey-manager libpam-yubico libpam-u2f
در مرحله بعد، باید تأیید کنید که سیستم شما آماده کار با YubiKey است. دستور زیر را در ترمینال اجرا کنید تا نسخه udev خود را بررسی کنید:
sudo udevadm --version
ترمینال شماره ای را برمی گرداند. اگر عدد 244 یا بالاتر باشد، سیستم شما با YubiKey سازگار است. در این مورد می توانید مرحله بعدی را رد کنید.
در غیر این صورت باید سیستم خود را پیکربندی کنید. شما باید از دستورات زیر استفاده کنید تا بررسی کنید که آیا udev بر روی رایانه شما نصب شده است یا خیر – و اگر نصب نیست، آن را نصب کنید:
dpkg -s libu2f-udev
sudo apt install libu2f-udev
در مرحله بعد، بررسی کنید که آیا رابط U2F YubiKey شما باز است یا خیر. اگر YubiKey NEO یا YubiKey NEO-n دارید، YubiKey خود را وارد کنید، YubiKey Manager را باز کنید و به Interfaces بروید. رابط U2F را فعال کرده و ذخیره را فشار دهید.
YubiKey را برای احراز هویت sudo در لینوکس تنظیم کنید
sudo یکی از خطرناک ترین دستورات در محیط لینوکس است. در دستان مناسب، سطح قابل توجهی از دسترسی را فراهم می کند که برای انجام بیشتر کارها کافی است. در دستان اشتباه، دسترسی سطح ریشه که sudo فراهم می کند می تواند به کاربران مخرب اجازه سوء استفاده یا تخریب یک سیستم را بدهد.
YubiKey ها برای احراز هویت sudo عالی هستند زیرا احراز هویت آنها بدون دسترسی به خود YubiKey تقریبا غیرممکن است. اکثر YubiKey ها با احراز هویت sudo سازگار هستند، از جمله سری 5 FIP، سری کلید، سری 4 FIP، سری Bio، سری 5 و سری 4.
طبق گفته Yubico، اولین قدمی که برای پیکربندی احراز هویت sudo باید بردارید، ایجاد یک فایل قوانین است. اگر نسخه udev شما 188 یا بالاتر است، قوانین جدید U2F را از GitHub نصب کنید و فایل 70-u2f.rules را در /etc/udev/rules.d کپی کنید.
اگر نسخه udev شما زیر 188 است، قوانین U2F قدیمی را از GitHub نصب کنید و فایل 70-old-u2f.rules را در /etc/udev/rules.d کپی کنید.
اگر نسخه udev شما 244 یا بالاتر است یا فایل های قوانین لازم را ایجاد کرده اید، آماده هستید که YubiKey خود را با حساب خود پیوند دهید.
YubiKey را در رایانه خود قرار دهید، ترمینال را باز کنید و دستورات زیر را وارد کنید تا YubiKey خود را با حساب خود پیوند دهید:
mkdir -p ~/.config/Yubicopamu2fcfg > ~/.config/Yubico/u2f_keys
چند لحظه صبر کنید تا چراغ نشانگر YubiKey شما شروع به چشمک زدن کند. دکمه YubiKey خود را لمس کنید تا پیوند دستگاه را تأیید کنید.
اگر YubiKey دیگری در دسترس دارید، باید با وارد کردن دستور زیر و تکمیل فرآیند مشابه، آن را به عنوان یک دستگاه پشتیبان اضافه کنید:
pamu2fcfg -n >> ~/.config/Yubico/u2f_keys
در نهایت، باید دستور sudo را برای احراز هویت YubiKey پیکربندی کنید. برای باز کردن فایل پیکربندی sudo باید دستور زیر را وارد کنید:
sudo vi /etc/pam.d/sudo
هنگامی که فایل پیکربندی باز شد، خط زیر را درست زیر خط @include common-auth قرار دهید تا sudo را برای نیاز به احراز هویت YubiKey پیکربندی کنید:
auth required pam_u2f.so
با فشردن Escape، تایپ :wq و فشردن Enter فایل را ذخیره کرده و از آن خارج شوید، اما ترمینال را باز نگه دارید. اگر ترمینال بسته شود، نمیتوانید تغییراتی را که در احراز هویت sudo ایجاد کردهاید، برگردانید.
ترمینال دوم را باز کنید و دستور زیر را در حالی که YubiKey خود را جدا کرده اید اجرا کنید، سپس رمز عبور خود را وارد کنید:
sudo echo testing
فرآیند احراز هویت با شکست مواجه خواهد شد. YubiKey خود را وارد کنید و دستور و رمز عبور خود را دوباره وارد کنید. وقتی چراغ نشانگر YubiKey شروع به چشمک زدن کرد، دکمه YubiKey خود را لمس کنید. باید دستور را احراز هویت کند. اگر چنین شد، YubiKey شما به طور کامل برای احراز هویت sudo تنظیم شده است.
نحوه تنظیم YubiKey برای احراز هویت SSH
می توانید از YubiKey خود برای احراز هویت SSH نیز استفاده کنید! چندین سری YubiKey با SSH سازگار هستند، از جمله سری 5 FIPS، سری 5، سری 4 FIPS و سری 4. استفاده از YubiKey برای احراز هویت اتصالات به شما این امکان را می دهد که هر ورود SSH را بسیار ایمن تر کنید.
بهترین روش برای راه اندازی YubiKey توسط یک کاربر با تجربه در GitHub ارائه شده است. شما به SSH 8.2 یا جدیدتر و YubiKey با سیستم عامل 5.2.3 یا جدیدتر نیاز دارید. میتوانید نسخه OpenSSH خود را بررسی کنید – و در صورت لزوم آن را بهروزرسانی کنید – با دستورات زیر:
ssh -V
sudo apt update && sudo apt upgrade
در مرحله بعد، باید SSH را برای پذیرش YubiKey خود پیکربندی کنید. برای باز کردن ویرایشگر vi و ویرایش فایل پیکربندی، دستور زیر را وارد کنید:
sudo vi /etc/ssh/sshd_config
خط زیر را به فایل پیکربندی اضافه کنید تا YubiKey شما پذیرفته شود:
PubkeyAcceptedKeyTypes sk-ecdsa-sha2-nistp256@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com
با فشار دادن Escape، تایپ :wq و زدن Enter فایل را ذخیره کرده و از آن خارج شوید. در آخر سرویس SSH را با دستور زیر راه اندازی مجدد کنید تا پیکربندی جدید شما فعال شود:
sudo service ssh restart
در نهایت، شما آماده ایجاد جفت کلیدی هستید که برای احراز هویت SSH استفاده می کنید. به دایرکتوری SSH بروید و کلید SSH جدید خود را با دستورات زیر ایجاد کنید:
cd home/username/.ssh
ssh-keygen -t ed25519-sk
دو فایل در دایرکتوری ~/.ssh/ ایجاد خواهد شد. توجه داشته باشید که اگر سیستم شما ناسازگار است و ترمینال از شما می خواهد که ثبت کلید ناموفق باشد، ممکن است لازم باشد به جای ed25519-sk از ecdsa-sk استفاده کنید.
در مرحله بعد، باید کلید عمومی را با دستور زیر به سرور خود اضافه کنید:
ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub username@server
همچنین باید خود را به فایل sudoers اضافه کنید تا پس از غیرفعال کردن ورود به ریشه، مجوزها را حفظ کنید. به فایل دسترسی پیدا کنید و آن را با visudo باز کنید.
فایل sudoers را با یک ویرایشگر متن معمولی باز نکنید.
زیر خطی که ریشه ALL=(ALL:ALL) ALL می خواند، خط زیر را اضافه کنید:
username ALL=(ALL:ALL) ALL
فایل /etc/ssh/ssd_config را باز کنید و خطوط زیر را برای غیرفعال کردن ورود root و ورود مبتنی بر رمز عبور اضافه کنید:
ChallengeResponseAuthentication noPermitRootLogin no
در نهایت، دستور زیر را وارد کنید تا کلید شما در مدت زمان جلسه در عامل SSH شما بارگیری شود:
ssh-add ~/.ssh/id_ed25519_sk
اکنون می توانید از YubiKey خود برای احراز هویت SSH استفاده کنید. وقتی از شما خواسته شد باید YubiKey خود را در رایانه خود قرار دهید و هنگامی که نشانگر چشمک می زند، روی دکمه ضربه بزنید. با استفاده از این روش جدید احراز هویت، دسترسی SSH به سرور راه دور شما به طور قابل توجهی ایمن تر خواهد بود.
سایر کاربردهای بالقوه YubiKey
هیچ محدودیت واقعی برای نحوه استفاده از YubiKey در سیستم لینوکس خود وجود ندارد. اگر می خواهید رایانه شخصی خود را بسیار ایمن کنید، از YubiKey خود برای رمزگذاری دیسک یا بدون رمز عبور استفاده کنید. حتی اگر بخواهید می توانید از آن برای امضای ایمیل ها و فایل ها استفاده کنید.
سیستم لینوکس خود را با YubiKey ایمن کنید
لازم نیست فقط در استفاده از YubiKey برای احراز هویت SSH و sudo متوقف شوید. همچنین میتوانید از YubiKey برای احراز هویت دسترسی به بسیاری از حسابهای خود در سراسر وب استفاده کنید. بهترین بخش این است که شروع با YubiKey 2FA یک فرآیند ساده است.