SKZ احراز هویت کاربر از راه دور لینوکس. CryptoPro JCP در لینوکس

صفحه اصلی / دستگاه های موبایل

اخیراً در حال تغییر رمز عبور کاربر در لینوکس بودیم که با خطا مواجه شدیم: خطای دستکاری رمز تأیید اعتبار.

برای تغییر پسورد از دستور normal passwd استفاده کردیم و این خطا را به ما داد و پسورد تغییر نکرد.

Sudo passwd my_user_name تغییر رمز عبور برای کاربر my_user_name تغییر رمز عبور برای tecmint (فعالی) رمز عبور یونیکس: passwd: خطای دستکاری نشانه احراز هویت passwd: رمز عبور تغییر نکرده است

رفع خطای دستکاری توکن احراز هویت در اوبونتو

«خطای دستکاری رمز تأیید اعتبار» به این معنی است که به دلایلی تغییر رمز عبور انجام نشد.

ممکن است چندین دلیل برای این وجود داشته باشد. در موارد سادهعلت اصلی مشکل را در خود خروجی خواهید دید. به عنوان مثال، اگر رمز عبور ارائه نکرده اید، باید آن را با خطا مشاهده کنید:

پسوردی ارائه نشده است passwd: خطای دستکاری رمز احراز هویت passwd: رمز عبور بدون تغییر

به همین ترتیب، اگر وارد کردن مجدد رمز عبور مطابقت نداشته باشد، این اطلاعات را نیز نشان می دهد:

متأسفیم، گذرواژه‌ها با passwd مطابقت ندارند: خطای دستکاری رمز احراز هویت passwd: رمز عبور بدون تغییر

آسان است زیرا می دانید چه چیزی باعث این مشکل شده است و می توانید بر اساس آن اقدامات اصلاحی انجام دهید. اما ممکن است همیشه خوش شانس نباشید زیرا در برخی موارد هیچ کدام را نخواهید دید اطلاعات مفید، فقط یک خطا

بیایید به برخی از این موارد نگاه کنیم و این مشکل را برطرف کنیم.

روش 1

اگر با ساختار دایرکتوری لینوکس آشنا هستید، می دانید که دایرکتوری /etc/shadow رمز عبور را در قالب رمزگذاری شده به همراه سایر اطلاعات در مورد کاربران و رمز عبور آنها ذخیره می کند.

به همین دلیل است که باید مطمئن شوید که مجوز خواندن و نوشتن در این فایل را دارید. از آنجایی که شما رمز عبور را به عنوان یک ابرکاربر تغییر خواهید داد، این فایل باید مجوز خواندن و نوشتن برای root را داشته باشد.

اگر اینطور نیست، باید رزولوشن صحیح را تنظیم کنید:

Sudo chmod 640 /etc/shadow

روش 2

روش 1 در بیشتر موارد کار خواهد کرد. اما در مورد ما، ما مجبور بودیم پارتیشن ریشه را با مجوزهای خواندن و نوشتن دوباره نصب کنیم. ما سعی کردیم رمز عبور مدیر را در اوبونتو بازنشانی کنیم.

Mount -rw -o remount /

در برخی موارد نادر، دیسک شما ممکن است آنقدر پر باشد که نتوانید هیچ تغییری در فایل /etc/shadow ایجاد کنید. اما اگر اینطور باشد، با مشکلات زیادی روبرو خواهید شد.

آیا این برای شما کار کرد؟

ما آنچه را که برای ما مفید بود به اشتراک گذاشتیم، و فقط می توانیم امیدوار باشیم که برای شما نیز مفید باشد. آیا شما آن را انجام دادید؟ کدام روش برای شما جواب داد؟ آن را در نظرات ذکر کنید.

از سال 2020، استفاده از رمزگذاری مطابق با GOST R 34.10-2001 ممنوع خواهد بود، به این معنی که تمام سازمان هایی که با سازمان های دولتی در تعامل هستند مجبور به اجرای فوری استاندارد بعدی - 2012 هستند. اگر در یکی از آنها کار می کنید، از کنار آن عبور نکنید: در این مقاله در مورد نحوه حل مشکل با استفاده از سرور در CentOS 7 و بسته CryptoPro JCP صحبت خواهیم کرد.

اگر این اولین بار است که درباره همه اینها می شنوید، در اینجا یک پیشینه تاریخی کوچک وجود دارد.

در سال 1994، FSB تعدادی استاندارد و اقدامات طراحی شده برای محافظت از تبادل اسناد بین سازمان ها و سایر شرکت کنندگان در این فرآیند را توسعه داد. یکی از این اقدامات امنیتی امضای دیجیتال الکترونیکی اسناد بود و یکی از استانداردها GOST R 34.10-94 بود که الگوریتم تولید و تأیید الکترونیکی را تشریح می کند. امضای دیجیتال. با فرمان استاندارد دولتی روسیه مورخ 23 مه 1994 به شماره 154 تصویب و اجرا شد و تا سال 2001 کار کرد.

با GOST R 34.10-2001 معروف جایگزین شد - یک استاندارد بهبود یافته که برای اطمینان از ثبات بیشتر الگوریتم طراحی شده است. اما زمان ثابت نمی‌ماند، الگوریتم‌ها و روش‌های حفاظت رمزنگاری تغییر می‌کنند و یازده سال بعد GOST R 34.10-2001 به GOST R 34.10-2012 تغییر می‌کند.

در استاندارد جدید، اولین نسخه از الزامات پارامتر ثابت باقی می ماند. طول کلید مخفی حدود 256 بیت است و می توان از تابع هش با طول کد هش 256 یا 512 بیت استفاده کرد. تفاوت اصلی بین استاندارد جدید گزینه های با پارامترهای اضافیو طرح ها، از جمله هش بر اساس استاندارد GOST R 34.11-2012 "Stribog".

اطلاعات

Stribog خدای اسلاوهای باستانی است که از بادها، آب و هوا و هر چیزی که مربوط به فضای هوایی است حمایت می کند. شاید فناوری های ابریهمان. اطلاعات بیشتر در مورد این رمز را در مقالات "" و "" بخوانید.

در فوریه 2014، FSB شروع انتقال به استفاده از استاندارد ملی جدید GOST R 34.10-2012 را اعلام کرد. امضای الکترونیکیبرای اطلاعاتی که حاوی اطلاعات محرمانه دولتی نباشد. سند شماره 149/7/1/3-58 مورخ 31 ژانویه 2014 "در مورد روش انتقال به استفاده از استانداردهای جدید امضای دیجیتال و توابع هش" الزامات زیر را ایجاد کرد.

  1. پس از 31 دسامبر 2013، تأیید ابزارهای امضای الکترونیکی را برای انطباق با الزامات ابزارهای امضای الکترونیکی تأیید شده توسط دستور شماره 796 FSB روسیه مورخ 27 دسامبر 2011 متوقف کنید، در صورتی که این ابزارها اجرای عملکردها را مطابق با آن ارائه نمی کنند. با GOST R 34.10-2012.
  2. پس از 31 دسامبر 2018، استفاده از GOST R 34.10-2001 را برای تولید امضای الکترونیکی ممنوع کنید.

