Аппараттық және бағдарламалық қамтамасыз етуді орнату

Skzi қашықтағы пайдаланушы аутентификациясы linux. Linux жүйесіндегі CryptoPro JCP

Бұл постта біз аутентификацияның екінші факторы ретінде смарт-карталарды және JaCarta PKI USB таңбалауыштарын пайдалана отырып, Linux жүйесінде домен аутентификациясы туралы сөйлесуді шештік. Егер PAM модулі арқылы жергілікті аутентификация туралы ақпарат өте көп болса, Linux жүйесінде Kerberos билеттерін пайдалана отырып, домендік инфрақұрылым мен аутентификация мәселесі нашар қарастырылады, әсіресе орыс тілінде. Ретінде операциялық жүйеМұны көрсету үшін Astra Linux-ті алайық және Astra Linux Directory (ALD) мысалын қолданайық.

Мұндай шешімнің артықшылығы айқын - бұл пайдаланушының құпия сөзімен аутентификациядан бас тартуға мүмкіндік береді, бұл жүйенің қауіпсіздігіне «адам факторының» әсерін күрт төмендетуге көмектеседі. Сонымен қатар, бұл доменде аутентификациядан кейін операциялық жүйеде электрондық кілттерді пайдаланудың бірқатар артықшылықтарын береді.

Astra Linux Directory (ALD) және JaCarta PKI туралы кішкене кіріспе

Домен Astra Linux каталогы (ALD)ұйымдастыруға арналған жалғыз кеңістікавтоматтандырылған жүйелердегі пайдаланушылар (жергілікті желі домені).

ALD LDAP, Kerberos5, Samba/CIFS технологияларын пайдаланады және мыналарды қамтамасыз етеді:

  • пайдаланушылар мен топтардың есептік жазбаларын орталықтандырылған сақтау және басқару;
  • Kerberos5 хаттамасы арқылы домендегі пайдаланушылардың түпкілікті аутентификациясы;
  • Samba/CIFS арқылы қолжетімді үй каталогтарының ғаламдық репозиторийінің жұмыс істеуі;
  • UNIX, LDAP, Kerberos, Samba, PAM автоматты конфигурация файлдары;
  • LDAP және Kerberos дерекқор сәйкестігін қолдау;
  • қалпына келтіру мүмкіндігімен LDAP және Kerberos дерекқорларының резервтік көшірмелерін жасау;
  • тарату ДҚБЖ, серверлер енгізілген доменге интеграция Электрондық пошта, Веб-серверлер, басып шығару серверлері және т.б.

Қоршаған ортада Astra Linux каталогы (ALD)электрондық кілттер JaCarta PKIдомендегі пайдаланушының екі факторлы аутентификациясы үшін пайдаланылуы мүмкін ALDжәне құпия сөздер жоқ. Оның үстіне, сол сияқты электрондық кілттераутентификациядан кейін ОЖ ішінде әртүрлі сценарийлерді орындауға болады, мысалы: электрондық қолтаңба, кілттік контейнерлерді сақтау, веб-ресурстарға қол жеткізу, MS Windows сеансында кілтті қайта жіберу. VmWare немесе Citrix сияқты VDI қызметтеріне қол жеткізу.

Орнату процесі

Демо аймағының мысалы

  • Сервер - Astra Linux Смоленск
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-пкинит;
    • libengine-pkcs11-openssl;
    • opensc.
  • Клиент - Astra Linux Смоленск SE 1.5 4.2.0-23-generic, x86_64, орнатылған пакеттері бар:
    • JaCarta IDProtect 6.37;
    • libccid;
    • pcscd;
    • libpcsclite1;
    • krb5-пкинит.

ALD бұрыннан қолданылған деп болжанады, құпия сөзбен аутентификациялай алатын кемінде бір домен пайдаланушысы бар және клиент пен сервер уақыттары бірдей.

Серверге және клиентке драйверлерді орнату

Смарт-картамен жұмыс істеуді қамтамасыз ету JaCarta PKIКлиент пен серверге келесі бумаларды орнатыңыз: libccid, pcscd, libpcsclite1. Осы міндетті пакеттерді орнатқаннан кейін, «Aladdin R.D.» ресми сайтынан жүктеп алуға болатын орнатыңыз.

Алдын ала орнатылған бумаларға қосымша Kerberos ішкі жүйесінің смарт картасымен жұмыс істеуді қамтамасыз ету ald/kerberosбуманы орнатыңыз krb5-пкинитклиент пен серверде.

үшін кілттер мен сертификаттарды шығаруды қосу JaCarta PKIсерверде де бумаларды орнатыңыз libengine-pkcs11-opensslжәне opensc.

Серверде сертификаттау орталығын орнату және теңшеу

CA ретінде (CA)қолданылатын болады OpenSSL.

OpenSSL SSL/TLS-пен жұмыс істеуге арналған ашық бастапқы криптографиялық пакет. RSA, DH, DSA кілттерін және X.509 сертификаттарын жасауға, оларға қол қоюға, CSR және CRT құруға мүмкіндік береді.

Нұсқаулықтағы барлық параметрлер EXAMPLE.RU сынақ домені үшін жасалған. Сервер мен клиент EXAMPLE.RU доменіне жатады, сервер аты kdc, ал клиент клиент деп есептейік. Конфигурациялау кезінде доменнің, сервердің және клиенттің атын пайдаланыңыз. Келесі әрекеттерді орындаңыз.

  1. mkdir /etc/ssl/CA арқылы CA каталогын жасаңыз және оны өзгертіңіз. Бұл каталогта жасалған кілттер мен сертификаттар болады.
  2. CA кілтін және сертификатын жасаңыз:
    $ openssl genrsa -out cakey.pem 2048
    $ openssl req -key cakey.pem -new -x509 -күндер 365 -out cacert.pem
    Тілқатысу терезесінде сертификаттау органы туралы қажетті ақпаратты толтырыңыз. Жалпы атауда EXAMPLE.RU көрсетіңіз.
  3. KDC кілті мен сертификатын жасаңыз:
    $ openssl genrsa -out kdckey.pem 2048
    $ openssl req -new -out kdc.req -key kdckey.pem
    Тілқатысу терезесінде сервер туралы қажетті ақпаратты толтырыңыз. Жалпы атауда kdc көрсетіңіз.
  4. Ортаның айнымалы мәндерін орнатыңыз. Ортаның айнымалы мәндері сеанс ішінде орнатылады және басқа сеанстар үшін орнатылмайды және сеанс жабылғаннан кейін сақталмайды.
    экспорт REALM=EXAMPLE.RU - Сіздің доменіңіз
    CLIENT=kdc экспорттау – сіздің серверіңіз
  5. Файлды жүктеп алыңыз pkinit_extensions -

Файл мазмұны pkinit_extensions(оны пәрмендерді орындайтын каталогқа қою керек):

[kdc_cert]
basicConstraints=CA:FALSE
# Мұнда nsCertType қолданудың кейбір мысалдары берілген. Егер міндеттелсе
keyUsage = бас тартусыз, цифрлық қолтаңба, кілтті шифрлау, кілт келісімі
#Пкинит ЕКУ
кеңейтілгенKeyUsage = 1.3.6.1.5.2.3.5
SubjectKeyIdentifier=хэш

# Тақырып мәліметтерін көшіріңіз
issuerAltName=эмитент:көшірме
# ID-pkinit-san қосыңыз (pkinit SubjectAlternativeName)
SubjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:kdc_princ_name

негізгі_атауы = EXP:1, SEQUENCE:kdc_principal_seq
атау_түрі = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:kdc_principals
princ1 = GeneralString:krbtgt
princ2 = GeneralString:$(ENV::REALM)
[клиент_куəлігі]
# Бұл кеңейтімдер "ca" сұрауға қол қойғанда қосылады.
basicConstraints=CA:FALSE
keyUsage = цифрлық қолтаңба, кілт шифрлау, кілт келісімі
кеңейтілгенKeyUsage = 1.3.6.1.5.2.3.4
SubjectKeyIdentifier=хэш
authorityKeyIdentifier=кілт идентификаторы, эмитент
SubjectAltName=otherName:1.3.6.1.5.2.2;SEQUENCE:princ_name
# Тақырып мәліметтерін көшіріңіз
issuerAltName=эмитент:көшірме
аймақ = EXP:0, GeneralString:$(ENV::REALM)
негізгі_атауы = EXP:1, SEQUENCE:principal_seq
атау_түрі = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:principals
princ1 = GeneralString:$(ENV::CLIENT)

  1. KDC сертификатын шығару: $ openssl x509 -req -in kdc.req -CAkey cakey.pem -CA cacert.pem -out kdc.pem -extfile pkinit_extensions -extensions kdc_cert –CAcreateserial –күндер 365
  2. Файлдар kdc.pem, kdckey.pem, cacert.pemаудару /var/lib/krb5kdc/
  3. /etc/krb5kdc/kdc.conf файлының сақтық көшірмесін жасаңыз. Бөлімге келесі жазбаларды қосу арқылы /etc/krb5kdc/kdc.conf өңдеңіз: pkinit_identity = FILE:/var/lib/krb5kdc/kdc.pem,/var/lib/krb5kdc/kdckey.pem pkinit_anchors = FILE:/var/lib /krb5kdc /cacert.pem Бірінші жазба кілттер мен сервер сертификатын көрсетеді, ал екінші жазба CA түбірлік куәлігін көрсетеді.
  4. Өзгерістерді қабылдау үшін мына әрекетті орындаңыз: /etc/init.d/krb5-admin-server restart /etc/init.d/krb5-kdc restart

Смарт картаны дайындау. Кілттерді және пайдаланушы сертификатын беру

Бумалардың орнатылғанын тексеріңіз libengine-pkcs11-opensslжәне opensc. Дайындалатын құрылғыны қосыңыз.

Құрылғыны іске қосыңыз, пайдаланушы PIN кодын орнатыңыз. Құрылғыны инициализациялау қалпына келтіру мүмкін емес JaCarta PKI жүйесіндегі барлық деректерді жоятынын есте сақтаңыз.

Баптандыру үшін қызметтік бағдарламаны пайдалану керек pkcs11-құралы.

Pkcs11-tool --slot 0 --init-token --so-pin 00000000 --жапсырма "JaCarta PKI" --модуль /lib64/libASEP11.so, --0 ұясы
--init-таңбалауышы– таңбалауышты инициализациялау командасы;
--со-пин 00000000
--жапсырма "JaCarta PKI"– құрылғы белгісі;
--модуль /lib64/libASEP11.so

Пайдаланушы PIN кодын орнату үшін мына пәрменді пайдаланыңыз: /

Pkcs11-tool --слот 0 --init-pin --so-pin 00000000 --логин --pin 11111111 --модуль /lib64/libASEP11.so,

--0 ұясы- құрылғының қандай виртуалды ұяға қосылғанын көрсетеді. Әдетте, бұл 0 ұяшығы, бірақ басқа мәндер мүмкін - 1,2 және т.б.;
--бастау пин– пайдаланушының PIN кодын орнату командасы;
--со-пин 00000000– JaCarta PKI әкімшісінің PIN коды. Әдепкі мән – 00000000;
--кіру– кіру командасы;
--pin 11111111– Пайдаланушының PIN коды орнатылады;
--модуль /lib64/libASEP11.so- libASEP11.so кітапханасына жолды көрсетеді. Idprotectclient бумасының бөлігі ретінде орнатылған, «Драйверлерді сервер мен клиентке орнату» бөлімін қараңыз.

Келесі пәрменді енгізу арқылы құрылғыда кілттерді жасаңыз:

