Я использую Ubuntu 10.04 Server.
Я использую Ubuntu 10.04 Server.
Ответы:
[Edit] С тех пор я протестировал это полный выпуск Ubuntu 10.04 Server (21 мая 2010 года) .
Я сконфигурировал сервер LTS Ubuntu 10.04, находящийся в сети Windows, для аутентификации входа в систему с использованием активного каталога, а затем смонтировал общий ресурс Windows, чтобы он служил в качестве домашнего каталога.
Вот что я сделал, начиная с начальной установки Ubuntu.
Получать обновления
# sudo apt-get update && sudo apt-get upgrade
Установите SSH сервер ( sshd
)
# sudo apt-get install openssh-server
Некоторые утверждают, что вы должны "заблокировать sshd вниз", отключив вход в систему root. Я полагаю , что, если ваш достаточно умны , чтобы взломать 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-сервера. Для меня это было (мой AD IP-адрес был 192.168.20.11):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
Если вы хотите выяснить, какой у вас домен и DNS-сервер (я был подрядчиком и не знал сети), ознакомьтесь с этой полезной ссылкой .
Нам нужно окрестить Linux-бокс в новой сети, это делается путем редактирования файла хоста (замените DNS или полное доменное имя Windows 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
Kerberos у вас было понимание, как правильно ответить на вопрос «домен по умолчанию», тогда это хорошо для вас, в противном случае вам придется сделать следующее.
Отредактируйте (ранее установленный выше) /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), то вместо cifs необходимо использовать smbclient или smbfs в Samba.
Увы, 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 Server - это то, что ADC должен также запускать DNS. В моем случае мой /etc/resolve.conf
выглядит следующим образом : является Google DNS, достаточно надежное резервное копирование в случае , если окна один идет вниз.
nameserver 192.168.20.11
nameserver 8.8.8.8
8.8.8.8
В этот момент я мог войти (возможно, после перезагрузки), домашних каталогов не было, но я мог войти.
Установка CIFS при входе в систему
Этот следующий шаг стал для меня вишней; Я не хотел, чтобы ответственность за резервное копирование всех рабочих каталогов была у всех, а окно, на котором должна была работать Ubuntu, было подозрительным с точки зрения надежности. Поступая следующие пользователи могли войти и увидеть их окна каталога пользователя автомагически .
Загрузите 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>
Из-за моей тупой точки монтирования мне пришлось добавить и эту строку:
<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, скомпрометирована, это в основном одно и то же. И в принципе одинаково просто [или нет] взломать учетные записи root или пользователей. Лучше всего настроить вход в систему только с помощью ключа доступа и отключить все пароли. на основе логинов.)