وزارت ارتباطات حتی طرحی برای گذار به استاندارد (PDF) ایجاد کرد. با این حال، در عمل معلوم شد که همه چیز چندان ساده نیست و انتقال باید تا 31 دسامبر 2019 به تعویق بیفتد. دلایل به شرح زیر است.

  1. بسیاری از مقامات ایالتی و شهری به دلیل عدم پشتیبانی در سطح نرم افزار آماده تغییر به استاندارد امضای الکترونیکی جدید GOST-2012 نیستند.
  2. برای صدور گواهینامه های نوع جدید، به تجهیزاتی نیاز دارید که از GOST جدید پشتیبانی می کند و یک گواهی از مرجع صدور گواهینامه که با استفاده از GOST-2012 تولید شده است. مراکز صدور گواهینامه آن را تنها در تابستان 2018 دریافت کردند. برای صدور گواهینامه برای همه کاربران زمان بیشتری لازم است.

اکنون دو استاندارد حفاظت رمزنگاری برای عملیات امضای دیجیتال استفاده می‌شود، اما کسانی که از GOST-2001 استفاده می‌کنند باید فوراً کاری انجام دهند. همانطور که می گویند زمستان در راه است و این بدان معنی است که هنگام اجرای پشتیبانی از GOST-2012 یک سری آزمایش در انتظار ما است.

من به شما خواهم گفت که چگونه یک ابزار CIPF دارای گواهی FSB (CryptoPro JCP) را در سرور لینوکساجرای جاوا JDK به هر حال، اگر هنوز از GOST-2001 استفاده می کنید، یک مورد فوق العاده در وب سایت CryptoPro وجود دارد، به شما توصیه می کنم آن را بخوانید، اضافی نخواهد بود.

تمام جریان اسناد بین شرکت کنندگان در تبادل بر اساس اصل SMEV (سیستم تعامل الکترونیکی بین بخشی) انجام می شود. یک درخواست ممکن است در چنین سیستمی شرکت کند، اما ممکن است اصلاً شرکت کننده نباشد، این اصل تبادل اسناد را تغییر نمی دهد. برای سهولت درک، نمودار کوچکی کشیدم.


قیمت ها

مثل همیشه، مسئله صدور مجوز مطرح می شود راه حل نرم افزاری. CryptoPro JCP ارزان نیست و اگر یک ایستگاه کاری 1200 روبل هزینه داشته باشد، مجوزهای سرور بسیار گرانتر هستند - حدود 30000 برای هر هسته (یا دو هسته) پردازنده اینتلبا Hyper Threading غیرفعال است).

نصب و پیکربندی یک ارائه دهنده رمزنگاری

در مثال هایی که استفاده خواهم کرد ماشین مجازیبا CentOS 7، اما انتخاب شما محدود نیست سخت افزارو توزیع لینوکس همه اعمال و دستورات یکسان خواهد بود.

اول از همه، بیایید ایجاد کنیم کاربر محلی، که تحت آن نرم افزاری که از امضای سند استفاده می کند کار خواهد کرد.

$ sudo useradd -d /opt/user -p<Тут указываем пароль>-s /bin/bash user; sudo grep user /etc/passwd

بیایید جاوا JDK را به درستی نصب کنیم. توزیع مورد نیاز را دانلود کنید.

$ wget --header "Cookie: oraclelicense=a" --content-disposition http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jd14k-8-1x198-000000. .gz -O jdk-8u191-linux-x64.tar.gz

آرشیو را باز کنید و بررسی کنید که آیا پوشه جاوا برای کپی آماده است یا خیر.

$tar zxvf jdk-8u191-linux-x64.tar.gz; ls -al;

پوشه را در بخش نرم افزار برنامه کپی کنید. من معمولا از /opt استفاده می کنم.

$ sudo cp -rf jdk1.8.0_191 /opt/

بررسی می کنیم که درست کپی شده باشد. در صورت لزوم، صاحب پوشه را به روت تغییر دهید.

$ ls -al /opt/jdk1.8.0_191/ $ sudo chown -R root:root /opt/jdk1.8.0_191/; cd /opt/jdk1.8.0_191/; ls -al;

ثبت نام می کنیم متغیرهای محیطیبرای جاوا JDK برای همه کاربران به طور پیش فرض.

$ sudo vi /etc/profile.d/oracle.sh

موارد زیر را در فایل می نویسیم:

صادرات JAVA_HOME=/opt/jdk1.8.0_191 صادرات JRE_HOME=/opt/jdk1.8.0_191/jre صادرات PATH=$PATH:/opt/jdk1.8.0_191/bin:/opt/jdk1.8.0_191/j

اگر سرور دارای چندین نسخه از Java JDK باشد، لازم است که جایگزین‌هایی برای آن ثبت شود نسخه جدید.

جایگزین‌های sudo --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 2 $ جایگزین‌های sudo --install /usr/bin/jar jar /opt/jdk1.8.0_191/bin/jar 2 جایگزین های sudo --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 2 $ جایگزین های sudo --set jar /opt/jdk1.8.0_181/bin/jar $ جایگزین های sudo --تنظیم jar /opt/jdk1.8.0_191/bin/jar $ sudo alternatives --set javac /opt/jdk1.8.0_191/bin/javac $ sudo alternatives --config java

در منو، گزینه 2 (یا گزینه ای که منجر به استفاده از نسخه جدیدتر جاوا می شود) را انتخاب کنید. فراموش نکنید که حقوق JRE systemPrefs را تصحیح کنید.

$ sudo chmod 777 -R /opt/jdk1.8.0_191/jre/.systemPrefs

چک کردن نسخه نصب شدهجاوا.

نسخه java $
نسخه جاوا "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-bit Server VM (build 25.191-b12, mixed mode)

پوشه را با کیت توزیع CryptoPro JCP در بخش نرم افزار برنامه کپی کنید.

$ sudo cp -rf jcp-2.0.40035 /opt/

ما بررسی می کنیم که همه چیز به درستی کپی شده است.

$ ls -al /opt/jcp-2.0.40035/

ما حقوق اجرای اسکریپت ها را اعطا می کنیم.