Pkcs11-tool --slot 0 --login --pin 11111111 --keypairgen --key-type rsa:2048 --id 42 --label “test1 key” --module /lib64/libASEP11.so, --0 ұясы- құрылғының қандай виртуалды ұяға қосылғанын көрсетеді. Әдетте, бұл 0 ұяшығы, бірақ басқа мәндер мүмкін - 1,2 және т.б.;
--логин --pin 11111111
--keypairgen --key-type rsa:2048- ұзындығы 2048 бит кілттерді құру керек екенін көрсетеді;
--id 42- кілттің CKA_ID атрибутын орнатады. CKA_ID кез келген болуы мүмкін;
Бұл құндылықты есте сақтаңыз! Бұл құрылғыны жұмысқа дайындаудың келесі қадамдары үшін қажет.
--белгісі «test1 кілті»- кілттің CKA_LABEL атрибутын орнатады. Атрибут кез келген болуы мүмкін;
--модуль /lib64/libASEP11.so- libASEP11.so кітапханасына жолды көрсетеді. Idprotectclient бумасының бөлігі ретінде орнатылған, «Драйверлерді сервер мен клиентке орнату» бөлімін қараңыз.

Openssl утилитасын пайдаланып сертификат сұрауын жасаңыз. Ол үшін келесі пәрмендерді енгізіңіз:


#openssl
OpenSSL> қозғалтқыш динамикалық -pre SO_PATH:/usr/lib/ssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/lib64/libASEP11.so
OpenSSL> req -engine pkcs11 -жаңа -кілт 0:42 -keyform engine -out client.req -subj
"/C=RU/ST=Мәскеу/L=Мәскеу/O=Аладдин/OU=dev/CN=test1 (!Your_User!)/ [электрондық пошта қорғалған]"
OpenSSL>шығыңыз.
назар аударыңыз -жаңа -кілт 0:42, қайда 0 - құрылғымен виртуалды ұяшық нөмірі, 42 - бұрын жасалған кілттердің CKA_ID атрибуты.
Өтініште көрсетілуі тиіс ақпарат өрісте көрсетілуі керек
"/C=RU/ST=Мәскеу/L=Мәскеу/O=Аладдин/OU=dev/CN=test1 (!Your_User!)/ [электрондық пошта қорғалған]".

Ортаның айнымалы мәндерін орнату қажет

$ экспорт REALM=EXAMPLE.RU #Доменіңіз
$ export CLIENT=test1 #Сіздің пайдаланушы
және пайдаланушыға сертификат береді.
$ openssl x509 -CAkey cakey.pem -CA cacert.pem -req -in client.req -extensions client_cert -extfile pkinit_extensions -out client.pem –күндер 365
Әрі қарай, алынған сертификатты PEM-ден DER-ге қайта кодтаңыз.
# openssl x509 -in client.pem -out client.cer -inform PEM -outform DER
Алынған куәлікті маркерге жазыңыз.
pkcs11-tool --slot 0 --логин --pin 11111111 --write-object client.cer --түрі "cert" --жапсырма "Сертификат" --id 42 --module /lib/libASEP11.so,
мұнда:
--0 ұясы- құрылғының қандай виртуалды ұяға қосылғанын көрсетеді. Әдетте, бұл 0 ұяшығы, бірақ басқа мәндер мүмкін - 1,2 және т.б.;
--логин --pin 11111111- "11111111" PIN кодымен пайдаланушының астына кіру керек екенін көрсетеді. Егер картаңызда басқа пайдаланушы PIN коды болса, оны енгізіңіз;
--write-object ./client.cer- объектіні және оған баратын жолды жазып алу қажеттігін көрсетеді;
--"сертификат" теріңіз- жазылатын объектінің түрі куәлік екенін көрсетеді;
«сертификат» --белгі «Сертификат»- сертификаттың CKA_LABEL атрибутын орнатады. Атрибут кез келген болуы мүмкін;
--id 42- сертификаттың CKA_ID атрибутын орнатады. Кілттер үшін бірдей CKA_ID көрсетілуі керек;
--модулі /lib64/libASEP11.so- libASEP11.so кітапханасына жолды көрсетеді.

Клиент параметрі. Денсаулықты тексеру

Клиентте каталог жасаңыз /etc/krb5/. Көшіру /etc/krb5/ CA сертификаты (cacert.pem)серверден.

/etc/krb5.conf ішінде kerberos конфигурациялаңыз. Бөлімді келесі жолдармен аяқтаңыз.


default_realm = EXAMPLE.RU
pkinit_anchors = ФАЙЛ:/etc/krb5/cacert.pem
# таңбалауыш аутентификация үшін
pkinit_identities=PKCS11:/lib64/libASEP11.so
Тексеру:
кинит

Карта үшін PIN-кодты сұрау жолы пайда болған кезде оны енгізіңіз.

Керберос билеті пайдаланушы үшін сәтті шығарылғанын тексеру үшін klist пәрменін беріңіз. Билетті жою үшін - kdestroy.

Доменге смарт карта арқылы кіру үшін ОЖ кіру экранында құпия сөзді енгізудің орнына смарт картадан PIN кодын енгізіңіз.

Бұл орнатуды аяқтайды. Иә, өкінішке орай, жүйенің өзі смарт-картаға сәйкес кіру терезесін өзгертпейді немесе реттемейді және ол стандартты болады, бірақ кішкене құпия күш-жігермен әдемі нәтижеге қол жеткізуге болады.


Біраз уақыттан бері Windows жүйесі біріктірілген желілік аутентификация және бір реттік кіру мүмкіндігімен жинақталған. Windows 2000-ге дейін Windows NT домен контроллерлері клиенттерді қамтамасыз етті Windows қызметтері NTLM протоколы арқылы аутентификация. NTLM бастапқыда көрінгендей қауіпсіз болмаса да, ол желідегі әртүрлі серверлерде қайталанатын пайдаланушы тіркелгілерін сақтау мәселесіне ыңғайлы шешім бергендіктен өте пайдалы болды.

Windows 2000 жүйесінен бастап, Microsoft NTLM жүйесінен Active Directory және оның біріктірілген Kerberos аутентификация қызметтеріне көшті. Kerberos NTLM-ге қарағанда әлдеқайда қауіпсіз болды және сонымен бірге жақсырақ масштабталады. Бұған қоса, Kerberos бұрыннан қолданыста болған салалық стандарт болды Linux жүйелеріжәне бұл платформаларды Windows жүйесімен біріктіру есігін ашқан UNIX.

Linux аутентификациясы

Бастапқыда Linux (және онда жұмыс істейтін GNU құралдары мен кітапханалары) бір аутентификация механизміне сенбеді. Нәтижесінде, Linux қолданбасын әзірлеушілер әдетте өздерінің аутентификация схемаларын әзірлеуге кірісті. Олар бұған /etc/passwd (әдетте Linux пайдаланушы тіркелгі деректерін қамтитын мәтіндік файл) ішінде пайдаланушы аты мен құпиясөз хэштерін іздеу арқылы немесе мүлде басқа (және бөлек) механизмді қамтамасыз ету арқылы қол жеткізе алды.

Аутентификация механизмдерінің нәтижесінде алынған ассортимент басқарылмады. 1995 жылы Sun Pluggable Authentication Modules (PAM) деп аталатын механизмді енгізді. PAM барлық қолданба әзірлеушілері пайдалана алатын аутентификация API интерфейстерінің жалпы жинағын, сондай-ақ әртүрлі «қосылатын» аутентификация схемаларына рұқсат беретін әкімші конфигурациялайтын сервер элементін қамтамасыз етті. Түпнұсқалық растама үшін PAM API интерфейсін және пайдаланушы ақпаратын іздеу үшін Name Server Switch (NSS) API интерфейсін пайдалану Linux қолданбасын әзірлеушілерге азырақ код жазуға және Linux әкімшілеріне аутентификация процесін бір жерден басқаруға және конфигурациялауға мүмкіндік берді.

Linux жүйесінің көптеген шығарылымдары бірнеше PAM аутентификация модулімен, соның ішінде LDAP каталогының түпнұсқалық растамасын және Kerberos аутентификациясын қолдайтын модульдермен бірге жеткізілді. Бұл модульдерді Active Directory аутентификациясы үшін пайдалануға болады, бірақ бұл үшін маңызды шектеулер бар, мен оларды кейінірек осы мақалада талқылаймын.

Самба және Винбинд

Самба Windows және Linux орталары арасында біріктіруге бағытталған ашық бастапқы жоба. Samba құрамында Linux компьютерлеріне Windows файлдары мен басып шығару қызметтеріне рұқсат беретін және Windows NT 4.0 домен контроллерлеріне ұқсайтын Linux негізіндегі қызметтерді қамтамасыз ететін құрамдас бөліктер бар. Samba клиентінің құрамдастарын пайдалану, Linux компьютерлері Windows NT домен контроллері және Active Directory қамтамасыз ететін Windows аутентификация қызметтерін пайдалана алады.

Самбаның Винбинд деп аталатын бөлігі бізді ерекше қызықтырады. Winbind — Samba клиенттерінде жұмыс істейтін және бір жағынан Linux құрылғысында жұмыс істейтін PAM және NSS, екінші жағынан домен контроллерінде жұмыс істейтін Active Directory арасындағы байланыс үшін прокси ретінде әрекет ететін демон («Windows терминдеріндегі «қызмет»). Атап айтқанда, Winbind пайдаланушылар мен топтар туралы ақпаратты алу үшін Active Directory және LDAP арқылы аутентификациялау үшін Kerberos пайдаланады. Winbind де қамтамасыз етеді қосымша қызметтер, мысалы, Active Directory ішіндегі DCLOCATOR-ға ұқсас алгоритмді пайдаланып домен контроллерін табу мүмкіндігі және RPC арқылы домен контроллеріне хабарласу арқылы Active Directory құпия сөздерін қалпына келтіру мүмкіндігі.

Winbind тек PAM көмегімен Kerberos пайдалану арқылы қалатын бірқатар мәселелерді шешеді. Атап айтқанда, PAM аутентификациясы үшін домен контроллерін қатты кодтаудың орнына, Winbind Microsoft DC LOCATOR модуліне ұқсас DNS локатор жазбаларын іздеу арқылы домен контроллерін таңдайды.

Үш аутентификация стратегиясы

Linux компьютерлерінде LDAP, Kerberos және Winbind қолжетімділігін ескере отырып, аутентификация үшін Active Directory пайдалану үшін Linux компьютерін қосу үшін қолдануға болатын үш түрлі іске асыру стратегиясы бар.

LDAP аутентификациясын пайдалануТүпнұсқалық растама үшін Active Directory пайдаланудың ең қарапайым, бірақ ең аз қанағаттандыратын жолы мына бөлімде көрсетілгендей LDAP аутентификациясын пайдалану үшін PAM конфигурациялау болып табылады. күріш. бір. Active Directory LDAPv3 қызметі болса да, Windows клиенттеріаутентификация үшін LDAP емес, Kerberos пайдаланыңыз (жаңалық ретінде NTLM бар).

LDAP аутентификациясымен (LDAP байланыстыру деп аталады) пайдаланушы аты мен құпия сөз желі арқылы анық мәтінмен жіберіледі. Бұл қауіпті және көптеген мақсаттар үшін қолайсыз.

1-сурет. LDAP арқылы Active Directory аутентификациясы

Ашық тіркелгі деректерін беру қаупін азайтудың жалғыз жолы - SSL сияқты нәрсені пайдаланып клиент-Active Directory байланыс арнасын шифрлау. Бұл сөзсіз мүмкін, бірақ домен контроллері машинасында да, Linux құрылғысында да SSL сертификаттарын басқарудың қосымша ауыртпалығын жүктейді. Бұған қоса, LDAP PAM модулін пайдалану ысыруды немесе мерзімі өткен құпия сөздерді өзгертуге қолдау көрсетпейді.

