Прозора автентифікація до Ubuntu Server
Продовжуючи тему інтеграції системи на базіUbuntu Server 12.04.5 в доменну інфраструктуруActive Directory (AD), у цій нотатці я розгляну таке питання як налаштування безпарольного підключення до системиUbuntu з клієнтських комп'ютерів під керуваннямWindows 7, тобто це свого роду налаштуванняSingle sign-on (SSO).
Таку прозору аутентифікацію я показував у себе на блозі, як для
цим ініціалізувалося підключення до термінального серверуWindows. А ця практична нотатка покаже ще один варіант використанняSingle sign-on.
Отже, в доменіPolygon.local створив групуLinuxAdmin і включив до неї користувача з обліковим записомadmin.
Ця нотатка спирається на наступні:
Активуємо підтримкуGSSAPI для службиOpenSSH і зумовлю обмеження за групами доступу на підключення з поза:
$ sudo nano /etc/ssh/sshd_config
AllowGroups adm LinuxAdmin
Зберігаємо внесені зміни.
На замітку: Дозволені групи вказують з роздільником у вигляді пробілу. У списку можуть фігурувати як локальні (для локальних користувачів) так і доменні (для доменних користувачів) групи доступу, при цьому їх назви мають бути вказані в нижньому регістрі, оскільки їх повертає командаgroups для поточного користувача.
Прикмет виведення груп, у яких складається поточний користувач:
ekzorchik adm cdrom sudo dip plugdev lpadmin sambashare domain users schema admins enterprise admins domain admins BUILTIN\administrators BUILTIN\users
domain users domain admins BUILTIN\administrators BUILTIN\users linuxadmin
, Висновокпоказує, що користувачadmin належить групі linuxadmin.
Для набуття чинності змін перезапускаємо службу сервераSSH :
$ sudo service ssh restart
ssh start/running, process 3283
Далі реалізую можливість дляKerberos — підсистеми представлятися різним службам від імені запису виду:(SPN) HOST/@.
$ sudo rm /etc/krb5.keytab
$ sudo net ads keytab create -U ekzorchik
Enter ekzorchik's password: вказую пароль - 712mbddr@
$ sudo net ads keytab add HOST/[email protected] -U ekzorchik
Processing principals to add.
Enter ekzorchik's password: 712mbddr@
, де—U ekzorchik ( замість цього облікового запису вказується будь-який доменний користувач, що перебуває в групі “Domain Admins ” )
Тепер подивимося, що отримаємо з висновку команди:
$ sudo net ads keytab list
Vno Type Principal
2 DES cbc mode with CRC-32 host/[email protected]
2 DES cbc mode with RSA-MD5 host/[email protected]
2 ArcFour with HMAC/md5 host/[email protected]
2 DES cbc mode with CRC-32 host/[email protected]
2 DES cbc mode with RSA-MD5 host/[email protected]
2 ArcFour with HMAC/md5 host/[email protected]
2 DES cbc mode with CRC-32 [email protected]
2 DES cbc mode with RSA-MD5 [email protected]
2 ArcFour with HMAC/md5 [email protected]
2 DES cbc mode with CRC-32 HOST/[email protected]
2 DES cbc mode з RSA-MD5 HOST/[email protected]
2 ArcFour with HMAC/md5 HOST/[email protected]
Даліредагую конфігураційний файлSamba 3.6.3 :
$ sudo nano /etc/samba/smb.conf
kerberos method = secrets and keytab
Зберігаємо внесені зміни
Host Name (або IP-адреса) = srv-serv
, де srv-serv – це запис вже через оснастку DNS заведена на домен контролера вручну зіставленням IP та DNS.
Use system username (admin)
, де admin – ім'я поточного користувача Windows
Connection – SSH – Auth – GSSAPI (включаємо опції)
Привід GSSAPI authentication (SSH-2 тільки)
Allow GSSAPI credential delegation
Після цього знову переходимо вSession і зберігаємо налаштування даного підключення:
Saved Sessions – вказуємо на ім'я сервера до якого підключаємося та натискаємо Save

Пробую здійснити підключення кнопкою «Open », на запит про прийняттяSSH токена погоджуюсь натиснувши «ТА »

Підключення має пройти прозоро без запиту введення пароля в контексті користувача, з якого в даний момент запущеноSSH — клієнтPuTTY, у мене пройшло:

Якщо ж Ви все ж таки виводиться пропозиція ввести пароль:
Для розслідування цього інциденту потрібно включити докладне логування в файлі конфігураціїsshd_config :
$ sudo nano /etc/ssh/sshd_config
Зберігаю внесені зміни.
На робочій станції знову ініціалізуємо підключення через клієнтPutty і переключившись на консоль роботи з серверомUbuntu дивимося розширені логи підключення з метою позначити проблеми та вирішити :
$ sudo tail -f /var/log/auth.log grep w7x86.polygon.local
Sep 14 16:03:26 srv-serv sshd[3369]: User admin from w7x86.polygon.localListed in AllowGroups
Як видно у мене в конфізі/ etc/ssh/sshd_config група задана з використання великого написання, а потрібно було вказати просто без цього, сам же собі вище в замітці навів приклад виведення командиgroups - ось і моя неуважність., Виправляю:
$ sudo nano /etc/ssh/sshd_config
AllowGroups adm linuxadmin
Зберігаю зміни та перезапускаю демонSSH :
$ sudo service ssh restart
ssh start/running, process 3381
Перевірю знову підключення через клієнтPutty і цього разу проблем немає. Так перед тим як панікувати, раджу почитати логи, а вже потім якщо все ж таки не вдається вирішити проблеми на основі повідомлень логів вже Google.
Пробую повторити під облікомalektest і отримую помилку, ну не зовсім щоб помилку, а запит введення пароля для аутентифікації:
За допомогою username «alektest».
вводжу пароль: Aa1234567
За допомогою username «alektest».
, а воно і правильно, адже він не перебуває ні в якій групі, крім "Domain Users ". Та й до того ж у логах фіксую:
$ sudo tail -f /var/log/auth.log grep alektest
Sep 14 17:46:32 srv-serv sshd[5455]: debug1: userauth-request for user alektest service ssh-connection method none [preauth]
Sep 14 17:46:32 srv-serv sshd[5455]: User alektest from w7x86.polygon.local
Sep 14 17:46:32 srv-serv sshd[5455]: input_userauth_request: invalid user alektest [preauth]
Sep 14 17:46:32 srv-serv sshd[5455]: debug1: userauth-request for user alektest service ssh-connection метод gssapi-with-mic [preauth]
Sep 14 17:46:32 srv-serv sshd[5455]: debug1: PAM: initializing for "alektest"
Використовуйте проксі ((заблоковано розкомнаглядом, використовуйте vpn або proxy)) під час використання Telegram клієнта:
з'являтимуться частіше :)
Карта МКЛ: 4432-7300-2472-8059 Yandex-гроші: 41001520055047