$ sudo chmod +x /opt/jcp-2.0.40035/*.sh

مالک و حقوق پوشه را بررسی می کنیم، باید روت باشد. بیایید وارد آن شویم.

$ ls -al /opt/jcp-2.0.40035/; cd /opt/jcp-2.0.40035/;

برای جلوگیری از مشکلات نصب، تعداد هسته های پردازنده را بررسی کنید و مجوز را بررسی کنید. با دستور nproc می توانید به تعداد هسته ها پی ببرید.

بیایید به نصب ارائه دهنده کریپتو JCP برویم. در حین نصب باید به تعدادی سوال پاسخ دهید.

ادامه فقط برای اعضا در دسترس است

گزینه 1. برای خواندن تمام مطالب موجود در سایت به انجمن "سایت" بپیوندید

عضویت در انجمن در مدت زمان مشخص شده به شما امکان دسترسی به تمام مطالب هکرها را می دهد، تخفیف تجمعی شخصی شما را افزایش می دهد و به شما امکان می دهد امتیاز حرفه ای Xakep را جمع آوری کنید!

  • سیستم ROSA Enterprise Linux را نصب کرد نسخه سروردر پیکربندی «سرور استاندارد ROSA» کمتر از 6.8 نباشد
  • دسترسی به مخازن
  • دستگاه Rutoken EDS/Rutoken EDS Flash/Rutoken EDS SC همراه با یک خواننده. یک گواهی باید روی دستگاه نوشته شود

برای دسترسی به مخازن، یک کلید از سرویس پشتیبانی دریافت کنید و دستور زیر را با حقوق مدیر اجرا کنید:

اکو<ключ>> /etc/rosa-support-id-server

قابلیت کاربرد

دستورالعمل ها نصب و پیکربندی برنامه های کاربردی سرور لینوکس ROSA Enterprise مورد نیاز برای احراز هویت با استفاده از امضای دیجیتال روتوکن را شرح می دهند. نمونه از معماری AMD64 استفاده می کند. برای یک سیستم 32 بیتی، تمام عملکردها تا نام پوشه ها مشابه خواهند بود.

پس از انجام مراحل زیر، احراز هویت با استفاده از Rutoken EDS امکان پذیر خواهد شد، اما اجباری نخواهد بود.

نصب قطعات

برنامه های مورد نیاز را نصب کنید و ابزارهای متناقض را حذف کنید (حقوق سرپرست مورد نیاز است):

Su yum نصب ccid opensc pam_pkcs11 gdm-plugin-smartcard yum حذف کلید خنک

کتابخانه PKCS#11 را برای Rutoken EDS نصب کنید (نصب کتابخانه بعد از نصب ابزارها مهم است):

  • به وب سایت روتوکن بروید: https://www.rutoken.ru/support/download/pkcs/.
  • برگه «کاربران گنو/لینوکس» را باز کنید و روی پیوند «rtPKCS11ecp Library for GNU/Linux RPM 64-bit (x64)» کلیک کنید.
  • بسته را دانلود و نصب کنید (گذرواژه مدیر مورد نیاز است).

تنظیمات

بررسی نمایش دستگاه در سیستم و وجود اطلاعات لازم بر روی آن

  • اجرا کنید pcscd(حقوق مدیر مورد نیاز است):
سو
  • یک فرآیند موجود را خاتمه دهید pcscd، اگر یکی بود:
killall pcsd

از این لحظه به بعد، توکن باید در شکاف مناسب وارد شود.

  • اجرا:
pcscd-adffffff
  • یک تب یا پنجره ترمینال جداگانه باز کنید و دستور زیر را در آن اجرا کنید:
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T

خروجی باید پارامترها و نام دستگاه را نشان دهد. یک نمونه خروجی در زیر نشان داده شده است.

  • با استفاده از دستور زیر بررسی کنید که توکن اطلاعات مورد نیاز را داشته باشد (رمز عبور رمز مورد نیاز است):
pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l

خروجی باید حاوی Certificate Object باشد. پارامترهایی مانند شناسه و برچسب ممکن است با پارامترهای نشان داده شده در زیر متفاوت باشد.

افزودن گواهی به مورد اعتماد

  • پایگاه داده ای از گواهی های مورد اعتماد ایجاد کنید (حقوق سرپرست مورد نیاز است):
su mkdir /etc/pam_pkcs11/nssdb chmod 0644 /etc/pam_pkcs11/nssdb certutil -d /etc/pam_pkcs11/nssdb -N (ایجاد پایگاه داده) modutil -dbdir /etc/pam_pkcs11/nssdb/ -add p11-kit-trust -libfile /usr/lib64/pkcs11/p11-kit-trust.so (این ابزار از شما می خواهد که مرورگر را غیرفعال کنید)

  • گواهی را از توکن کپی کنید (گذرواژه رمز مورد نیاز است. پارامتر ID را می توان از خروجی pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -O -l دریافت کرد):
pkcs11-tool --module=/usr/lib64/librtpkcs11ecp.so -l -r -y cert -d -o cert.crt (فرمان گواهی را در دایرکتوری فعلی به عنوان cert.crt می نویسد)

  • گواهی را به موارد مورد اعتماد اضافه کنید (حقوق سرپرست مورد نیاز است):
su cp cert.crt /etc/pki/ca-trust/source/anchors/ (فرمان از دایرکتوری که گواهی در آن قرار گرفته وارد می شود) update-ca-trust force-enable update-ca-trust استخراج (ممکن است کمی طول بکشد)

تغییر فایل های پیکربندی

برای تغییر فایل های پیکربندی به حقوق مدیر نیاز دارید.

pam_pkcs11.conf

  • یک فایل متنی pam_pkcs11.conf با محتوای زیر ایجاد کنید (به عنوان مثال، در دسکتاپ خود):
pam_pkcs11 ( nullok = false; debug = true; use_first_pass = false; use_authtok = false; card_only = false; wait_for_card = false; use_pkcs11_module = rutokenecp; # Aktiv Rutoken ECP pkcs11tokens ecp.so slot_ num = 0 support_thread = ca_dir = /etc/pam_pkcs11/crls use_mappers = داخلی;
  • فایل را در پوشه /etc/pam_pkcs11/ قرار دهید:
cd /etc/pam_pkcs11/su mv pam_pkcs11.conf pam_pkcs11.conf.default (پشتیبان گیری) mkdir cacerts crls cp /home/<имя_пользователя>/Desktop/pam_pkcs11.conf /etc/pam_pkcs11/

system-aut

  • ماژول را به سیستم مجوز PAM متصل کنید:
سو (کسب حقوق مدیر)
  • فایل system-aut را در یک ویرایشگر باز کنید نانویا mcedit:
nano /etc/pam.d/system-auth
  • خط زیر را در بالا اضافه کنید:
auth کافی pam_pkcs11.so pkcs11_module=/usr/lib64/librtpkcs11ecp.so اشکال زدایی

  • ذخیره فایل ( ) و ویرایشگر را ببندید ( ).

موضوع_نقشه

  • دستورات را اجرا کنید:
su pkcs11_inspect

  • خروجی دستور قبلی را در /etc/pam_pkcs11/subject_mapping کپی کنید و مشخص کنید گواهی متعلق به کدام کاربر است.

خط پیکربندی به صورت زیر است:

خروجی دستور pkcs11_inspect -><имя_пользователя>

تایید احراز هویت از طریق کنسول

  • یک پنجره یا تب جدید کنسول باز کنید.
  • دستور su را اجرا کنید<имя_пользователя>(نام کاربری در subject_mapping ذکر شده است).

خروجی نمونه:

پس از بررسی عملیات احراز هویت از طریق کنسول، می توانید حالت اشکال زدایی را حذف کنید. برای انجام این کار، در فایل /etc/pam.d/sysauth در خط اضافه شده کلمه debug را حذف کنید و در فایل /etc/pam_pkcs11/pam_pkcs11.conf به جای true، debug false را قرار دهید.

تنظیم قفل صفحه

  • فایل pkcs11_eventmgr را برای ویرایش باز کنید (حقوق سرپرست مورد نیاز است):
su cd /etc/pam_pkcs11/ mv pkcs11_eventmgr.conf pkcs11_eventmgr.conf.default (پشتیبان گیری) nano pkcs11_eventmgr.conf

پس از ویرایش، فایل پیکربندی باید به شکل زیر باشد:

Pkcs11_eventmgr ( # در پس‌زمینه اجرا می‌شود؟ به معنای اشکال‌زدایی=نادرست اگر شبح واقعی = درست است؛ # نمایش پیام‌های اشکال‌زدایی؟ اشکال زدایی = نادرست؛ # زمان نظرسنجی در ثانیه polling_time = 1؛ # زمان انقضا در ثانیه # پیش‌فرض = 0 (بدون انقضا) زمان انقضا = 0; ماژول # pkcs11 برای استفاده از pkcs11_module = /usr/lib64/librtpkcs11ecp.so # # لیست رویدادها و اقدامات # درج کارت رویداد ( # اگر عملی انجام نشد؟ # نادیده گرفته شود: به اقدام بعدی ادامه دهید # بازگشت: دنباله اقدام پایانی # خروج: پایان برنامه on_error = نادیده گرفتن نادرست"؛))

  • یک ابزار کاربردی اضافه کنید pkcs11_eventmgrبه راه اندازی برای انجام این کار، فایل .bash_profile کاربر احراز هویت شده را ویرایش کنید:
نانو /خانه/<имя_пользователя>/.bash_profile
  • یک خط به انتهای فایلی که اجرا می شود اضافه کنید pkcs11_eventmgr.

نمونه ای از فایل .bash_profile پس از ویرایش:

هنگامی که احراز هویت رمز را انتخاب می کنید، صفحه چیزی شبیه به این خواهد بود.

احراز هویت دو مرحله ای (2FA) یک روش احراز هویت است که به شما امکان می دهد وارد شوید حساب کاربرییا دستگاه نیاز به چند قطعه اطلاعات دارد. علاوه بر ترکیب نام کاربری و رمز عبور، 2FA نیاز به ورود کاربر دارد اطلاعات اضافی، مانند یک رمز عبور یک بار مصرف (OTP، مانند یک کد تأیید شش رقمی).

به طور کلی، 2FA از کاربر می خواهد که انواع مختلفی از اطلاعات را وارد کند:

  • چیزی که کاربر می داند (مانند رمز عبور)
  • چیزی که کاربر دارد (به عنوان مثال، یک کد تأیید ایجاد شده توسط یک برنامه خاص - یک احراز هویت).

2FA زیرمجموعه ای از احراز هویت چند عاملی (MFA) است. روش MFA، علاوه بر آنچه کاربر می داند و دارد، نیازمند چیزی است که او هست. این داده های بیومتریک است: اثر انگشت یا تشخیص صدا و غیره.

2FA به محافظت از فرآیند احراز هویت برای یک سرویس یا دستگاه خاص کمک می کند: حتی اگر رمز عبور به خطر بیفتد، مهاجم نیز به کد امنیتی نیاز دارد و این مستلزم دسترسی به دستگاه کاربر است که در آن برنامه احراز هویت در آن قرار دارد. به همین دلیل، بسیاری از سرویس های آنلاین گزینه فعال کردن 2FA برای حساب های کاربری را برای افزایش امنیت حساب در سطح احراز هویت ارائه می دهند.

در این آموزش، نحوه راه اندازی 2FA با استفاده از ماژول Google PAM برای یک کاربر غیر روت در اوبونتو 18.04 را خواهید آموخت. از آنجایی که شما در حال تنظیم 2FA برای یک کاربر غیر روت هستید، در صورت قفل شدن، همچنان می‌توانید از حساب ریشه خود به رایانه دسترسی داشته باشید. دستورالعمل‌های موجود در دفترچه راهنما کاملاً کلی هستند، بنابراین می‌توان آن‌ها را هم روی سرورها و هم برای نصب دسک‌تاپ، هم محلی و هم از راه دور اعمال کرد.

الزامات

  • سرور اوبونتو 18.04 یا دسکتاپ محیط کار. سرور اوبونتو 18.04 باید با پیکربندی شود.
  • یک احراز هویت نصب شده در دستگاه تلفن همراه (به عنوان مثال، Google Authenticator یا Authy). با آن کدهای امنیتی QR را اسکن خواهید کرد.

1: نصب ماژول Google PAM

برای راه اندازی 2FA در اوبونتو 18.04، باید ماژول Google PAM را برای لینوکس نصب کنید. ماژول تأیید اعتبار Pluggable (PAM) یک مکانیسم احراز هویت است که توسط لینوکس استفاده می شود. ماژول Google PAM به کاربر شما این امکان را می دهد تا با استفاده از کدهای OTP تولید شده توسط Google، احراز هویت 2FA را تکمیل کند.

ابتدا به عنوان کاربر sudo که در طی آن ایجاد کردید وارد شوید راه اندازی اولیهسرورها:

ssh 8host@your_server_ip

برای دریافت، فهرست بسته اوبونتو را به روز کنید آخرین نسخهاحراز هویت:

به روز رسانی sudo apt-get

پس از به روز رسانی مخازن، آخرین نسخه ماژول PAM را نصب کنید:

sudo apt-get نصب libpam-google-authenticator

این یک بسته بسیار کوچک بدون وابستگی است، بنابراین نصب چند ثانیه طول می کشد. در قسمت بعدی 2FA را برای کاربر sudo پیکربندی می کنیم.

2: احراز هویت دو مرحله ای را تنظیم کنید

اکنون که ماژول PAM را نصب کردید، آن را اجرا کنید تا یک کد QR برای کاربر وارد شده ایجاد شود. این کد را تولید می کند، اما محیط اوبونتو تا زمانی که آن را فعال نکنید، به 2FA نیاز نخواهد داشت.

دستور google-authenticator را برای راه اندازی و پیکربندی ماژول PAM اجرا کنید:

google-authenticator

تیم از شما سوالاتی در مورد پیکربندی می پرسد. ابتدا از شما می پرسد که آیا می خواهید توکن ها دارای محدودیت زمانی باشند. توکن‌های احراز هویت با محدودیت زمانی پس از یک بازه زمانی مشخص منقضی می‌شوند (پیش‌فرض در اکثر سیستم‌ها 30 ثانیه است). توکن‌های محدود به زمان نسبت به توکن‌های با محدودیت زمانی امن‌تر هستند و اکثر پیاده‌سازی‌های 2FA از آن‌ها استفاده می‌کنند. در اینجا می‌توانید یکی از گزینه‌ها را انتخاب کنید، اما توصیه می‌کنیم بله را انتخاب کنید و از نشانه‌های تأیید اعتبار با زمان محدود استفاده کنید:

آیا می خواهید توکن های احراز هویت مبتنی بر زمان (y/n) y باشند؟

با پاسخ y به این سوال، چندین خط خروجی را در کنسول خواهید دید:

  • کد QR: این کدی است که باید با استفاده از یک برنامه احراز هویت اسکن شود. هنگامی که آن را اسکن کردید، برنامه هر 30 ثانیه یک OTP جدید تولید می کند.
  • کلید مخفی: این راه جایگزینتنظیمات برنامه احراز هویت اگر از برنامه‌ای استفاده می‌کنید که از اسکن QR پشتیبانی نمی‌کند، می‌توانید یک کلید مخفی برای تنظیم احراز هویت وارد کنید.
  • کد تأیید: این اولین کد شش رقمی است که این کد QR خاص تولید می کند.
  • کدهای خراش اضطراری اینها توکن‌های یکبار مصرف هستند (که کدهای پشتیبان نیز نامیده می‌شوند) و به شما امکان می‌دهند در صورت گم کردن دستگاه احراز هویت، احراز هویت 2FA را تکمیل کنید. برای جلوگیری از تعلیق حساب، این کدها را در مکانی امن نگه دارید.

هنگامی که برنامه احراز هویت خود را راه اندازی کردید و برنامه خود را ذخیره کردید کدهای پشتیباندر یک مکان امن، برنامه از شما می پرسد که آیا می خواهید فایل پیکربندی را به روز کنید. اگر n را انتخاب کنید، باید برنامه Setup را دوباره اجرا کنید. y را برای ذخیره تغییرات تایپ کنید و ادامه دهید:

آیا می خواهید فایل "~/.google_authenticator" (y/n) y شما را به روز کنم؟

در مرحله بعد، برنامه از شما می پرسد که آیا می خواهید از بیش از یک بار استفاده از کدهای احراز هویت جلوگیری کنید. به طور پیش فرض، شما فقط می توانید از هر کد یک بار استفاده کنید، حتی اگر 30 ثانیه از ایجاد آن نگذشته باشد. این امن‌ترین انتخاب است زیرا از حملات مجدد مهاجمی که به نحوی موفق به دریافت کد تأیید استفاده شده شما شده است جلوگیری می‌کند. به همین دلیل، بهتر است استفاده از کدها را بیش از یک بار ممنوع کنید. برای جلوگیری از استفاده چندگانه از یک نشانه، به y پاسخ دهید:

آیا می خواهید چندین بار از یک احراز هویت را مجاز نکنید؟
نشانه؟ این شما را به یک ورود در هر 30 ثانیه محدود می کند، اما افزایش می یابد
شانس شما برای متوجه شدن یا حتی جلوگیری از حملات انسان در وسط (y/n) y

سپس باید مشخص کنید که آیا می‌خواهید توکن‌های احراز هویت مدتی پس از تاریخ انقضای عادی خود پذیرفته شوند یا خیر. کدها به زمان بسیار حساس هستند، بنابراین اگر دستگاه‌های شما همگام‌سازی نشده باشند، ممکن است کار نکنند. این گزینه با افزایش مدت اعتبار پیش‌فرض کدهای راستی‌آزمایی، این مشکل را برطرف می‌کند تا در هر صورت کدهای احراز هویت پذیرفته شوند (حتی اگر دستگاه‌های شما موقتاً همگام نباشند). بهتر است مطمئن شوید که زمان در همه دستگاه‌های شما هماهنگ است، زیرا پاسخ مثبت کمی امنیت سیستم را کاهش می‌دهد. برای جلوگیری از افزایش تاریخ انقضای توکن به این سوال پاسخ دهید:

به طور پیش فرض، توکن ها برای 30 ثانیه و به منظور جبران خوب هستند
زمان ممکن بین کلاینت و سرور، ما اجازه می دهیم یک زمان اضافی
توکن قبل و بعد از زمان فعلی اگر مشکل دارید با ضعیف تجربه کنید
همگام سازی زمان، می توانید پنجره را از پیش فرض آن افزایش دهید
اندازه 1:30 دقیقه تا حدود 4 دقیقه آیا می خواهید این کار را انجام دهید (y/n) n

آخرین سوال این است که آیا می خواهید محدودیتی در تعداد تلاش برای ورود فعال کنید؟ این کار باعث می‌شود که کاربر در عرض 30 ثانیه بیش از سه بار ورود ناموفق انجام دهد و در نتیجه امنیت سیستم را تقویت کند. این محدودیت را با پاسخ y فعال کنید:

اگر رایانه‌ای که به آن وارد می‌شوید در برابر brute-force سخت نشده است
تلاش برای ورود به سیستم، می‌توانید محدودیت نرخ را برای ماژول احراز هویت فعال کنید.
به‌طور پیش‌فرض، این مهاجمان را به حداکثر ۳ بار تلاش برای ورود در هر ۳۰ ثانیه محدود می‌کند.
آیا می خواهید محدودیت نرخ (y/n) y را فعال کنید؟

شما با استفاده از ماژول PAM کدهای 2FA را پیکربندی و تولید کرده اید. اکنون باید 2FA را در محیط خود فعال کنید.

3: 2FA را در اوبونتو فعال کنید

ماژول Google PAM اکنون کدهای 2FA را برای کاربر شما تولید می کند، اما سیستم اوبونتو هنوز نمی داند که باید از کدها در فرآیند احراز هویت استفاده کند. در این مرحله، باید پیکربندی اوبونتو خود را به‌روزرسانی کنید تا علاوه بر احراز هویت اولیه، پشتیبانی از توکن‌های 2FA را نیز پیکربندی کنید.

در اینجا دو راه وجود دارد:

  1. شما می‌توانید هر بار که کاربر وارد سیستم می‌شود و هر بار که کاربر حقوق sudo را درخواست می‌کند، به احراز هویت دو مرحله‌ای نیاز داشته باشید.
  2. شما فقط می توانید در حین ورود به سیستم 2FA نیاز داشته باشید، سپس در صورت درخواست حقوق sudo، فقط رمز عبور کاربر مورد نیاز خواهد بود.

گزینه اول برای یک محیط مشترک که در آن مطلوب است از هر گونه اقدامی که به امتیازات sudo نیاز دارد محافظت شود ایده آل است. رویکرد دوم برای یک محیط دسکتاپ محلی که در آن شما تنها کاربر سیستم هستید، عملی تر است.

توجه داشته باشیدتوجه: اگر 2FA را در دستگاه راه دوری که از طریق SSH به آن دسترسی دارید فعال می‌کنید، قبل از ادامه باید مراحل دو و سه را از دفترچه راهنما تکمیل کنید. بقیه مراحل این آموزش برای تمام نصب های اوبونتو اعمال می شود، اما محیط های راه دور نیاز دارند تنظیمات اضافیبه طوری که سرویس SSH از 2FA اطلاع داشته باشد.

اگر از SSH برای دسترسی استفاده نمی کنید نصب اوبونتو، می توانید مستقیماً به بقیه مراحل این آموزش بروید.

هنگام ورود به سیستم و بالا بردن امتیازات sudo، 2FA را درخواست کنید

برای اینکه سیستم در هنگام ورود به سیستم و درخواست‌های افزایش امتیازات بعدی از 2FA استفاده کند، باید فایل /etc/pam.d/common-auth را با افزودن یک خط به انتهای فایل موجود ویرایش کنید.

فایل مشترک تایید برای همه مکانیسم های احراز هویت در سیستم، صرف نظر از محیط مورد استفاده اعمال می شود. همچنین در مورد درخواست‌های احراز هویت که پس از ورود کاربر به سیستم وارد می‌شوند، اعمال می‌شود، مانند زمانی که هنگام نصب یک بسته جدید از یک ترمینال، از حقوق sudo خواسته می‌شود.

فایل را باز کنید:

sudo nano /etc/pam.d/common-auth

در پایان فایل اضافه کنید:

...
# و در اینجا ماژول های بیشتری برای هر بسته وجود دارد (بلوک "اضافی")
جلسه مورد نیاز pam_unix.so


این خط احراز هویت اوبونتو را قادر می سازد تا هنگام ورود از طریق ماژول Google PAM از 2FA پشتیبانی کند. گزینه nullok به کاربران موجود اجازه می دهد حتی اگر احراز هویت 2FA را برای حساب خود پیکربندی نکرده باشند، وارد شوند. به عبارت دیگر، کاربرانی که 2FA را راه‌اندازی کرده‌اند، باید دفعه بعد که وارد سیستم می‌شوند، کد احراز هویت را وارد کنند، در حالی که کاربرانی که دستور google-authenticator را اجرا نکرده‌اند، می‌توانند با اعتبار استاندارد خود تا زمانی که تنظیم کنند وارد سیستم شوند. تا 2FA.

فایل را ذخیره کرده و ببندید.

فقط هنگام ورود به سیستم، 2FA را درخواست کنید

اگر می خواهید هنگام ورود به محیط دسکتاپ فقط 2FA درخواست شود، باید فایل پیکربندی مدیر دسکتاپ مورد استفاده خود را ویرایش کنید. نام فایل پیکربندی معمولاً با نام محیط دسکتاپ یکی است. برای مثال، فایل پیکربندی gdm (محیط پیش‌فرض اوبونتو که با اوبونتو 16.04 شروع می‌شود) /etc/pam.d/gdm است.

در مورد سرور بدون هد (که است سرور مجازی)، در عوض باید فایل /etc/pam.d/common-session را ویرایش کنید. بسته به محیط خود فایل مناسب را باز کنید:

sudo nano /etc/pam.d/common-session

خطوط هایلایت شده را به انتهای فایل اضافه کنید:

#
# /etc/pam.d/common-session - ماژول های مربوط به جلسه مشترک برای همه سرویس ها
#
...
# # و در اینجا ماژول های بیشتری برای هر بسته وجود دارد (بلوک "اضافی")
جلسه مورد نیاز pam_unix.so
جلسه اختیاری pam_systemd.so
# پایان پیکربندی pam-auth-update
احراز هویت الزامی است pam_google_authenticator.so nullok

زمانی که کاربر از طریق خط فرمان (به صورت محلی یا از راه دور از طریق SSH) به سیستم متصل می شود، اوبونتو اکنون به 2FA نیاز دارد، اما این برای اجرای دستورات با sudo صدق نمی کند.

شما اوبونتو را برای پشتیبانی از 2FA پیکربندی کرده اید. اکنون زمان آن است که پیکربندی را آزمایش کنید و مطمئن شوید که هنگام ورود به سیستم اوبونتو، یک کد امنیتی از شما خواسته می شود.

4: تست احراز هویت دو مرحله ای

قبلاً 2FA را برای تولید کدها در هر 30 ثانیه پیکربندی کرده بودید. اکنون سعی کنید وارد محیط اوبونتو خود شوید.

ابتدا از سیستم خارج شوید و دوباره وارد محیط اوبونتو شوید:

ssh 8host@your_server_ip

اگر از احراز هویت مبتنی بر رمز عبور استفاده می کنید، از شما خواسته می شود رمز عبور کاربر را وارد کنید:

توجه داشته باشید: اگر از احراز هویت گواهی در سرور راه دور استفاده می کنید، رمز عبور از شما خواسته نمی شود. کلید به صورت خودکار ارسال و پذیرفته می شود. فقط باید کد تایید را وارد کنید.

رمز عبور خود را وارد کنید و از شما خواسته می شود کد 2FA خود را وارد کنید:

کد تایید:

پس از این شما وارد سیستم خواهید شد:

8host@your_server_ip: ~#

اگر 2FA فقط برای اهداف ورود فعال بود، دیگر نیازی به وارد کردن کدهای تأیید 2FA نخواهید داشت تا زمانی که جلسه شما به پایان برسد یا به صورت دستی از سیستم خارج شوید.

اگر 2FA را از طریق فایل تایید مشترک فعال کرده باشید، هر زمان که امتیازات sudo را درخواست کردید، از شما خواسته می شود که آن را نیز ارائه دهید:

8host@your_server_ip: ~# sudo -s
پسورد sudo برای 8host:
کد تایید:
root@your_server_ip:

شما تأیید کرده اید که پیکربندی 2FA همانطور که انتظار می رود کار می کند. اگر مشکلی پیش آمد و سیستم از شما کدهای تأیید را درخواست نکرد، به بخش سوم راهنما برگردید و مطمئن شوید که ویرایش کرده اید. فایل صحیحاحراز هویت اوبونتو

5: جلوگیری از مسدود شدن 2FA

در صورت مفقود شدن یا از بین رفتن دستگاه تلفن همراهارائه روش ها مهم است پشتیبان گیریبرای بازیابی دسترسی به حساب دارای 2FA فعال. هنگامی که برای اولین بار 2FA را راه اندازی می کنید، چندین گزینه برای بازیابی دسترسی پس از مسدود شدن دارید:

  • ذخیره کنید نسخه پشتیبانکدهای پیکربندی مخفی شما در مکانی امن. می توانید این کار را به صورت دستی انجام دهید، اما برخی از برنامه های احراز هویت مانند Authy ویژگی های پشتیبان کد را ارائه می دهند.
  • کدهای بازیابی خود را در مکانی امن خارج از محیط دارای 2FA ذخیره کنید که در صورت نیاز بتوانید به آن دسترسی داشته باشید.

اگر به دلایلی به گزینه های پشتیبان خود دسترسی ندارید، می توانید راه دیگری را برای بازگرداندن دسترسی به محیط محلی یا سرور راه دور دارای 2FA امتحان کنید.

6: بازیابی دسترسی به محیط محلی (اختیاری)

اگر دارید دسترسی فیزیکیبرای غیرفعال کردن 2FA، می توانید به دستگاه بازیابی کنید. حالت بازیابی یک نوع هدف (مانند سطح اجرا) در لینوکس است که برای انجام کارهای اداری استفاده می شود. برای ورود به حالت بازیابی، باید برخی تنظیمات را در GRUB ویرایش کنید.

برای دسترسی به GRUB، ابتدا کامپیوتر خود را مجددا راه اندازی کنید:

وقتی منوی GRUB ظاهر شد، مطمئن شوید که ورودی اوبونتو هایلایت شده است. این نام پیش‌فرض نصب 18.04 است، اما اگر بعد از نصب آن را به صورت دستی تغییر دهید، ممکن است متفاوت باشد.

سپس کلید e را روی صفحه کلید خود فشار دهید تا تنظیمات GRUB را قبل از بوت کردن سیستم خود ویرایش کنید.

به انتهای فایلی که ظاهر می شود بروید و خطی را که با لینوکس شروع شده و با $vt_handoff ختم می شود را پیدا کنید. به انتهای این خط رفته و systemd.unit=rescue.target را اضافه کنید. مطمئن شوید که بین $vt_handoff و systemd.unit=rescue.target فاصله گذاشته اید. این به دستگاه اوبونتو اجازه می دهد تا به حالت بازیابی راه اندازی شود.

پس از ایجاد تغییرات، فایل را با استفاده از کلیدهای ترکیبی Ctrl + X ذخیره کنید خط فرمان. Enter را فشار دهید تا وارد حالت بازیابی شوید.

هنگامی که در خط فرمان قرار گرفتید، فایل پیکربندی Google Authenticator را که در فهرست اصلی کاربر مسدود شده قرار دارد، باز کنید.

nano /home/8host/.google-authenticator

اولین خط در این فایل کلید مخفی کاربر است که برای پیکربندی authenticator استفاده می شود.

حالا شما دو گزینه دارید:

  1. می توانید کلید مخفی را کپی کرده و احراز هویت کننده را پیکربندی کنید.
  2. اگر می‌خواهید با یک صفحه تمیز شروع کنید، می‌توانید فایل ~/.google-authenticator را به طور کامل حذف کنید تا 2FA برای آن کاربر غیرفعال شود. پس از ورود مجدد، می توانید دوباره 2FA را راه اندازی کنید و یک کلید مخفی جدید دریافت کنید.

در هر صورت، می توانید سیستم را پس از مسدود شدن توسط 2FA در یک محیط محلی با استفاده از بوت لودر GRUB بازیابی کنید. در مرحله بعد، نحوه بازگرداندن دسترسی به یک محیط راه دور مسدود شده را به شما خواهیم گفت.

7: بازیابی دسترسی به یک محیط راه دور (اختیاری)

اگر حساب sudoer شما در یک محیط راه دور قفل شده است، می توانید با استفاده از کاربر root به طور موقت 2FA را غیرفعال یا پیکربندی مجدد کنید.

ورود به عنوان root:

ssh root@your_server_ip

پس از ورود فایل را باز کنید تنظیمات گوگل Authenticator که در فهرست اصلی کاربر مسدود شده قرار دارد:

sudo nano /home/8host/.google_authenticator

اولین خط در این فایل کلید مخفی کاربر است که برای پیکربندی authenticator باید آن را تنظیم کنید.

حالا شما دو گزینه دارید:

  1. اگر می‌خواهید یک دستگاه جدید یا پاک شده راه‌اندازی کنید، می‌توانید از کلید مخفی برای پیکربندی مجدد برنامه احراز هویت استفاده کنید.
  2. اگر می خواهید تازه شروع کنید، می توانید فایل /home/8host/.google_authenticator را به طور کامل حذف کنید تا 2FA برای آن کاربر غیرفعال شود. پس از ورود به عنوان کاربر sudo، می توانید دوباره 2FA را راه اندازی کنید و یک کلید خصوصی جدید دریافت کنید.

با هر یک از این گزینه ها، می توانید با استفاده از یک حساب کاربری ریشه، از ممنوعیت تصادفی 2FA بازیابی کنید.

نتیجه گیری

در این آموزش، شما 2FA را بر روی یک دستگاه اوبونتو 18.04 راه اندازی می کنید. احراز هویت دو مرحله ای یک لایه حفاظتی اضافی برای حساب شما و سیستم به طور کلی فراهم می کند. علاوه بر اعتبار استاندارد خود، برای ورود به سیستم باید یک کد تأیید اضافی نیز وارد کنید. این امر دسترسی افراد غیرمجاز به حساب شما را غیرممکن می‌کند، حتی اگر مهاجمی بتواند اعتبار شما را به دست آورد.

برچسب ها: ,

لینوکس- این یک محیط چند کاربره است و برای اینکه کاربر بتواند در سیستم شروع به کار کند، باید مراحل احراز هویت را طی کند. PAM (ماژول های احراز هویت قابل اتصال) یک سیستم (مکانیسم) است که کار پیاده سازی رویه های احراز هویت را بر عهده می گیرد. قبل از ظهور PAM، توسعه دهندگان برنامه هایی که به نوعی با احراز هویت مرتبط بودند باید برنامه خود را با مکانیسم های احراز هویت موجود تطبیق دهند. بر این اساس، اگر مکانیسم‌های احراز هویت تغییر می‌کردند، لازم بود برنامه‌هایی که از آن‌ها استفاده می‌کردند تغییر کنند. بنابراین سیستمی توسعه یافت PAM، که یک "لایه" بین برنامه ها و مکانیسم های احراز هویت است. یعنی اکنون برنامه های احراز هویت (مثلاً برنامه ورود به سیستم) فقط باید بتواند با سیستم کار کند PAM. برنامه انتقال می دهد PAMپارامترها (به عنوان مثال، ورود و رمز عبور) و آن (برنامه) دیگر "علاقه مند" نیست که کدام روش احراز هویت در سیستم پیاده سازی شده است - احراز هویت با رمز عبور یا کارت هوشمند یا روش دیگری. کارهای بیشتر PAMو موفقیت یا شکست را به برنامه برمی گرداند.

بیایید به سیستم نگاه کنیم PAMجزئیات بیشتر توابع یا اقدامات یا وظایف اصلی که سیستم انجام می دهد PAM- به چهار گروه تقسیم می شوند که نام های خاصی دارند:

گروه اعتبار- اینها اقداماتی هستند که مستقیماً با احراز هویت مرتبط هستند. یعنی اعمال یا کارکردهایی که به شما امکان می‌دهد تشخیص دهید که شما هستید. این می تواند احراز هویت رمز عبور، احراز هویت کارت هوشمند، احراز هویت بیومتریک (اثر انگشت و غیره) و موارد دیگر باشد.

گروه حساب کاربری- اینها اقدامات مربوط به مدیریت حساب هستند. به عنوان مثال، حتی اگر در سیستم احراز هویت شده باشید، حساب شما می‌تواند در ساعات خاصی از روز ممنوع شود. یا اجازه ورود در حالت کنسول را بدهید، اما ورود در حالت گرافیکی را ممنوع کنید. و غیره

گروه جلسه- اقدامات این گروه منابع لازم برای کار را به کاربر اختصاص می دهد. ساده ترین مثال، اجازه نصب دایرکتوری ها است.

گروه رمز عبور- اقداماتی که تغییرات را در داده های احراز هویت کاربر اعمال می کند. اغلب اینها اقداماتی برای مدیریت رمزهای عبور کاربر هستند.

تمام این اقدامات یا رویه ها (توابع) در قالب ماژول های جداگانه ای اجرا می شوند که در دایرکتوری قرار دارند. /lib/security/. یعنی می توان گفت ماژول های گروهی وجود دارد اعتبار، ماژول های گروهی حساب کاربریو غیره بر این اساس، سیستم PAMماژولار است و اگر نیاز به اجرای احراز هویت بیومتریک دارید، فقط باید ماژولی را نصب کنید که بتواند این روش را انجام دهد.

فایل پیکربندی سیستم اصلی PAM- این یک فایل است /etc/pam.conf. علاوه بر فایل /etc/pam.conf، تنظیمات PAMدر فایل های دایرکتوری ذخیره می شود /etc/pam.d/. داخل کاتالوگ وجود دارد فایل های متنیکه شامل دنباله ای از اقدامات (الگوریتم خاصی) برای برنامه هایی است که استفاده می کنند PAM. مثلا فایل /etc/pam.d/loginشامل الگوریتم عملیات سیستم است PAMبرای برنامه ورود به سیستم، و فایل /etc/pam.d/passwdبرای برنامه passwd.

ابتدا به فرمت فایل نگاه می کنیم /etc/pam.conf. فایل شامل خطوط است. فایل می تواند از یک خط تشکیل شده باشد، یا می تواند شامل چندین خط باشد که به زنجیره ای از اقدامات متوالی اضافه می شود. هر خط یک قانون یا یک مرحله از چنین زنجیره ای (الگوریتم) را توصیف می کند. این خط از چهار فیلد تشکیل شده است. فیلد اول نام برنامه ای است که این مرحله برای آن اعمال می شود. فیلد دوم نوع عمل ( اعتبار, حساب کاربری, جلسه, رمز عبور). فیلد سوم فیلدی است که رفتار سیستم در آن تنظیم می شود PAMپس از تکمیل این مرحله در این مرحله از الگوریتم (در ادامه با جزئیات بیشتر به این موضوع خواهیم پرداخت). قسمت چهارم نام فایل ماژول است. این خط همچنین ممکن است حاوی برخی از پارامترهای ارسال شده به ماژول باشد.

ساختار فایل های موجود در دایرکتوری /etc/pam.d/، همان تنها تفاوت عدم وجود اولین فیلد - نام است. از آنجایی که نام برنامه از نام خود فایل گرفته شده است. بیایید به نمونه ای از چنین فایلی نگاه کنیم. بیا بهش زنگ بزنیم testpam.

auth کافی pam_rootok.so
pam_unix.so مورد نیاز است
حساب کاربری مورد نیاز pam_unix.so

بیایید به خط اول نگاه کنیم. میدان اعتبارمی گوید اولین مرحله احراز هویت است. فیلد سوم ماژولی است که احراز هویت را انجام می دهد و نتیجه اجرا را برمی گرداند. در این مثال، ماژول pam_rootok.soبررسی می کند که آیا حساب کاربری روت است ( ریشه). اگر بله، موفقیت (درست) برگردانده می شود، اگر نه، خطا یا شکست (نادرست) برگردانده می شود. میدان دوم واکنش یا تاثیر نتیجه بر روی زنجیره به عنوان یک کل است.

واکنش می تواند چهار نوع باشد: مورد نیاز است, مورد نیاز, اختیاری, کافی. با استفاده از خط مثال auth کافی pam_rootok.soبیایید ببینیم این مقادیر به چه معنا هستند.

اگر فیلد دوم روی مورد نیاز، پس این بدان معنی است که اگر ماژول pam_rootok.soبا یک خطا تکمیل شد، سپس فایل را بیشتر اجرا کنید testpamسیستم قطع می شود PAMیک خطا را به برنامه برمی گرداند. اگر ماژول برگردانده شود نتیجه مثبت، سپس اجرای زنجیره ادامه می یابد.

مورد نیاز استشبیه به مورد نیاز. اگر ماژول pam_rootok.soپس با یک خطا به پایان رسید PAMهمچنین یک خطا برمی‌گرداند، اما پس از اجرای ماژول‌های باقی‌مانده، یعنی زنجیره قطع نمی‌شود. اگر ماژول یک نتیجه مثبت را برگرداند، اجرای زنجیره ادامه می یابد.

کافی- اگر ماژول pam_rootok.soبازگشت موفقیت، سپس سیستم PAMموفقیت را به برنامه برمی گرداند و اجرای بعدی زنجیره قطع می شود. در صورت شکست، زنجیره به اجرای خود ادامه می دهد.

اختیاری- این پارامتر به هیچ وجه بر پیشرفت زنجیره تأثیر نمی گذارد. برای آن دسته از ماژول هایی که هیچ اقدام تأییدی انجام نمی دهند نشان داده شده است. اگر فایل فقط شامل خطوط با پارامتر باشد اختیاری، آن PAMبرنامه را به موفقیت باز می گرداند.

جزئیات بیشتر در مورد سیستم PAMو هدف یک کتابخانه خاص را می توان در وب سایت http://kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_SAG.html خواند. حالا بیایید یک تمرین عملی کوچک انجام دهیم که به ما امکان می دهد تا نحوه عملکرد سیستم را بهتر درک کنیم. PAMو نحوه ایجاد فایل های پیکربندی

به دایرکتوری بروید /etc/pam.d/. فایل را کپی کنید سوبه فهرست اصلی خود (تا بتوانید آن را بازیابی کنید) و فایل را حذف کنید سواز دایرکتوری /etc/pam.d/. حالا دستور را امتحان کنید سودر ترمینال برای تغییر به حالت superuser. پس از وارد کردن رمز عبور، سیستم یک خطای احراز هویت را نشان می دهد زیرا فایل پیکربندی برنامه وجود ندارد. سو.

یک فایل ایجاد کنید /etc/pam.d/suو خط زیر را در آن بنویسید:

ماژول pam_deny.soهمیشه یک خطا برمی گرداند نتیجه چه خواهد شد؟ آن را بررسی کنید. و اگر جایگزین کنید مورد نیازدر مورد نیاز است?
حالا بیایید قانون زیر را در فایل بنویسیم:

ماژول pam_wheel.soاگر حساب کاربری متعلق به گروه باشد، موفقیت را برمی‌گرداند چرخ. اگر اکنون سعی کنید دستور را اجرا کنید سو، سپس بلافاصله با یک خطا به پایان می رسد. یعنی الان تیم سوفقط کاربرانی که عضو گروه هستند قادر به اجرا خواهند بود چرخو رمز عبور حساب را بدانید ریشه. اگر یک گروه ایجاد کنید چرخو اکانت خود را در آنجا اضافه کنید، سپس دستور سوکار خواهد کرد.

این هم یک مثال دیگر:

احراز هویت مورد نیاز pam_wheel.so
pam_permit.so مورد نیاز است

سعی کنید پاسخ دهید چه کسی می تواند فرمان را با موفقیت اجرا کند سوو برای این کار چه باید کرد؟
این تمرین عملی را به پایان می رساند (فراموش نکنید که آن را به جای خود برگردانید فایل اصلیسو).

من می خواهم یک بار دیگر تأکید کنم که فایل های پیکربندی در فهرست /etc/pam.d/ فقط برای فایل هایی که از سیستم استفاده می کنند قابل ایجاد هستند. PAM. به عنوان مثال، اگر شما یک فایل ایجاد کنید /etc/pam.d/lsبا رشته مورد نیاز pam_deny.so، سپس دستور lsهمچنان اجرا می شود زیرا از سیستم استفاده نمی کند PAM. برای بررسی اینکه آیا یک تیم از سیستم PAM استفاده می کند، می توانید از دستور استفاده کنید ldd، که مسیر کامل فایل فرمان به عنوان پارامتر ارسال می شود. به عنوان مثال:

کلمه کلیدی سازگارفقط "می گوید" که سیستم به عنوان یک سیستم احراز هویت استفاده خواهد شد PAM.

و یه چیز دیگه هنگام آزمایش مراقب باشید PAM. از طریق ناآگاهی یا بی دقتی می توانید به راحتی سیستم خود را مسدود کنید. بنابراین، قبل از تغییر هر چیزی، حتما فایل های پیکربندی اصلی را ذخیره کنید تا در صورت بروز مشکل بتوانید به سرعت آنها را بازیابی کنید.

© 2024 ermake.ru -- درباره تعمیر رایانه شخصی - پورتال اطلاعاتی