LDAP және Kerberos пайдалану Linux аутентификациясына арналған Active Directory пайдаланудың тағы бір стратегиясы мынада көрсетілгендей пайдаланушы мен топ ақпаратын іздеу үшін LDAP пайдалану үшін Kerberos аутентификациясын және NSS пайдалану үшін PAM параметрін теңшеу болып табылады. күріш. 2. Бұл схеманың артықшылығы салыстырмалы түрде қауіпсіз және ол Linux жүйесінің «кіріктірілген» мүмкіндіктерін пайдаланады. Дегенмен, ол Active Directory домен контроллерлері жариялаған DNS қызмет орны (SRV) жазбаларын пайдаланбайды, бұл домен контроллерлерінің белгілі бір жинағын оларға қарсы аутентификациялау үшін тексеруге мәжбүр етеді. Сондай-ақ ол Active Directory мерзімі бітетін құпия сөздерді немесе соңғы уақытқа дейін сәйкес топ мүшелерін іздеуді басқарудың ерекше интуитивті әдісін қамтамасыз етпейді.


2-сурет. LDAP және Kerberos көмегімен Active Directory аутентификациясы

Winbind пайдалану Linux аутентификациясына арналған Active Directory пайдаланудың үшінші жолы Winbind демонына қоңырау шалу үшін PAM және NSS конфигурациялау болып табылады. Winbind әртүрлі PAM және NSS сұрауларын LDAP, Kerberos немесе RPC арқылы сәйкес Active Directory қоңырауларына аударады, қайсысы ең қолайлы болса. Үстінде күріш. 3бұл стратегияның жақсы мысалы келтірілген.


3-сурет. Winbind көмегімен Active Directory аутентификациясы

Біздің жүзеге асыру жоспарымыз

Active Directory көмегімен жақсартылған интеграция мені Linux-Active Directory біріктіру жобасы үшін Red Hat Enterprise Linux 5 (RHEL5) жүйесінде Winbind таңдауға мәжбүр етті. RHEL5 - Red Hat Linux коммерциялық шығарылымының ағымдағы нұсқасы және кәсіпорын деректер орталықтарында өте танымал.

Active Directory арқылы RHEL5 аутентификациясы үшін келесі бес бөлек қадам қажет:

  1. Сәйкес Samba бумасын және басқа тәуелді компоненттерді тауып жүктеп алыңыз.
  2. Самба құрастыру.
  3. Samba бағдарламасын орнатыңыз және конфигурациялаңыз.
  4. Linux, әсіресе PAM және NSS орнатыңыз.
  5. Active Directory орнату.

Осы мақаланың келесі бірнеше бөлімдері осы қадамдарды толығырақ сипаттайды.

Дұрыс бағдарламаларды табу

Linux пен Windows арасындағы ең үлкен айырмашылықтардың бірі Linux шағын операциялық жүйе ядросынан және бөлек жүктелетін және орнатылатын құрамдастардың үлкен жинағынан тұрады. Бұл белгілі бір тапсырмалар үшін оңтайлы өте мұқият таңдалған Linux дистрибутивтерін жасауға мүмкіндік береді, бірақ сонымен бірге серверді орнату мен басқаруды өте қиындатады. Әртүрлі дистрибуциялар мұны әртүрлі жолдармен шешеді. Red Hat (және оның коммерциялық емес әпкесі Fedora) осы құрамдастарды орнату және басқару үшін Red Hat Package Manager (RPM) пайдаланады.

Red Hat үшін Linux құрамдастары екі түрде келеді. RPM файлдарында құрамдас нұсқасының, Linux шығарылымының және CPU архитектурасының белгілі бір тіркесімі үшін алдын ала құрастырылған және құрастырылған екілік файлдар бар. Осылайша, мысалы, Intel x86 архитектуралық процессорында жұмыс істейтін Fedora 10 нұсқасы үшін жасалған Жалпы UNIX басып шығару жүйесінің (CUPS) 1.3.8-5 нұсқасын жүктеп алып, орнатуға болады. Ондаған болуын ескере отырып әртүрлі архитектуралар CPU, 100-ден астам Linux шығарылымдары және мыңдаған пакеттер мен нұсқалар, таңдауға болатын екілік RPM пакеттерінің керемет саны бар екенін көре аласыз.

RPM бастапқы файлдары, керісінше, шынды қамтиды көзіосы пакет үшін. Пайдаланушы бастапқы файлдарды жүктеп алып, орнатады, құрастыру опцияларын конфигурациялайды, содан кейін екілік файлдарды өзі құрастырады және байланыстырады. Өз операциялық жүйеңізді құру идеясы Microsoft ықшам дискіде ұсынатын нәрсені орнатуға дағдыланған Windows кәсіпқойы үшін қорқытады. Windows орнату, бірақ пакет менеджері процесті салыстырмалы түрде ауыртпалықсыз және таңқаларлық сенімді етеді. Samba тобы жаңартулар мен қауіпсіздік патчтарын жылдам қарқынмен шығарады; 2008 жылдың шілде және тамыз айларында ғана Samba 3.2 төрт шығарылымы шықты, оның ішінде барлығы 100-ден астам қате түзетілген және қауіпсіздік түзетулері бар. Бұл жоба үшін мен Samba бағдарламасының соңғы тұрақты нұсқасы, 3.0.31 нұсқасы үшін бастапқы файлдарды жүктеп алдым.

Неліктен мен екілік файлдардың алдын ала құрастырылған жиынтығының орнына Samba бастапқы кодын жүктеп алдым? Алдымен, әрине, бірінші жасауға тырыстым. Бірақ отладчикпен көп сағат өткеннен кейін мен жүктеп алған екілік файлдар Active Directory аутентификациясын қолдау үшін дұрыс жолмен салынбағанын білдім. Атап айтқанда, Active Directory ішіндегі Linux идентификаторының салыстыруын қолдайтын код әдепкі құрастырмаларда өшірілген, сондықтан мен Samba-ны тиісті құрастыру опцияларымен қайта құруға тура келді. Мен төменде жеке куәлікті сәйкестендіру мәселесіне егжей-тегжейлі тоқталамын.

Linux өзі шағын ядро ​​болса да, Red Hat Enterprise шығарылымы көптеген пакеттермен алдын ала орнатылған. Бұл әдетте толық және жұмыс істейтін операциялық жүйеден бастауға мүмкіндік беру арқылы өмірді айтарлықтай жеңілдетеді, бірақ алдын ала орнатылған пакеттер кейде кейінірек орнатылуы тиіс бағдарламалармен қайшы келеді.

Мен Samba қолданбасын Red Hat орнатуыма қоспадым (Samba әдетте әдепкі бойынша орнатылады), себебі маған жаңарақ нұсқаны пайдалану керек болды. Дегенмен, көбірек жаңа нұсқасы Samba орнатылған бірнеше басқа кітапханалар мен утилиталардың жаңа нұсқаларын қажет етеді. Бұл тәуелділікпен байланысты мәселелер тітіркендіргіш, бірақ оларды RPM көмегімен оңай шешуге болады.

Екілік RPM пакеттерін орналастыратын көптеген веб-сайттар бар. Мен пайдаланған (мен оны бірінші рет тапқандықтан) PBONE деп аталады және rpm.pbone.net сайтында орналасқан. Онда пакеттерді табудың ыңғайлы жолы бар және менің CPU архитектурасы (i386) және операциялық жүйе басылымдары (Red Hat Enterprise Linux 5/Fedora 7 және 8) үшін қажет болатын барлық екілік файлдары бар.

Маған тізімде көрсетілген бумаларды жүктеп алып, жаңарту керек болды күріш. 4салу және орнату соңғы нұсқасы Samba 3.0 (мен қолданып көрмеген одан да жаңа 3.2 нұсқасы ағашы бар). Бұл пакеттердің барлығы Fedora Core (fc) шығарылымына арналғанын ескеріңіз. Red Hat таратуы Fedora сияқты бірдей бастапқы кодқа негізделген және онымен толық үйлесімді. Fedora Core 7 және одан кейінгі нұсқалары үшін жасалған пакеттер RHEL5 жүйесінде өзгеріссіз орындалады. Жүктелген RPM файлдарын /usr/src/redhat/RPMS каталогына орналастырыңыз.

Күріш. 4. Samba 3.0.31 құру және орнату үшін қажет пакеттер

Самба құрылысы

Samba құрудың бірінші қадамы дұрыс RPM бастапқы пакетін жүктеп алу болып табылады. Мен Samba 3.0.31 бастапқы RPM бумасын PBONE веб-сайтынан жүктеп алдым. Содан кейін жүктелген RPM бастапқы файлын /usr/src/redhat/SRPMS ішіне орналастырыңыз; бұл құрастыру процесі кезінде бастапқы RPM бумаларына арналған стандартты каталог.

Терминал сеансын ашыңыз (Windows терминдеріндегі «пәрмен жолының терезесі») және SRPMS қалтасына өтіңіз. Бұл орындалғаннан кейін, көрсетілгендей пәрменді пайдаланып бастапқы буманы орнатыңыз күріш. 5.


Күріш. 5. Samba көзі RPM бумасын орнату

Егер сіз қате туралы ескерту алсаңыз, «user mockbuild болмайды exist-using root", уайымдамаңыз. Бұл қате жалған құрастыру утилиталарының орнатылмағанын көрсетеді. Құрастыру процесі оларсыз жұмыс істейді.

Содан кейін /usr/src/redhat/SPECS каталогына өтіп, Samba құрастыру опциялары бар samba.spec файлын өңдеңіз. "CFLAGS=" деп басталатын жолды тауып, "--with-shared-modules=idmap_ad,idmap_rid" опциясының бар екеніне көз жеткізіңіз. Бұл опция құрастыру процесінде Linux бірегей идентификаторларын (UID) Active Directoryге дұрыс түрлендіретін кодты қамтитынын қамтамасыз етеді. Үстінде күріш. 6осы опцияны ескере отырып.


Күріш. 6. ортақ модульдермен құрастыру опциясы

Содан кейін Samba бағдарламасын дұрыс құрастыру және орнату үшін компьютеріңіздегі кейбір кітапханаларды жаңарту қажет болуы мүмкін; бұл кітапханалардың қай нұсқалары орнатылғанына байланысты. Менің жағдайда тізімде көрсетілген бумаларды орнатуға тура келді күріш. 4 rpm -install командасын қолдану; кейбір жағдайларда, дегенмен, кейбір тәуелділік мәселелерін шешу үшін --force опциясын қолдануға тура келді.

Samba құру үшін, /usr/src/redhat каталогына өтіп, rpmbuild -bb SPECS/samba.spec файлында көрсетілгендей іске қосыңыз. күріш. 7. Бұл процедура samba-3.0.31-0.i386 жаңа RPM файлын /usr/src/redhat/RPMS каталогында қалдырады. Бұл RPM файлын жобада кейінірек орнатамыз.


Күріш. 7. Samba RPM екілік файлын жасау

Linux желісін конфигурациялау

Active Directory көмегімен аутентификациялау үшін Linux компьютері домен контроллерімен байланыса алуы керек. Бұл орын алу үшін үш желі параметрлерін конфигурациялау керек.

Біріншіден, DHCP арқылы немесе ifconfig пәрменін пайдаланып оған сәйкес IP мекенжайы мен желі маскасын тағайындау арқылы Linux құрылғысындағы желі интерфейсінің дұрыс конфигурацияланғанына көз жеткізу маңызды. RHEL5 жағдайында сіз оны Жүйеден (Желі) таңдау арқылы желіні конфигурациялай аласыз | Әкімшілік (Жүйе | Әкімшілік), көрсетілгендей күріш. сегіз.


8-сурет. Желі конфигурациясы

