Это должно было быть опубликовано как ответ на вопрос. Пожалуйста, измените это так, чтобы это был вопрос, и переместите то, что вы опубликовали выше, чтобы ответить на него. Из часто задаваемых вопросов : «Также вполне нормально задавать и отвечать на свой собственный вопрос, но притворяться, что вы находитесь в опасности: сформулируйте это в форме вопроса».
Приостановлено до дальнейшего уведомления.
Ответы:
27
[Edit] С тех пор я протестировал это полный выпуск Ubuntu 10.04 Server (21 мая 2010 года) .
Я сконфигурировал сервер LTS Ubuntu 10.04, находящийся в сети Windows, для аутентификации входа в систему с использованием активного каталога, а затем смонтировал общий ресурс Windows, чтобы он служил в качестве домашнего каталога.
Вот что я сделал, начиная с начальной установки Ubuntu.
Некоторые утверждают, что вы должны "заблокировать 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."
Сделайте некоторую базовую очистку сети в рамках подготовки к конфигурациям конкретных пакетов.
Определите имя домена Windows, имя DNS-сервера и IP-адрес для активного сервера каталогов (для samba). Для удобства я установил переменные среды для домена Windows и DNS-сервера. Для меня это было (мой AD 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 installKerberos у вас было понимание, как правильно ответить на вопрос «домен по умолчанию», тогда это хорошо для вас, в противном случае вам придется сделать следующее.
Хорошим тестом на этом этапе является проверка того, выдаст ли ваш контроллер AD вам билет Kerberos. В этом нет необходимости, но это может сделать некоторых из вас легкомысленными. # kinit <some_windows_domain_user>
Затем, чтобы увидеть билет: # klist
Вы увидите информацию о кеше билета, истечениях и продлениях. Как только головокружение утихнет, вы можете выпустить / уничтожить билет: # kdestroy
Редактирование /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 не читается человеком):
Из-за моей тупой точки монтирования мне пришлось добавить и эту строку:
<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файле:
Отключение удаленного входа root ssh является обязательным. Атаки грубой силой / словарём иногда успешны Если root скомпрометирован, попрощайтесь со всем, чему вы доверяли на машине.
JR Lawhorne
1
Ubuntu не активирует учетную запись root, хотя ... все sudod, или я что-то упустил?
Джейми
«все есть sudo» - и это лучше ... каким образом? (Если какая-либо учетная запись пользователя, имеющая право на sudo, скомпрометирована, это в основном одно и то же. И в принципе одинаково просто [или нет] взломать учетные записи root или пользователей. Лучше всего настроить вход в систему только с помощью ключа доступа и отключить все пароли. на основе логинов.)
Курт Пфайфл
Я понимаю это, но подумайте: «Лучше всего настроить логин только по паб-ключу» , что полностью противоречит цели этого поста.
Ответы:
[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
файле:Это оно. Это сработало для меня, и я надеюсь, что вы найдете это полезным.
Много ресурсов были рассмотрены, чтобы я мог понять это. Вот краткий список (некоторые из этих ссылок указывают на мои собственные вопросы по теме):
источник
sudo
d, или я что-то упустил?sudo
» - и это лучше ... каким образом? (Если какая-либо учетная запись пользователя, имеющая право на sudo, скомпрометирована, это в основном одно и то же. И в принципе одинаково просто [или нет] взломать учетные записи root или пользователей. Лучше всего настроить вход в систему только с помощью ключа доступа и отключить все пароли. на основе логинов.)