Я використовую сервер 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.8
8.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
Це воно. Це працювало для мене, і я сподіваюся, що ви вважаєте це корисним.
Численні ресурси були розглянуті, щоб я міг це зрозуміти. Ось короткий список (ряд цих посилань вказує на мої власні питання по темі):
sudo
d, чи я щось пропускаю?
sudo
' - І це краще ... в який спосіб? (Якщо будь-який обліковий запис користувача, який має право на sudo, є компрометованим, це в основному те саме. І в принципі однаково просто [чи ні] - брутефорс-корінь або акаунти користувачів. Найкраще - налаштувати лише паб-ключ із входом та відключити всі паролі- на основі логінів.)