Содан кейін, Linux компьютеріне арналған DNS атауын ажырату қызметі домен контроллері пайдаланатын бірдей DNS атау серверін пайдалануға орнатылғанын тексеріңіз; көп жағдайда бұл сіз Active Directory біріктірілген DNS пайдаланасыз деп есептесеңіз, Linux құрылғысына қосылғыңыз келетін домендегі домен контроллері болып табылады. DNS шешушісі желіні конфигурациялау үшін пайдаланылған бірдей желі конфигурациялау утилитасының DNS қойындысында конфигурацияланған. күріш. 9.


9-сурет. Негізгі DNS шешушісін орнату

Соңында, осы қадамдарды орындағаннан кейін доменде оның атауын көрсететін Linux компьютерінің атын орнату керек. Бұл атауды желіні орнату қолданбасы арқылы орнатуға болатынына қарамастан, бұл әрқашан күткендей жұмыс істемейтін сияқты.

Оның орнына, /etc/hosts файлын өзгертіңіз және пішіндегі localhost.localdomain жазбасының астына жазба қосыңыз. <полное доменное имя> <имя компьютера>. (Мысалы: "10.7.5.2 rhel5.linuxauth.local linuxauth".) Бұл орындалмаса, Linux құрылғысы доменге қосылғаннан кейін каталогта қате компьютер нысаны жасалатынын ескеру керек.

Linux жүйесінде уақытты синхрондауды конфигурациялау

Kerberos протоколы жеткілікті жоғары уақыт дәлдігі бар сағаттары бар аутентификация жүйелеріне сүйенеді. Әдепкі бойынша, Active Directory ең көп бес минуттық уақыт ауытқуына мүмкіндік береді. Linux жүйелері мен тұрақты тұрақты жүйе сағаттары осы мәнде қалуын қамтамасыз ету үшін Linux жүйелері DC NTP протокол қызметін пайдалану үшін конфигурациялануы керек.

Әрі қарай, Linux серверінде Жүйеден | Күн және уақыт утилитасын іске қосыңыз Әкімшілік және NTP протоколы қойындысын таңдаңыз. Желі уақыты протоколын қосу құсбелгісін қойыңыз және желі уақыты көзі ретінде пайдаланғыңыз келетін домен контроллерінің IP мекенжайын қосыңыз. Бұл әдетте негізгі домен контроллері (PDC) FSMO рөлін ұстанатын домендегі домен контроллері болуы керек екенін ескеріңіз. Үстінде күріш. 10 Linux үшін желілік уақыт көзін орнатудың мысалы келтірілген.


10-сурет. NTP протоколын орнату

PAM және NSS орнату

PAM және NSS жұмыс үстелі және Winbind сияқты Linux қолданбасын қосу құралын қамтамасыз етеді. Көптеген Linux қызметтері сияқты, PAM және NSS мәтіндік файлдар арқылы конфигурацияланады. Алдымен PAM орнатуды қарастырамыз.

PAM оны пайдаланатын қолданбаларға аутентификацияға қатысты төрт мүмкіндік береді. Аутентификация қолданбаға оны кім пайдаланып жатқанын анықтауға мүмкіндік береді. Тіркелгілер құралы кіру уақытын шектеу сияқты аутентификацияға тікелей қатысы жоқ тіркелгіні басқару мүмкіндіктерін қамтамасыз етеді. Құпиясөз құралы құпия сөздерді сұрау және басқару механизмдерін қамтамасыз етеді. Сеанс құралы арнайы пайдаланушы санатындағы файлдарды тіркеу немесе жасау сияқты қолданба үшін пайдаланушыға арналған орнату және жою тапсырмаларын орындайды.

Red Hat PAM конфигурация файлдары аутентификация үшін PAM қолданатын әрбір қолданба үшін мәтіндік файлды қамтитын /etc/pam.d каталогында сақталады. Мысалы, /etc/pam.d/gdm файлында Gnome Desktop Manager (GDM) үшін PAM теңшеу туралы ақпаратты, Red Hat әдепкі терезелеу ортасын қамтиды. Әрбір PAM конфигурация файлында әрқайсысы PAM аутентификация процесінің кейбір аспектілерін анықтайтын бірнеше жолдар бар. Үстінде күріш. он бір GDM үшін PAM конфигурация файлының мазмұнын көрсетеді.


Күріш. он бір. Gnome Desktop Manager үшін RAM конфигурация файлы

PAM конфигурация файлындағы әрбір жазба пішінде болады<группа управления> <элемент управления> <модуль> <параметры>, қайда<группа управления>параметр жазбасы сілтеме жасайтын нысанға сәйкес келеді: аутентификация, тіркелгілер, құпия сөздер немесе сеанстар. Басқару кілт сөздерінде сипатталған күріш. 12 PAM-қа конфигурация жазбасын өңдеу жолын айтыңыз. Файлдың үшінші бағанында /lib/ қауіпсіздік каталогындағы PAM ортақ кітапханасының атауы бар. Ортақ кітапханаларда Windows жүйесіндегі DLL файлына ұқсас динамикалық жүктелетін орындалатын код бар. Модуль атауынан кейінгі қосымша шарттар PAM модулі ортақ кітапханаға жіберетін параметрлер болып табылады.

Күріш. 12. PAM басқару кілт сөздері

Негізгі сөз

Сипаттама

Міндетті Егер модуль сәтті болса, онда PAM бақылау тобы үшін қалған жазбаларды есептеуді жалғастырады, ал нәтижелер қалған модульдердің нәтижелері бойынша анықталады. Олай болмаса, PAM бағалауды жалғастырады, бірақ қоңырау шалушы қолданбаға сәтсіздікті қайтарады.
Міндетті Модуль сәтті болса, PAM басқару тобының жазбаларын бағалауды жалғастырады. Олай болмаса, PAM қосымша өңдеусіз қоңырау шалушы қолданбаға оралады.
Жеткілікті («Жеткілікті») Модуль сәтті болса, PAM шақырушы қолданбаға сәтті нәтижені қайтарады. Олай болмаса, PAM бағалауды жалғастырады, бірақ нәтижелер кейінгі модульдер арқылы анықталады.
міндетті емес PAM басқару тобы үшін көрсетілген жалғыз модуль болмаса, модуль нәтижелерін елемейді.
Қосу PAM сілтеме жасалған PAM конфигурация файлының мазмұнын, сондай-ақ оның құрамындағы процестер мен жазбаларды қамтиды.

Әрбір басқару тобында бірнеше жазбалар бар екенін байқауыңыз мүмкін. PAM аталған модульді шақыру арқылы жазбаларды ретімен өңдейді. Содан кейін модуль сәтті немесе сәтсіздікті қайтарады және PAM басқару кілт сөзіне байланысты әрекетті орындайды.

GDM үшін PAM конфигурация файлында барлық басқару топтары үшін жүйелік аутентификация бар екенін байқауыңыз мүмкін. Бұл PAM GDM үшін әдепкі аутентификация әрекетін орнату жолы. Жүйені аутентификациялауды өзгерту арқылы PAM параметрлерінде жүйелік аутентификация файлы бар барлық қолданбалар үшін бұл әрекетті өзгертуге болады. Әдепкі жүйелік аутентификация файлы көрсетілген күріш. он үш.


Күріш. он үш. PAM модулінің жүйелік аутентификация файлы

Name Resolution Block Switch (NSS) модулі PAM аутентификация мәліметтерін жасыратыны сияқты қолданба әзірлеушісінен жүйелік деректер қоймасы туралы нақты ақпаратты жасырады. NSS әкімшіге жүйенің дерекқорлары қалай сақталатынын анықтауға мүмкіндік береді. Атап айтқанда, әкімші пайдаланушы аты мен құпия сөз ақпаратының қалай сақталатынын көрсете алады. Қолданбалардың Winbind көмегімен Active Directory ішінен пайдаланушы ақпаратын іздеуін қалайтындықтан, мұны көрсету үшін NSS параметрін өзгерту керек.

Red Hat PAM және NSS конфигурациялау үшін жүйелік-конфигурация-аутентификация деп аталатын шағын графикалық қызметтік бағдарламаны қамтиды. Ол system-auth және nss.conf файлдарына жасалуы тиіс өзгерістердің көпшілігін (бірақ барлығын емес) жасайды.

System-config-authentication қолданбасын іске қосыңыз және сіз келесіде көрсетілгенге ұқсас диалогты көресіз. күріш. 14. «Пайдаланушы ақпараты» қойындысының екеуінде де Winbind ұяшығын белгілеңіз, ол nss.conf файлын конфигурациялайды және Аутентификация қойындысы жүйенің аутентификация файлын өзгертеді.


Күріш. 14. systemconfig-аутентификация диалогы

Winbind конфигурациялау түймешігін және көрсетілген диалогты басыңыз күріш. 15. Winbind домен өрісіне пайдаланушыларды аутентификациялағыңыз келетін домен атын енгізіңіз және қауіпсіздік үлгісі ретінде «мәлімдемелерді» таңдаңыз. Active Directory доменінің DNS домен атын Winbind ADS Realm өрісіне енгізіңіз. Winbind домен контроллері өрісінде осы Linux жүйесі үшін аутентификацияланғыңыз келетін домен контроллерінің атын немесе Winbind жүйесі DNS SRV жазбаларын сұрау кезінде домен контроллерін таңдау керек екенін көрсететін жұлдызшаны енгізіңіз.


Күріш. 15. Winbind диалогын теңшеу

Active Directory пайдаланушыларында болуы керек сәйкес әдепкі пәрмен аудармашысын таңдаңыз; бұл жағдайда мен bash таңдадым (Борн-қайтадан Shell). Бұл кезеңде «Доменге қосылу» түймесін пайдалануға әрекеттенбеңіз. Компьютер кейінірек доменге қосылады.

/etc/pam.d/system-auth файлы Winbind қолдауы үшін өзгертілгеннен кейін тағы бір қосымша өзгертуді қажет етеді. Linux пайдаланушысы жүйеге кіргенде, жүйе пайдаланушыдан үй каталогының болуын талап етеді. Үй каталогында Windows тізбесі сияқты көптеген пайдаланушыға арналған параметрлер мен теңшеу элементтері бар. Мұндағы мәселе пайдаланушылар Active Directory ішінде жасалғандықтан, Linux автоматты түрде пайдаланушының үй каталогын жасамайды. Бақытымызға орай, PAM сеансын орнату бөлігі ретінде мұны істеу үшін конфигурациялануы мүмкін.

/etc/pam.d/system-auth файлын ашыңыз, содан кейін төмен жылжып, сеанс бөліміндегі соңғы жолдың алдына "session optional map_mkhomedir.so skel=/etc/skel umask=0644" жолын қойыңыз (төменде қараңыз). күріш. он алты). Бұл жол PAM-ға пайдаланушы үшін үй каталогын жасауды тапсырады, егер ол бұрыннан жоқ болса. Ол қаңқа үлгісі ретінде /etc/skel пайдаланады және жаңа қалтаға 0644 рұқсат маскасын тағайындайды (иесі үшін оқу/жазу, негізгі топ үшін оқу және басқалар үшін оқу).


Күріш. он алты. Пайдаланушылар үшін үй каталогын құру

Samba орнату және конфигурациялау

Жаңадан жасалған Samba екілік файлдарын орнату үшін /usr/src/redhat/RPMS каталогына өтіңіз. rpmbuild пәрменімен жасалған барлық RPM файлдары осы каталогта пайда болады. Samba рұқсат ететін екілік файлдарды қамтитынын ескеріңіз Linux клиенті Windows файл ортақтығына (немесе Samba), сондай-ақ Linux жүйесіне Windows файл сервері, Windows басып шығару сервері және Windows NT 4.0 стиліндегі домен контроллері ретінде әрекет етуге мүмкіндік беретін кодқа қол жеткізіңіз.

