Я використовую сервер Ubuntu 10.04.
Я використовую сервер Ubuntu 10.04.
Відповіді:
[Редагувати] З тих пір я перевірив цю повну версію сервера Ubuntu 10.04 (21 травня / 2010 р . ) .
Я налаштував свій Ubuntu 10.04 Server LTS, що знаходиться у мережі Windows, для автентифікації входів, використовуючи активний каталог, після чого змонтуйте спільний доступ до Windows, щоб він був домашнім каталогом.
Ось що я зробив, починаючи з початкової установки Ubuntu.
Отримуйте оновлення
# sudo apt-get update && sudo apt-get upgrade
Встановити SSH-сервер ( sshd)
# sudo apt-get install openssh-server
Дехто заперечує, що вам слід «заблокувати sshd down», відключивши кореневі логіни. Я вважаю, що якщо ваш розумний досить зламати сеанс ssh для кореневого пароля, ви, мабуть, не будете зірвані додаванням PermitRootLogin noу /etc/ssh/sshd_configфайл. Якщо ваш параноїк чи не просто не переконаний, то відредагуйте файл або надішліть такий перелік:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
Встановіть необхідні пакети
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
Зробіть кілька основних мережевих прибирань у мережі, готуючись до конкретних конфігурацій пакету, що надходить.
Визначте ваше доменне ім'я Windows, ім'я DNS-сервера та IP-адресу для активного сервера каталогів (для samba). Для зручності я встановив змінні середовища для домену Windows та DNS-сервера. Для мене це було (моя IP-адреса AD була 192.168.20.11):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
Якщо ви хочете з’ясувати, що таке ваш домен і DNS-сервер (я був підрядником і не знав мережі), ознайомтеся з цією корисною посиланням .
Нам потрібно охрестити поле Linux у новій мережі, це робиться шляхом редагування файлу хоста (замінити DNS на FQDN вікна DNS):
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
Ми також повинні сказати майбутнім встановленим службам, де вони можуть знайти там лідера: деякі мережі матимуть служби пошуку назв netbios, але про всяк випадок додайте явний запис у свій /etc/hostsфайл, у моїй конфігурації я додав запис на третьому (3) рядок:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Процеси аутентифікації та обміну файлами для вікон Windows та Linux повинні мати погодження своїх годин. Зробіть це за допомогою сервісу NTP, і на серверній версії Ubuntu служба NTP встановлюється та налаштовується з одним (1) сервером NTP. Додайте своє перед Ubuntu (або замініть його повністю). У мережі, до якої я приєднувався, був також сервер DNS, який обслуговував послугу NTP.
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
Перезапустіть демон NTP:
# sudo /etc/init.d/ntp restart
Конфігурація Kerberos
Інструкції, які випливають тут, не слід сприймати буквально: значення для MYDOMAIN.LOCALта srv1.mydomain.localпотрібно замінити тим, що підходить для вашої мережі під час редагування файлів, але зауважте, що там, де використовується UPPERCASE, потрібні UPPERCASE .
Якщо під час apt-get installКербероса у вас виникло уявлення правильно відповісти на питання "домен за замовчуванням", то добре, для вас інакше вам доведеться зробити наступне.
Відредагуйте (раніше встановлений вище) /etc/krb5.confфайл.
Знайдіть [libdefaults]розділ та змініть пару ключових значень:
[libdefaults]
default_realm = MYDOMAIN.LOCAL
Додайте до [realms]розділу файлу наступне:
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
Додайте до [domain_realm]розділу файлу наступне:
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
Приємним випробуванням на даний момент є перевірити, чи ваш контролер AD видасть вам квиток на kerberos. Це не обов'язково, але це може змусити
когось із вас запаморочити:
# kinit <some_windows_domain_user>
Тоді, щоб побачити квиток:
# klist
Ви побачите інформацію про кеш квитків та терміни дії та поновлення. Як тільки хитрість зменшиться, ви також можете випустити / знищити квиток:
# kdestroy
Налаштування самби.
Згідно з наступним:
Бувають випадки, коли не можна використовувати CIFS або краще вибрати іншу мережеву файлову систему. Якщо для додаткової безпеки потрібна підтримка автентифікації kerberos (krb5 / SPNEGO), тоді smbclient або smbfs Samba слід використовувати замість cifs
Alas, cifsпідтримка в ядрі для ubuntu 10.04 (на основі версії ядра 2.6.32.9) знаходиться у версії 1.61, і згідно з документацією на ядро, експериментальна реалізація kerberos існує з версії 1.54.
Отже, ти там. Я не маю уявлення, чи cifsне спрацювало б, тому я надаю вам конфігурацію samba:
Замініть /etc/samba/smb.conf(пам’ятайте, я працював із чистого дистрибутива Ubuntu, тому я не хвилювався, що щось зламає):
[global]
security = ads
realm = MYDOMAIN.LOCAL
password server = 192.168.20.11
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
Запускайте та зупиняйте різні послуги.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Налаштуйте аутентифікацію.
Відредагуйте /etc/nsswitch.conf. Мені вдалося виконати таку команду, щоб отримати те, що мені потрібно:
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
Ось вміст мого /etc/nsswitch.confфайлу:
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
Запускайте та зупиняйте різні послуги.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Приєднайте комп’ютер до домену. Я не впевнений, що це необхідно; особливо через можливість захисту у smb.confфайлі ( security = ads). Можливо, хтось може зважитися на це ...
# sudo net ads join -U any_domain_user_account
Ви можете отримати помилку DNS update failed!, але ви приєднаєтесь до домену. Якщо ви отримаєте помилку про неможливість пошуку сервера, ваші записи DNS потрібно змінити. Під час встановлення Ubuntu сервер імен часто вказуватиме на ваш шлюз: більшість маршрутизаторів надаватимуть послугу DNS. Найкраща практика адміністрування сервера Windows - ADC також повинен працювати з DNS. У моєму випадку мій /etc/resolve.confвиглядає наступним чином : є Google DNS, досить надійне резервне копіювання в разі , якщо вікна один йде вниз.
nameserver 192.168.20.11
nameserver 8.8.8.88.8.8.8
У цей момент я міг увійти (можливо, після перезавантаження), домашні каталоги не існували, але я міг увійти.
CIFS Налаштування на вхід
Цей наступний крок став для мене вишнею; Я не хотів, щоб відповідальність за резервне копіювання робочих каталогів усіх, і ящик Ubuntu, який повинен працювати, був підозрюваним щодо надійності. Виконуючи такі дії, користувачі могли авторизуватися та переглядати свій каталог користувачів Windows автоматично .
Завантажте pam_mountмодуль:
# sudo apt-get install libpam-mount
Я хотів, щоб точка монтажу була в традиційному /home/<user>місці: ця частина налаштована /etc/samba/smb.confфайлом ( template homedir = /home/%U). Але мені це було потрібно для того, щоб проглянути деталь і вказати на власну директорію Windows. Це відбувається шляхом редагування /etc/security/pam_mount.conf.xmlфайлу (який, незважаючи на намір, XML не читається людиною):
Додайте до /etc/security/pam_mount.conf.xmlта змініть відповідне:
<volume
user="*"
server="srv1.mydomain.local"
path="UserShares"
mountpoint="home"
fstype="cifs"
/>
<cifsmount>mount -t cifs //%(SERVER)/%(VOLUME)/%(USER) %(MNTPT)/%(USER) -o "user=%(USER),uid=%(USERUID),gid=%(USERGID)%(before=\",\" OPTIONS)"</cifsmount>
Через мій точки монтажу Google, я повинен був також додати цей рядок:
<umount>umount %(MNTPT)/%(USER)</umount>
І щоб створені каталоги користувачів (для точки монтажу) автоматично знаходили рядок і робили його таким:
<mkmountpoint enable="1" remove="false" />
remove="false"Біт дуже важливий: якщо він встановлений істинно, pam_mount.soнамагається видалити каталог точки , які він не може робити , якщо користувач увійшов в систему кілька разів монтувати. У цьому випадку у вас є багато бродячих кріплень у вашій системі.
pam_mount.soяк і раніше не так, як обіцяли. У теперішньому вигляді версії продовжують накопичуватися, а домашні каталоги не створюються. Десь між тут і попереднім випуском версії 10.04 Beta 2, він працював. Я не можу цього відтворити.
Тим часом для створення каталогу, на який я покладаюсь pam_mkhomedir.so, я приклеював рядок безпосередньо перед pam_mount.soрядком для розміщення.
Я досі не вирішив проблему з декількома монтажами. Але поки pam_mount.soце не виправлено, це те, що я отримав у своєму /etc/pam.d/common-sessionфайлі:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_mount.so
Це воно. Це працювало для мене, і я сподіваюся, що ви вважаєте це корисним.
Численні ресурси були розглянуті, щоб я міг це зрозуміти. Ось короткий список (ряд цих посилань вказує на мої власні питання по темі):
sudod, чи я щось пропускаю?
sudo' - І це краще ... в який спосіб? (Якщо будь-який обліковий запис користувача, який має право на sudo, є компрометованим, це в основному те саме. І в принципі однаково просто [чи ні] - брутефорс-корінь або акаунти користувачів. Найкраще - налаштувати лише паб-ключ із входом та відключити всі паролі- на основі логінів.)