Linux-қа Active Directory аутентификациясына рұқсат беру үшін мұның бәрі қажет емес; жалпы Samba файлдары мен Samba клиентінің екілік файлдары жеткілікті. Бұл файлдар бізге ыңғайлы болу үшін екі RPM файлына бөлінген: samba-client-3.0.31-0.i386.rpm және samba-common-3.0.31-0.i386.rpm. RPM файлдарын rpm --install пәрменін пайдаланып орнатыңыз. Міне мысал: rpm --install samba-common-3.0.31-0.i386.rpm. (Мұны орындамас бұрын RPM -common файлын орнату керек екенін ескеріңіз.)

Samba клиентінің екілік файлдарын орнатқаннан кейін Winbind Active Directory аутентификациясын дұрыс өңдейтініне көз жеткізу үшін әдепкі Samba орнатуын өзгертуіңіз керек. Samba конфигурациялау туралы барлық ақпаратты (клиент те, сервер де) әдепкі бойынша /etc/samba каталогында орналасқан smb.conf мәтіндік файлында табуға болады. Smb.conf конфигурация опцияларының үлкен санын қамтуы мүмкін және оның мазмұнының толық тіркелгісі осы мақаланың ауқымынан тыс. smb.conf туралы қосымша ақпаратты samba.org веб-сайтынан және Linux анықтамасынан қараңыз.

Winbind конфигурациясының бірінші қадамы аутентификация үшін Active Directory пайдалану болып табылады. smb.conf ішіндегі қауіпсіздік үлгісін «декларацияларға» орнату қажет. System-config-authentication утилитасы мұны өзі орнатқан болуы керек, бірақ оны тексеру ешқашан ауырмайды. smb.conf файлын өңдеңіз және Домен мүшесі опциялары деп белгіленген бөлімді табыңыз. «Қауіпсіздік» деп басталатын жолды тауып, оның «қауіпсіздік=жарнамалар» деп жазылғанына көз жеткізіңіз. Келесі конфигурация қадамы Winbind бағдарламасының пайдаланушылар мен топтар сияқты Windows қауіпсіздік принциптерін Linux идентификацияларына қалай салыстыратынын анықтайды және бұл біршама көбірек түсіндіруді қажет етеді.

ID сәйкестік мәселесі

Active Directory Linux пайдаланушысының аутентификациясында мен әлі айтпаған бір үлкен мәселе бар - пайдаланушылар мен топтар үшін бірегей идентификаторлар (UID) мәселесі. Ішкі түрде, Linux немесе Windows жүйесі пайдаланушыларға оның орнына бірегей ішкі идентификаторды пайдаланып, олардың нақты аттары бойынша сілтеме жасамайды. Windows жүйесі Windows доменіндегі әрбір пайдаланушыны бірегей түрде анықтайтын айнымалы ұзындық құрылымы болып табылатын Қауіпсіздік идентификаторларын (SID) пайдаланады. Сондай-ақ, SID бірегей домен идентификаторын қамтиды, осылайша Windows әртүрлі домендердегі пайдаланушыларды ажырата алады.

Linux схемасы әлдеқайда қарапайым. Linux компьютеріндегі әрбір пайдаланушының UID коды бар, ол жай 32 биттік бүтін сан. Бірақ UID ауқымы компьютердің өзімен шектеледі. Бір Linux құрылғысындағы UID 436 пайдаланушының басқа Linux құрылғысындағы UID 436 пайдаланушымен бірдей екендігіне кепілдік жоқ. Нәтижесінде, пайдаланушы қол жеткізгісі келетін әрбір компьютерге қосылуы керек, бұл жағымсыз жағдай.

Linux желі әкімшілері әдетте бұл мәселені Желілік ақпарат жүйесі (NIS) немесе ортақ LDAP каталогы арқылы желі аутентификациясын қамтамасыз ету арқылы шешеді. Желінің аутентификация жүйесі пайдаланушы үшін UID береді және осы жүйені пайдаланатын барлық Linux компьютерлері бірдей пайдаланушы және топ идентификаторларын пайдаланады. Бұл жағдайда бірегей пайдаланушы және топ идентификаторларын қамтамасыз ету үшін Active Directory пайдаланамын.

Бұл мәселені шешу үшін мен екі стратегияны қолданамын. Бірінші (және ең айқын) стратегия - әрбір пайдаланушы мен топ үшін UID жасау және сол UID сәйкес нысанмен Active Directory ішінде сақтау. Пайдаланылған кезде, Winbind пайдаланушыны аутентификациялағанда, мен пайдаланушының UID кодын қарап, оны Linux жүйесіне пайдаланушының ішкі идентификаторы ретінде бере аламын. Winbind бұл схемаға Active Directory ID салыстыру (немесе idmap_ad) ретінде сілтеме жасайды. Үстінде күріш. 17 Active Directory идентификациялық салыстыру процесін көрсетеді.


17-сурет. Active Directory ID салыстыру процесі

Active Directory идентификациялық салыстыруының бірден-бір кемшілігі әр пайдаланушы мен топтың сәйкестендіруге ие болуы және орман ішінде бірегей болуы механизмін қамтамасыз ету қажет. Қосымша ақпаратты «Active Directory ID салыстыру үшін Active Directory конфигурациялау» бүйірлік тақтасынан табуға болады.

Бақытымызға орай, идентификаторларды сәйкестендірудің басқа стратегиясы бар, ол әлдеқайда аз әкімшілік шығындарды қамтиды. Еске салайық, Windows SID домендегі пайдаланушыны, сондай-ақ доменнің өзін бірегей түрде анықтайды. Домендегі пайдаланушыны бірегей түрде анықтайтын SID бөлігі салыстырмалы идентификатор (RID) деп аталады және шын мәнінде 32 биттік бүтін сан болып табылады. Осылайша, Winbind пайдаланушы жүйеге кірген кезде RID кодын жай ғана SID ішінен шығарып алады, содан кейін RID бірегей ішкі UID ретінде пайдалана алады. Winbind бұл стратегияға RID немесе idmap_rid идентификаторын салыстыру ретінде сілтеме жасайды. Үстінде күріш. он сегіз RID салыстыру іс жүзінде қалай жұмыс істейтінін көрсетеді.


Күріш. он сегіз. RID картасы

RID салыстыру нөлдік әкімшілік шығындардың артықшылығына ие, бірақ бірдей RID мәніне ие бірнеше домендегі пайдаланушылардың мүмкіндігіне байланысты оны көп доменді ортада пайдалану мүмкін емес. Бірақ егер сізде жалғыз Active Directory домені болса, RID салыстыру дұрыс таңдау болып табылады.

Winbind идентификаторының салыстыру стратегиясын конфигурациялау үшін /etc/samba/smb.conf файлын қайта өңдеңіз және Active Directory салыстыру стратегиясын пайдалану үшін "idmap backend = ad" жолын немесе RID салыстыру стратегиясын пайдалану үшін "idmap backend = rid" жолын қосыңыз. . Файлда сәйкестік стратегиясын көрсететін басқа жолдар жоқ екеніне көз жеткізіңіз.

Winbind үшін smb.conf файлына қосу қажет басқа да конфигурация опциялары бар. Тіпті PAM жүйеге кірген кезде әрбір пайдаланушы үшін үй каталогын жасау үшін орнатылған болса да, Winbind бұл атауды айту керек. Мұны smb.conf файлына "homedir үлгісі = /home/%U" жолын қосу арқылы жасаймыз (төменде қараңыз). күріш. он тоғыз). Бұл Winbind-ке Active Directory арқылы аутентификацияланған әрбір пайдаланушының үй каталогы /home/ болатынын айтады.<имя пользователя>. Алдымен /home каталогын жасауды ұмытпаңыз.


Күріш. он тоғыз. Басты каталог атауын көрсету

Доменге қосылу және кіру

Енді желі, PAM, NSS және Samba Winbind дұрыс орнатылғандықтан, Linux құрылғысын доменге қосу уақыты келді. Мұны көмегімен жасауға болады net командаларыСамба бағдарламалары. Пәрменді аудармашы шақыруында "net ads join -U" пәрменін іске қосыңыз<имя администратора>". Ауыстыру<имя администратора>компьютерлерді доменге қосу үшін жеткілікті өкілеттігі бар тіркелгі атауы.

Net пәрмені пайдаланушы құпия сөзін сұрайды. Егер бәрі жақсы болса, ол домендегі дұрыс компьютерге қосылады. Жасалған компьютер тіркелгісін табу үшін Active Directory пайдаланушылары мен компьютерлері қосымша модулін пайдалануға болады.

Winbind сынақ құралы, wbinfo арқылы байланыстыру күйін тексеруге болады. wbinfo -t іске қоссаңыз, компьютер мен домен арасындағы сенімділік қатынасы тексеріледі. wbinfo -u домендегі барлық пайдаланушыларды, ал wbinfo -g барлық топтарды тізімдейді.

Linux құрылғысы доменге сәтті қосылса, келесі қадам Active Directory пайдаланушы тіркелгісі мен құпия сөзбен кіруге тырысу болып табылады. Linux компьютерінен шығып, Active Directory пайдаланушы атымен кіріңіз. Егер бәрі дұрыс жұмыс істесе, жүйеге кіру мүмкіндігі болуы керек.

Active Directory ID салыстыру процесі үшін Active Directory конфигурациялануда

Бұл ақпарат тек Active Directory сәйкестендіру салыстыруын пайдаланатындарға қолданылады. RID картасын пайдалануды таңдағандар бұл панельді елемеуге болады.

Red Hat серверіне Active Directory тіркелгісі арқылы кірмес бұрын, Active Directory өзіне кейбір өзгертулер енгізу керек. Біріншіден, Active Directory схемасы пайдаланушы ақпаратын сақтау үшін Winbind пайдаланатын атрибуттармен жаңартылуы керек. Windows Server 2003 R2 жүйесінде жұмыс істегенде, схема пайдалануға дайын. Көбірек болған жағдайда ерте нұсқасы Active Directory схемасы үшін оны UNIX (SFU) үшін Microsoft Services бумасын пайдалану арқылы кеңейту қажет болады.

Қосымша ақпаратты TechNet сайтындағы UNIX қызметтерінен табуға болады. SFU сонымен қатар Active Directory пайдаланушыларына арналған қосымша сипат бетін және Linux үшін талап етілетін жеке және топтық модификатор ақпаратын басқаруға арналған Microsoft Computers Management Console (MMC) қосымша модулін қамтиды.

Схема дұрыс орнатылғаннан кейін Linux құрылғысына кіре алатын барлық пайдаланушылар (және олар мүше болып табылатын топтар) үшін Linux идентификаторларын қамтамасыз ету керек. Бұл Linux құрылғысына кіре алатын пайдаланушылар мен топтар үшін uidNumber және gidNumber атрибуттары үшін мәндерді анықтау керек дегенді білдіреді. Бірақ бұл атрибуттарға кейбір талаптарды есте ұстау керек:

  1. Linux өзін аутентификациялаған әрбір пайдаланушы үшін UID кодын талап етеді. Біз Active Directory ішіндегі пайдаланушы ақпаратын басқаруымыз керек болғандықтан, Linux құрылғысына кіретін әрбір пайдаланушы тіркелгісінде бірегей uidNumber төлсипаты болуы керек. uidNumber үшін пайдаланылатын арнайы мән маңызды емес, бірақ ол Linux құрылғысына кіре алатын барлық пайдаланушылар үшін бірегей болуы керек.
  2. Әрбір Linux пайдаланушысында әдепкі топ идентификаторы болуы керек, сондықтан Linux компьютеріне кіретін әрбір Active Directory пайдаланушысы gidNumber төлсипаты үшін де мәнді қажет етеді. Бұл мән пайдаланушылар арасында бірегей болуы шарт емес, бірақ ол топты бірегей түрде анықтауы керек.
  3. Active Directory ішіндегі әрбір топтың gidNumber төлсипаты үшін бірегей мәні болуы керек. Қатаң айтқанда, топтар үшін gidNumber төлсипаты үшін мән болмағаны дұрыс, бірақ пайдаланушының аутентификациясы кезінде Winbind пайдаланушы тиесілі әрбір топтың бірегей gidNumber мәніне ие болуын күтеді. Әр топта бар екеніне көз жеткізу оңайырақ шығар бірегей құндылық gidNumber.
  4. Winbind Active Directory ішінен тапқан әрбір пайдаланушы Домен пайдаланушылары тобының мүшесі болуын күтеді, сондықтан ол Домен пайдаланушылары тобында оның gidNumber төлсипаты үшін мәндер болуын күтеді.

Егер ол жұмыс істемесе ше?

Active Directory және Winbind арқылы аутентификация үшін Linux компьютерін орнату тривиальды жоба емес. Түзететін нәрселер көп және қате болуы мүмкін көптеген нәрселер бар. Linux немесе Samba-ның әрбір нұсқасының мүмкіндіктерінде сәл өзгеше болуы бұл тапсырманы жеңілдетпейді. Бірақ не болып жатқаны туралы ақпаратты қамтитын бірқатар дереккөздер бар.

Біріншісі /var/log/messages ішінде орналасқан Linux жүйелік журнал файлы. Samba бұл файлға жоқ файлдар немесе қате конфигурация сияқты маңызды оқиғаларды тіркейді. Жүйе журналының файлынан басқа, Samba және Winbind өздерінің журнал файлдары бар. Оларды /var/log/samba ішінде табуға болады және пайдаланушыға кейбір қосымша ақпаратты береді.

Түзету деңгейін орнату үшін оның іске қосу сценарийін өзгерту арқылы Winbind жасаған журнал хабарларының нақтылығын (және ұзындығын) арттыруға болады. /etc/init.d/winbind пәрмен қабықшасының сценарийін өңдеңіз және winbind пәрменіне "-d 5" қосыңыз. Бұл жөндеу деңгейін 5-ке дейін арттырады (жарамды мәндер 1-ден 10-ға дейін), бұл winbind-тің көбірек қате туралы хабарларын жасауға әкеледі.

Егер Winbind домен контроллерімен байланыса алса, Netmon 3.1 сияқты қызметтік бағдарлама арқылы желі пакеттерін түсіруге болады. Бұл Winbind не істеуге тырысып жатқанын нақты талдауға мүмкіндік береді. Сондай-ақ аутентификация әрекеттерін жазатын домен контроллеріндегі Windows қауіпсіздік журналын тексеруге болады.

Енді ол іске қосылды, бізде не бар?

Егер бәрі бірқалыпты жұмыс істесе, енді Active Directory қолдайтын тіркелгі деректерін пайдаланып Linux жүйелеріне кіруге болады. Бұл Linux құрылғысында жергілікті сәйкестендіруді басқару немесе NIS сияқты қауіпті жүйені пайдалану бойынша үлкен жақсарту. Бұл пайдаланушыны басқаруды бір идентификациялық дүкенде орталықтандыруға мүмкіндік береді: Active Directory.

Бірақ бұл шешімді шынымен пайдалы ете алатын кейбір нәрселер жетіспейді. Біріншіден, алу техникалық көмекбұл жерде сәттілік мәселесі. Көптеген Linux ұйымдары Active Directory туралы көп білмейді және Linux қауымдастығынан алуға болатын қолдау толығымен сіздің жазбаңызды кім оқығанына және оның бүгінгі күні қалай қарайтынына байланысты.

Сонымен қатар, Samba бумасы тасымалдау немесе орналастыру құралдарын қамтамасыз етпейді. Байланысты пайдаланушы идентификаторлары мен рұқсаттары бар бұрыннан бар Linux тіркелгілері болса, олар Active Directory қызметіне тасымалданған кезде олардың UID кодтарын сақтауын қолмен қамтамасыз ету керек.

Соңында, Active Directory-тің ең маңызды қолданбаларының бірі Топтық саясат жұмыс жүріп жатқанымен Samba-да қол жетімді емес. Linux жүйесін Active Directory-ге Samba арқылы қосуға болады, бірақ оны Топтық саясат арқылы басқару мүмкін емес.

Үшінші тарап шешімдері

Active Directory көмегімен Linux компьютерлерінің аутентификациясы жақсы нәрсе екені анық, бірақ Samba Winbind көмегімен өз шешіміңізді жасау қорқынышты түс болмаса, жалықтырады. Оқырмандар кейбір тапқыр бағдарламалық қамтамасыз ету жеткізушісі пайдалану оңайырақ шешім табуы керек деп ойлауы мүмкін және олар дұрыс болар еді.

Төрт коммерциялық бағдарламалық құрал жеткізушісі мен осы мақалада көрсеткен нәрселердің орнатуға және пайдалануға оңай нұсқаларын әзірледі. Олар Linux, UNIX және барлық дерлік танымал нұсқалары үшін код пен тасымалдау құралдарын қамтамасыз етеді Apple Macintosh, сондай-ақ Топтық саясатты пайдаланып Linux компьютерлерін басқаруға қолдау көрсету.

Төрт компания: Centrify, Likewise Software, Quest Software және Symark. Барлық төрт жеткізушілер Linux басылымдарының кең ауқымында топтық саясатты басқаруды қоса алғанда, ұқсас мүмкіндіктерді қамтамасыз етеді. Сол сияқты Бағдарламалық жасақтама жақында ашылды, ол Likewise Open деп аталады, бірақ оның Топтық саясат құрамдас бөлігі коммерциялық өнім болып қала береді. Сол сияқты Open бірнеше негізгі Linux шығарылымдары үшін қол жетімді болады. (Сізге бір құпияны айтайын: мен осы мақаланы жазып жатқанда, менің NetPro компаниямды Quest Software компаниясы сатып алды.)

Коммерциялық опциялар қол жетімді болған кезде Samba және Winbind көмегімен өзіңіздің аутентификация жүйеңізді құру мағынасы бар ма? Егер бюджетте интеграциялық бағдарламаларға ақша қарастырылмаса, Samba-ны ашық көзімен пайдалану тегін болу артықшылығына ие. Сіз сондай-ақ қызықтыратын бонус болуы мүмкін барлық бастапқы кодты аласыз. Бірақ бар Linux машиналарын және олардың бар UID кодтарын тасымалдау қиын мәселе болып табылады.

Екінші жағынан, егер сіз енгізу және орнату уақытын үнемдегіңіз келсе немесе сізде көшіруді қажет ететін бар Linux машиналары болса немесе сұрағыңызға сарапшы жауап алғыңыз келсе, коммерциялық шешімдерді қарау мағынасы бар. Топтық саясатты басқару қажет болса, оларға балама жоқ.

Бірақ Linux аутентификациясын Active Directory-мен біріктіретін кез келген шешім бірнеше пайдаланушы тіркелгілерін басқаруға жұмсалатын күш-жігерді азайтады, жүйе қауіпсіздігін жақсартады және басқару мен аудит үшін бір идентификациялық қойманы қамтамасыз етеді. Және бұл оны сынауға жеткілікті себептер.

Гил Киркпатрик

Екі факторлы аутентификация (2FA) – тіркелгіге немесе құрылғыға кіру үшін бірнеше ақпарат бөлігін қажет ететін аутентификация әдісі. Пайдаланушы аты/құпия сөз тіркесіміне қоса, 2FA пайдаланушыдан бір реттік құпия сөз (OTP, мысалы, алты санды растау коды) сияқты қосымша ақпаратты енгізуді талап етеді.

Жалпы, 2FA пайдаланушыдан әртүрлі ақпарат түрлерін енгізуді талап етеді:

  • Пайдаланушы білетін нәрсе (құпия сөз сияқты)
  • Пайдаланушыда бар нәрсе (мысалы, арнайы қолданба арқылы жасалған растау коды - аутентификация).

2FA - көп факторлы аутентификацияның (MFA) ішкі жиыны. MFA әдісі, пайдаланушы білетін және бар нәрсеге қосымша, ол бар нәрсені талап етеді. Бұл биометриялық деректер: саусақ ізі немесе дауысты тану және т.б.

2FA белгілі бір қызмет немесе құрылғы үшін аутентификация процесін қорғауға көмектеседі: тіпті құпия сөз бұзылған болса да, шабуылдаушыға қауіпсіздік коды қажет болады және бұл аутентификация қолданбасын орналастыратын пайдаланушының құрылғысына кіруді қажет етеді. Осы себепті, көптеген онлайн қызметтер аутентификация деңгейінде тіркелгілердің қауіпсіздігін арттыру мақсатында пайдаланушы тіркелгілері үшін 2FA қосу опциясын ұсынады.

Бұл оқулықта Ubuntu 18.04 жүйесінде root емес пайдаланушы үшін Google PAM модулін пайдаланып 2FA орнату жолын үйренесіз. Түбірлік емес пайдаланушы үшін 2FA орнатып жатқандықтан, құлыптау жағдайында сіз әлі де түбірлік тіркелгіңізден компьютерге қол жеткізе аласыз. Нұсқаулықтағы нұсқаулар жеткілікті жалпы, олар жергілікті және қашықтағы серверлерге де, жұмыс үстелі орнатуларына да қолдануға болады.

Талаптар

  • Ubuntu 18.04 сервері немесе жұмыс үстелі ортасы. Ubuntu 18.04 серверімен конфигурациялау қажет.
  • Мобильді құрылғыда орнатылған аутентификация (мысалы, Google Authenticator немесе Authy). Оның көмегімен сіз қауіпсіздік QR кодтарын сканерлейсіз.

1-қадам: Google PAM модулін орнату

Ubuntu 18.04 жүйесінде 2FA орнату үшін Linux жүйесіне арналған Google PAM модулін орнату қажет. Pluggable Authentication Module (PAM) — Linux пайдаланатын аутентификация механизмі. Google PAM модулі пайдаланушыға Google жасаған OTP кодтары арқылы 2FA аутентификациясын орындауға мүмкіндік береді.

Алдымен сіз жасаған sudo пайдаланушысы ретінде кіріңіз бастапқы параметрсерверлер:

ssh [электрондық пошта қорғалған] _server_ip

Соңғы аутентификацияны алу үшін Ubuntu пакетінің индексін жаңартыңыз:

sudo apt-get жаңартуы

Репозиторийлерді жаңартқаннан кейін PAM модулінің соңғы нұсқасын орнатыңыз:

sudo apt-get орнату libpam-google-authenticator

Бұл ешқандай тәуелділіксіз өте шағын пакет, сондықтан орнатуға бірнеше секунд кетеді. Келесі бөлімде sudo пайдаланушысы үшін 2FA орнатамыз.

2-қадам: Екі факторлы аутентификацияны орнату

PAM модулін орнатқаннан кейін, жүйеге кірген пайдаланушы үшін QR кодын жасау үшін оны іске қосыңыз. Бұл кодты жасайды, бірақ сіз оны қосқанша Ubuntu ортасына 2FA қажет болмайды.

PAM модулін іске қосу және конфигурациялау үшін google-authenticator пәрменін іске қосыңыз:

google-аутентификация

Пәрмен сізге конфигурациялау сұрақтарын қояды. Ол алдымен таңбалауыштардың уақыт шектеулі болуын қалайсыз ба деп сұрайды. Уақыты белгіленген аутентификация таңбалауыштарының мерзімі белгілі бір аралықтан кейін аяқталады (көптеген жүйелерде әдепкі 30 секунд). Уақыты белгіленген таңбалауыштар уақыты белгіленбеген таңбалауыштарға қарағанда қауіпсіз және 2FA іске асыруларының көпшілігі оларды пайдаланады. Мұнда кез келген опцияны таңдауға болады, бірақ біз Иә опциясын таңдап, уақыт шектеулі аутентификация таңбалауыштарын пайдалануды ұсынамыз:

Аутентификация таңбалауыштарының уақытқа негізделгенін қалайсыз ба (y/n) y

Бұл сұраққа y жауап беру арқылы сіз консольде шығыстың бірнеше жолын көресіз:

  • QR коды: бұл аутентификация қолданбасымен сканерлеуді қажет ететін код. Оны сканерлегеннен кейін қолданба әр 30 секунд сайын жаңа OTP жасайды.
  • Құпия кілт: бұл аутентификация қолданбасын орнатудың балама жолы. QR сканерлеуін қолдамайтын қолданбаны пайдаланып жатсаңыз, аутентификацияны орнату үшін құпия кілтті енгізуге болады.
  • Тексеру коды: Бұл нақты QR коды жасайтын алғашқы алты таңбалы код.
  • Төтенше скреттік кодтар. бұл бір реттік таңбалауыштар (сонымен қатар резервтік кодтар деп аталады), олар аутентификация құрылғысын жоғалтқан жағдайда 2FA аутентификациясынан өтуге мүмкіндік береді. Есептік жазбаның тоқтатылуын болдырмау үшін бұл кодтарды қауіпсіз жерде сақтаңыз.

Аутентификация қолданбасын орнатып, оны сақтағаннан кейін сақтық көшірме кодтарықауіпсіз жерде бағдарлама конфигурация файлын жаңартқыңыз келетінін сұрайды. n таңдасаңыз, орнату бағдарламасын қайта іске қосу керек болады. Өзгерістерді сақтау және жалғастыру үшін y теріңіз:

"~/.google_authenticator" файлыңызды жаңартуымды қалайсыз ба (y/n) y

Содан кейін бағдарлама аутентификация кодтарын бірнеше рет пайдалануды болдырмауды сұрайды. Әдепкі бойынша, жасалғаннан бері 30 секунд өтпесе де, әрбір кодты тек бір рет пайдалануға болады. Бұл ең қауіпсіз таңдау, себебі ол қандай да бір жолмен пайдаланылған растау кодын ала алған шабуылдаушының қайталау шабуылдарына жол бермейді. Осы себепті кодтарды бірнеше рет пайдалануға тыйым салған дұрыс. Бір таңбалауышты бірнеше рет пайдалануды болдырмау үшін y жауабын беріңіз:

Бір аутентификацияның бірнеше рет қолданылуына тыйым салғыңыз келе ме?
жетон? Бұл әр 30 секунд сайын бір логинмен шектеледі, бірақ ол артады
сіздің ортадағы адам шабуылдарын байқау немесе тіпті алдын алу мүмкіндігіңіз (y/n) y

Содан кейін аутентификация белгілерінің мерзімі өткеннен кейін біраз уақыттан кейін қабылдануын қалайтыныңызды көрсетуіңіз керек қалыпты терминәрекеттер. Кодтар уақытты өте сезімтал, сондықтан құрылғыларыңыз синхрондалмаған болса, олар жұмыс істемеуі мүмкін. Бұл опция аутентификация кодтары бәрібір қабылданатындай (тіпті құрылғыларыңыз уақытша синхрондалмаған болса да) әдепкі растау кодтарының жарамдылық мерзімін ұзарту арқылы осы мәселе бойынша жұмыс істейді. Барлық құрылғылардағы уақыт синхрондалғанына көз жеткізген дұрыс, өйткені иә деп жауап беру жүйенің қауіпсіздігін сәл төмендетеді. Токеннің жарамдылық мерзімі аяқталмауы үшін осы сұраққа n жауап беріңіз:

Әдепкі бойынша, таңбалауыштар өтеу үшін 30 секундқа жарамды
клиент пен сервер арасындағы мүмкін уақыт ауытқуы, біз қосымша мүмкіндік береміз
токен ағымдағы уақытқа дейін және кейін. Егер сіз кедейлермен қиындықтарға тап болсаңыз
уақытты үндестіру үшін терезені әдепкіден үлкейтуге болады
өлшемі 1:30 минуттан шамамен 4 минутқа дейін. Сіз мұны қалайсыз ба (y/n) n

Соңғы сұрақ - кіру әрекеттерінің санына шектеуді қосқыңыз келе ме? Бұл пайдаланушының 30 секунд ішінде үш сәтсіз кіру әрекетін жасауына жол бермейді, бұл жүйе қауіпсіздігін арттырады. y жауап беру арқылы бұл шектеуді қосыңыз:

Жүйеге кіріп жатқан компьютер қатал күшке қарсы қатайтылмаған болса
кіру әрекеттері үшін аутентификация модулі үшін жылдамдықты шектеуді қосуға болады.
Әдепкі бойынша, бұл шабуылдаушыларды әр 30 секунд сайын кіруге 3 әрекеттен аспайды.
Жылдамдықты шектеуді (y/n) қосқыңыз келе ме?

PAM модулін пайдаланып 2FA кодтарын орнаттыңыз және жасадыңыз. Енді сіздің ортаңызда 2FA қосу керек.

3-қадам: Ubuntu жүйесінде 2FA белсендіру

Google PAM модулі енді пайдаланушы үшін 2FA кодтарын жасайды, бірақ Ubuntu аутентификация процесінде кодтарды пайдалану қажет екенін әлі білмейді. Осы кезде негізгі аутентификацияға қосымша 2FA токендерін қолдауды қосу үшін Ubuntu конфигурациясын жаңарту қажет.

Мұнда екі жол бар:

  1. Пайдаланушы жүйеге кірген сайын және пайдаланушы sudo құқықтарын сұраған сайын екі факторлы аутентификацияны талап ете аласыз.
  2. Жүйеге кіру кезінде тек 2FA талап ете аласыз, содан кейін sudo құқықтарын сұраған кезде тек пайдаланушының құпия сөзі қажет болады.

Бірінші нұсқа sudo артықшылықтарын талап ететін кез келген әрекетті қамтамасыз ету қажет жалпы орта үшін өте қолайлы болар еді. Екінші тәсіл сіз жүйедегі жалғыз пайдаланушы болып табылатын жергілікті жұмыс үстелі ортасы үшін тиімдірек.

Ескерту A: SSH арқылы қатынайтын қашықтағы құрылғыда 2FA қоссаңыз, жалғастырмас бұрын нұсқаулықтың екінші және үшінші қадамдарын орындауыңыз керек. Осы оқулықтағы қалған қадамдар барлық Ubuntu қондырғыларына қолданылады, бірақ қашықтағы орталар SSH қызметін 2FA туралы хабардар ету үшін қосымша конфигурацияны қажет етеді.

Ubuntu орнатуына қол жеткізу үшін SSH қолданбасаңыз, осы оқулықтағы қалған қадамдарға өтуге болады.

Жүйеге кіру және sudo жоғарылауы туралы 2FA сұрауы

Жүйеге кіру және кейінгі артықшылықты арттыру сұраулары кезінде 2FA пайдалануы үшін, бар файлдың соңына жол қосу арқылы /etc/pam.d/common-auth файлын өңдеу керек.

Жалпы аутентификация файлы пайдаланылатын ортаға қарамастан жүйедегі барлық аутентификация механизмдеріне қолданылады. Ол сондай-ақ пайдаланушы жүйеге кіргеннен кейін пайда болатын аутентификация сұрауларына қолданылады, мысалы, терминалдан жаңа буманы орнату кезінде sudo құқықтарын сұрау кезінде.

Файлды ашу:

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

Файлдың соңына қосыңыз:

...
# және мұнда әр пакеттік модульдер бар («Қосымша» блок)
сеанс қажет pam_unix.so


Бұл жол Ubuntu аутентификация жүйесін Google PAM модулімен жүйеге кіру кезінде 2FA қолдауына мүмкіндік береді. Nullok опциясы бар пайдаланушыларға тіркелгілері үшін 2FA аутентификациясын орнатпаса да жүйеге кіруге мүмкіндік береді. Басқаша айтқанда, 2FA орнатқан пайдаланушылар жүйеге келесі жолы кіргенде аутентификация кодын енгізуі қажет, ал google-authenticator пәрменін іске қоспаған пайдаланушылар орнатылғанша стандартты тіркелгі деректерімен жүйеге кіре алады. 2FA.

Файлды сақтаңыз және жабыңыз.

Жүйеге кірген кезде ғана 2FA сұрауы

Жұмыс үстелі ортасына кіргенде ғана 2FA сұралуын қаласаңыз, пайдаланып жатқан жұмыс үстелі менеджерінің конфигурация файлын өңдеуіңіз керек. Конфигурация файлының аты әдетте жұмыс үстелі ортасының атымен бірдей. Мысалы, gdm конфигурация файлы (Ubuntu 16.04 нұсқасынан бері әдепкі Ubuntu ортасы) /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 арқылы) қосылған кезде Ubuntu енді 2FA талап етеді, бірақ бұл sudo көмегімен іске қосылған пәрмендерге қолданылмайды.

Сіз Ubuntu жүйесін 2FA қолдауына теңшедіңіз. Енді конфигурацияны тексеру және Ubuntu жүйесіне кірген кезде сізден қауіпсіздік коды сұралатынына көз жеткізу керек.

4-қадам: Екі факторлы аутентификацияны тексеру

Бұрын сіз кодтарды 30 секунд сайын жасау үшін 2FA орнатқансыз. Енді Ubuntu ортаңызға кіріп көріңіз.

Алдымен жүйеден шығып, Ubuntu ортаңызға қайта кіріңіз:

ssh [электрондық пошта қорғалған] _server_ip

Құпия сөзге негізделген аутентификацияны пайдалансаңыз, сізден пайдаланушы құпия сөзі сұралады:

Ескерту: Қашықтағы серверде сертификаттың аутентификациясын пайдалансаңыз, құпия сөз сұралмайды. Кілт автоматты түрде беріледі және қабылданады. Сізге тек растау кодын енгізу қажет.

Құпия сөзді енгізіңіз, содан кейін сізден 2FA кодын енгізу сұралады:

Тексеру коды:

Осыдан кейін сіз жүйеге кіресіз:

[электрондық пошта қорғалған] _server_ip: ~#

Егер 2FA тек кіру үшін қосылған болса, сеанс аяқталғанша немесе жүйеден қолмен шыққанша 2FA растау кодтарын енгізу қажет болмайды.

Жалпы аутентификация файлы арқылы 2FA қоссаңыз, сізден sudo артықшылықтарына арналған әрбір сұрауда оны көрсету сұралады:

[электрондық пошта қорғалған] _server_ip: ~# sudo -s
8 хост үшін sudo құпия сөзі:
Тексеру коды:
[электрондық пошта қорғалған] _server_ip:

2FA конфигурациясының дұрыс жұмыс істеп тұрғанын растадыңыз. Бірдеңе дұрыс болмаса және жүйе сізден растау кодтарын сұрамаса, нұсқаулықтың үшінші бөліміне оралыңыз және дұрыс Ubuntu аутентификация файлын өңдегеніңізге көз жеткізіңіз.

5: 2FA блоктауын болдырмау

Мобильді құрылғы жоғалған немесе жойылған жағдайда әдістерді қамтамасыз ету маңызды Резервтік көшірме 2FA қосылған тіркелгіңізге қайта кіру үшін. 2FA-ны алғаш рет орнатқанда, бұғатталғаннан кейін кіруді қалпына келтірудің бірнеше опциясы болады:

  • Құпия конфигурация кодтарының сақтық көшірмесін қауіпсіз жерде сақтаңыз. Мұны қолмен жасауға болады, бірақ Authy сияқты кейбір аутентификация қолданбалары кодтың сақтық көшірмесін жасау мүмкіндіктерін қамтамасыз етеді.
  • Қалпына келтіру кодтарын қажет болған жағдайда қол жеткізуге болатын 2FA қосылған ортадан тыс қауіпсіз жерде сақтаңыз.

Егер қандай да бір себептермен сақтық көшірме опцияларына қол жеткізе алмасаңыз, кіруді қалпына келтіруге тырысуға болады жергілікті ортанемесе 2FA қолдауы бар қашықтағы серверге басқа жолмен.

6-қадам: Жергілікті ортаға қол жеткізуді қалпына келтіру (қосымша)

Құрылғыға физикалық рұқсатыңыз болса, 2FA өшіру үшін қалпына келтіру режиміне жүктеуге болады. Қалпына келтіру режимі әкімшілік тапсырмаларды орындау үшін пайдаланылатын Linux жүйесіндегі мақсатты түрі (іске қосу деңгейіне ұқсас). Қалпына келтіру режиміне өту үшін GRUB ішіндегі кейбір параметрлерді өңдеу қажет.

GRUB жүйесіне кіру үшін алдымен компьютерді қайта іске қосыңыз:

GRUB мәзірі пайда болғанда, Ubuntu жазбасының бөлектелгенін тексеріңіз. Бұл әдепкі 18.04 орнату атауы, бірақ орнатқаннан кейін оны қолмен өзгертсеңіз, басқаша болуы мүмкін.

Содан кейін жүйені жүктеу алдында GRUB конфигурациясын өңдеу үшін пернетақтадағы e пернесін басыңыз.

Пайда болған файлдың соңына өтіп, linux-тан басталып, $vt_handoff-пен аяқталатын жолды табыңыз. Осы жолдың соңына өтіп, systemd.unit=rescue.target қосыңыз. $vt_handoff және systemd.unit=rescue.target арасында бос орын қалдырғаныңызға көз жеткізіңіз. Бұл Ubuntu құрылғысын қалпына келтіру режиміне жүктеуге мүмкіндік береді.

Өзгерістерді енгізгеннен кейін Ctrl + X пернелер тіркесімін пайдаланып файлды сақтаңыз. Құрылғыңыз қайта жүктеледі және сіз мына жерде боласыз. пәрмен жолы. Қалпына келтіру режиміне өту үшін Enter пернесін басыңыз.

Пәрмен жолында блокталған пайдаланушының үй каталогында орналасқан Google Authenticator конфигурация файлын ашыңыз.

nano /home/8host/.google-authenticator

Бұл файлдағы бірінші жол аутентификацияны орнату үшін пайдаланылатын пайдаланушының жеке кілті болып табылады.

Енді сізде екі нұсқа бар:

  1. Жеке кілтті көшіріп, аутентификацияны орнатуға болады.
  2. Таза кестеден бастағыңыз келсе, сол пайдаланушы үшін 2FA өшіру үшін ~/.google-authenticator файлын толығымен жоюға болады. Жүйеге қайта кіргеннен кейін сіз 2FA-ны қайтадан орнатып, жаңа құпия кілтті ала аласыз.

Қалай болғанда да, GRUB жүктеушісі арқылы жергілікті ортада 2FA блоктаудан кейін жүйені қалпына келтіруге болады. Әрі қарай, бұғатталған қашықтағы ортаға кіруді қалай қалпына келтіру керектігін түсіндіреміз.

7-қадам: Жойылған ортаға қол жеткізуді қалпына келтіру (қосымша)

Егер сіздің sudoer тіркелгіңіз қашықтағы ортада құлыпталған болса, түбірлік пайдаланушыны пайдаланып 2FA-ны уақытша өшіруге немесе қайта конфигурациялауға болады.

Түбірлік пайдаланушы ретінде кіру:

ssh [электрондық пошта қорғалған] _server_ip

Жүйеге кіргеннен кейін файлды ашыңыз Google параметрлеріБлокталған пайдаланушының үй каталогында орналасқан аутентификация:

sudo nano /home/8host/.google_authenticator

Бұл файлдағы бірінші жол пайдаланушының жеке кілті болып табылады, ол сізге аутентификацияны орнату үшін қажет.

Енді сізде екі жол бар:

  1. Жаңа немесе өшірілген құрылғыны орнатқыңыз келсе, аутентификация қолданбасын қайта конфигурациялау үшін құпия кілтті пайдалануға болады.
  2. Таза кестеден бастағыңыз келсе, сол пайдаланушы үшін 2FA өшіру үшін /home/8host/.google_authenticator файлын толығымен жоюға болады. Sudo пайдаланушысы ретінде жүйеге кіргеннен кейін сіз 2FA-ны қайтадан орнатып, жаңа жеке кілт ала аласыз.

Осы опциялардың кез келгенімен сіз түбірлік тіркелгіні пайдаланып кездейсоқ 2FA блогынан қалпына келтіре аласыз.

Қорытынды

Бұл оқулықта сіз Ubuntu 18.04 құрылғысында 2FA орнатасыз. Екі факторлы аутентификация есептік жазба мен жүйе қауіпсіздігінің қосымша деңгейін қамтамасыз етеді. Стандартты тіркелгі деректерінен басқа, жүйеге кіру үшін қосымша растау кодын енгізу қажет болады. Бұл сіздің тіркелгіңізге рұқсатсыз кіруді мүмкін емес етеді, тіпті шабуылдаушы тіркелгі деректеріңізді алса да.

Тегтер: ,

Егер сіз Linux әкімшісі болсаңыз және серверлер мен жұмыс үстелдерін мүмкіндігінше қауіпсіз ұстағыңыз келсе, екі факторлы аутентификацияны пайдалану туралы ойлаған боларсыз. Жалпы, оны барлығына орнату ұсынылады, өйткені екі факторлы аутентификация шабуылдаушыларға сіздің машиналарыңызға қол жеткізуді қиындатады.

Linux жүйесі компьютерді консольге, жұмыс үстеліне немесе Secure Shell арқылы осы құрылғыға байланыстырылған екі факторлы аутентификация кодынсыз кіре алмайтындай етіп орнатуға мүмкіндік береді. үшін бүкіл орнату процесін қарастырыңыз Ubuntu жүйесіСервер 16.04.

Кіріспе

Бастамас бұрын есте сақтау керек нәрсе, екі факторлы аутентификацияны орнатқаннан кейін, үшінші тарап жасаған кодтарсыз компьютерге қол жеткізе алмайсыз. Жүйеге кіргіңіз келген сайын сізге смартфон немесе жол бойында орнатуға болатын төтенше жағдайлар кодтары қажет болады.

Бізге Linux сервері немесе жұмыс үстелі қажет болады. Күтпеген жағдайларда жүйенің жаңартылғанын және деректердің сақтық көшірмесі жасалғанын тексеріңіз. Екі факторлы кодтарды жасау үшін біз қолданамыз үшінші тарап қолданбасы, мысалы, Authy немесе Google Authenticator. Біз Google Authenticator шартты түрде қолданамыз, ол алдымен орнатылуы керек.

Орнату

Жүйеге кіріп, келесі қадамдарды орындаңыз:

  1. Терминал терезесін ашыңыз.
  2. Пәрменді іске қосыңыз: sudo apt орнату libpam-google-authenticator.
  3. sudo құпия сөзін енгізіп, Enter пернесін басыңыз.
  4. Растау сұралса, «y» деп теріп, Enter пернесін басыңыз.
  5. Орнатудың аяқталуын күтіңіз.

Енді компьютерді екі факторлы аутентификация үшін орнату уақыты келді.

Конфигурация

Терминал терезесіне оралып, пәрменді енгізіңіз: sudo nano /etc/pam.d/common-auth. Файлдың соңына келесі жолды қосыңыз:

Осы файлды сақтаңыз және жабыңыз.

Енді жүйеге кіруі қажет әрбір пайдаланушы үшін Google Authenticator орнатуымыз керек. Мұны істеу үшін терминал терезесіне оралыңыз және рұқсат беруді жоспарлап отырған пайдаланушы атынан google-authenticator пәрменін іске қосыңыз. Мұнда сіз бірнеше сұраққа жауап беруіңіз керек.

Бірінші сұрақ: «Сіз аутентификация таңбалауыштарының уақытқа негізделгенін қалайсыз ба (y/n)». «y» деп жауап беріңіз, сізге QR коды беріледі. Смартфоныңызда екі факторлы қолданбаны ашыңыз, есептік жазба қосыңыз және осы QR кодын сканерлеңіз.

Сурет 1. Алынған QR коды

Кодты қосқаннан кейін жауап беретін тағы бірнеше сұрақ қалды:

  • "/home/jlwallen/.google_authenticator" файлыңызды (y/n) жаңартуымды қалайсыз ба - /home/jlwallen/.google_authenticator файлыңызды жаңартқыңыз келе ме;
  • Бір аутентификация таңбалауышын (y/n) бірнеше рет пайдалануға тыйым салғыңыз келе ме? - Бір таңбалауышты бірнеше рет қайта пайдалану мүмкіндігін өшіргіңіз келе ме? Бұл параметр әрбір 30 секунд сайын бір ғана кіруге мүмкіндік береді. Бұл опция қосылса, сіздің ортадағы адам шабуылын анықтау немесе тіпті алдын алу мүмкіндігіңіз артады.
  • Әдепкі мән 30 секунд болғандықтан және сервер мен клиент уақыты сәл өзгеше болуы мүмкін, кейбір қосымша таңбалауышты пайдалануға болады. Сондықтан, синхрондау мәселелері туындаса, терезе уақытын шамамен 4 минутқа дейін арттыруға болады. Сіз мұны істегіңіз келе ме? - Олай жасағың келе ме (y/n).
  • Компьютеріңізді қатал шабуылдардан қорғауға күмәніңіз болса, аутентификация модулі үшін жылдамдық шегін қосуға болады. Әдепкі бойынша әр 30 секунд сайын 3 кіру әрекетінен аспайды. Жылдамдықты шектеуді қосқыңыз келе ме? - Жылдамдықты шектеуді қосқыңыз келе ме (y/n)

Әрбір сұраққа «y» деп теріп, Enter пернесін басу арқылы иә деп жауап беріңіз.

SSH орнату

Келесі қадам екі факторлы аутентификациямен жұмыс істеу үшін SSH орнату болып табылады. Бұл қадамды өткізіп жіберсеңіз, SSH арқылы жүйеге кіре алмайсыз.

Алдымен PAM модулін қосу керек. Ол үшін пәрменді тереміз: sudo nano /etc/pam.d/sshd. Файл ашық болса, файлдың соңына келесі жолды қосыңыз:

аутентификация қажет pam_google_authenticator.so nullok

Осы файлды сақтаңыз, содан кейін пәрменді орындаңыз: sudo nano /etc/ssh/sshd_config. Бұл файлда біз табамыз:

ChallengeResponseAuthentication №

Және келесіге өзгерту:

ChallengeResponseAuthentication иә

Осы файлды сақтаңыз және sshd қайта іске қосыңыз - sudo systemctl sshd қайта іске қосыңыз.

Кіру

Жүйеден шығу алдында жаңа терминал терезесін ашып, SSH арқылы жүйеге кіріп көруді ұсынамыз. Бұл сәтсіз болса, ештеңені жіберіп алмағаныңызға көз жеткізіп, жоғарыдағы барлық қадамдарды қайталаңыз. SSH арқылы сәтті кіргеннен кейін сеанстан шығып, қайта кіре аласыз.

қорытындылар

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!