Администрирование ESX под доменным пользователем. Часть 2.
В первой части я рассказал как ввести ESX сервер в AD для того чтоб можно было зайти на него под доменной учеткой. Собственно ни чего нового там не было, так или иначе об этом уже ни раз писали, но это были подготовительные действия самое интересное начнется ниже.
И так в результате ввода ESX сервера в домен мы смогли зайти на него под доменным пользователем, и получили пользовательский шел. Но для того чтобы нормально админить ESX нужны повышенные привилегии, мы можем получить их используя команду su и пароль root’a. Как известно под рутом с сервером можно делать все что угодно, и это как то не очень безопасно, не говоря уж о том, что раздавать сам пароль не есть хорошо. Посему захотелось сделать нормальный ролевой доступ т.е. чтобы, например, саппорт мог перезагружать виртуалки и посмотреть загрузку, сетевой админ мог покрутить интерфейсы и фаервол, а админ хранилища мог поиграться с командами iscsi.
По умолчанию на ESX могут войти только члены группы ESX Admins соответственно нам надо разрешить членам вновь созданных групп логиниться на ESX. Для этого необходимо отредактировать /etc/security/access.conf добавив вновь созданные группы.
#nano -w /etc/security/access.conf
теперь пользователи наших групп смогут зайти на ESX под своими аккаунтами и получат стандартные привелегии пользователей.
В *nix системах для запуска программ с повышенными привилегиями можно (и рекомендуется) использовать sudo, а не сидеть под root'ом. Соответсвенно мы пойдем протаренной дорожкой и отредактируем конфиг sudo — /etc/sudoers под наши задачи.
sudoers можно открыть любым редактором, например nano, но рекомендуется использовать комманду visudo так как она проверит синтаксис конфига по окончанию редактирования. По умолчанию visudo открывает конфиг в редакторе vi потому, что не определенна переменная EDITOR. Для тех кто не дружит с vi нужно выполнить
хотя лучше заморочиться и выучите vi он не так страшен как кажется :)
И так переходим к редактированию sudoers
#visudo
В кратце о том, что же мы тут понаписали.
Первые строчки являются частью стандартного конфига и демонстрируют определение групп команд.
Далее мы определяем права для группы поддержки.
Знак % указывает на то, что права определятся для группы.
Обратите внимание, что домен в названии группы нужно отделять от имени пользователя двумя бекслешами(\\).
Так же обратите внимание, что я указал команду vim-cmd с параметром vmsvc/getallvms т.е. повышение привелегий будет производится только для команды с этим параметром если пользователь попробует вызвать vim-cmd с другими параметрами, например vim-cmd vmsvc/shapshot.create он получит сообщения о том, что прав для выполнения не достаточно. Если параметры для команды не указанны пользователь может повысит привилегии для команды с любыми параметрами.
Команды отделяются запятыми(,).
Далее для группы сетивиков я разрешил использовать команды которые определены в алиасе NETWORKING и несколько команд esxcfg-*.
С админами хранилища я думаю все понятно.
Собственно теперь пользователи этих групп могут зайдя на сервер выполнить sudo command и после ввода своего доменного пароля, если данная команда разрешена, команда выполниится с правами root.
В последней строчке конфига я разрешил пользователям группы ESX Admins делать все что захотят без ввода пароля, к примеру если пользователь этой группы выполнит sudo -i то он без всяких проблем попадет в рутовый шел.
С sudo можно делать еще некоторые прикольные вещи, может быть когда-нибудь я об этом напишу, но сейчас за подробностями я отправлю вас к man sudoers.
Надеюсь что вы не подумали, что это рабочий конфиг ))) это просто пример того как можно сделать. Над наполнением конфигов для промышленной эксплуатации я пока думаю так что если будут какие-то идеи и предложения по наполнению конфигов sudo для ESX пишите, буду рад обсудить.
В целом вообще если есть что написать по теме пишите!!!
В общем как-то так.
Надеюсь Вам было интересно настолько, что проблемы русского языка в тексте не помешали Вам дочитать до конца :)
На этом сегодня все, а в следующий раз попробуем разлить сделанные нами настройки на несколько ESX хостов :)
И так в результате ввода ESX сервера в домен мы смогли зайти на него под доменным пользователем, и получили пользовательский шел. Но для того чтобы нормально админить ESX нужны повышенные привилегии, мы можем получить их используя команду su и пароль root’a. Как известно под рутом с сервером можно делать все что угодно, и это как то не очень безопасно, не говоря уж о том, что раздавать сам пароль не есть хорошо. Посему захотелось сделать нормальный ролевой доступ т.е. чтобы, например, саппорт мог перезагружать виртуалки и посмотреть загрузку, сетевой админ мог покрутить интерфейсы и фаервол, а админ хранилища мог поиграться с командами iscsi.
Создание групп управления серверами ESX в Active Directory.
Приступим. Для начала создаем группы в Active Directory- esx vm support
- esx net admins
- esx store admins
Настройка возможности входа на сервер ESX доменным группам администраторов.
По умолчанию на ESX могут войти только члены группы ESX Admins соответственно нам надо разрешить членам вновь созданных групп логиниться на ESX. Для этого необходимо отредактировать /etc/security/access.conf добавив вновь созданные группы.
#nano -w /etc/security/access.conf
+:TEST\esx^admins:ALL
+:TEST\esx^vm^support:ALL
+:TEST\esx^net^admins:ALL
+:TEST\esx^store^admins:ALL
+:root:ALL
+:vpxuser:ALL
+:vslauser:ALL
-:ALL:ALLтеперь пользователи наших групп смогут зайти на ESX под своими аккаунтами и получат стандартные привелегии пользователей.
Настройка повышения привилегий.
В *nix системах для запуска программ с повышенными привилегиями можно (и рекомендуется) использовать sudo, а не сидеть под root'ом. Соответсвенно мы пойдем протаренной дорожкой и отредактируем конфиг sudo — /etc/sudoers под наши задачи.
sudoers можно открыть любым редактором, например nano, но рекомендуется использовать комманду visudo так как она проверит синтаксис конфига по окончанию редактирования. По умолчанию visudo открывает конфиг в редакторе vi потому, что не определенна переменная EDITOR. Для тех кто не дружит с vi нужно выполнить
export EDITOR=nanoхотя лучше заморочиться и выучите vi он не так страшен как кажется :)
И так переходим к редактированию sudoers
#visudo
...
## Command Aliases
## These are groups of related commands...
## Networking
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
## Storage
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
...
#Собственно дописываем в конце файла наши разрешения
#Разрешим сапорту получать список виртуалок хоста через vim-cmd и использовать esxtop
%TEST\\esx^vm^support ALL=/usr/bin/vim-cmd vmsvc/getallvms, /usr/bin/esxtop
#Разрешим группе esx net admin крутить стевые команды предопределенные в группе NETWORKING и esxcfg-firewall, esxcfg-vswif, esxcfg-vswitch
%TEST\\esx^net^admins ALL=NETWORKING, /usr/sbin/esxcfg-firewall, /usr/sbin/esxcfg-vswif, /usr/sbin/esxcfg-vswitch
#store admins
%TEST\\esx^store^admins ALL=STORAGE, /usr/sbin/esxcfg-swiscsi, /usr/sbin/esxcfg-hwiscsi
#Ну и группе ESX admins разрешим все и без пароля
%TEST\\esx^admins ALL=(ALL) NOPASSWD: ALL
В кратце о том, что же мы тут понаписали.
Первые строчки являются частью стандартного конфига и демонстрируют определение групп команд.
Далее мы определяем права для группы поддержки.
Знак % указывает на то, что права определятся для группы.
Обратите внимание, что домен в названии группы нужно отделять от имени пользователя двумя бекслешами(\\).
Так же обратите внимание, что я указал команду vim-cmd с параметром vmsvc/getallvms т.е. повышение привелегий будет производится только для команды с этим параметром если пользователь попробует вызвать vim-cmd с другими параметрами, например vim-cmd vmsvc/shapshot.create он получит сообщения о том, что прав для выполнения не достаточно. Если параметры для команды не указанны пользователь может повысит привилегии для команды с любыми параметрами.
Команды отделяются запятыми(,).
Далее для группы сетивиков я разрешил использовать команды которые определены в алиасе NETWORKING и несколько команд esxcfg-*.
С админами хранилища я думаю все понятно.
Собственно теперь пользователи этих групп могут зайдя на сервер выполнить sudo command и после ввода своего доменного пароля, если данная команда разрешена, команда выполниится с правами root.
В последней строчке конфига я разрешил пользователям группы ESX Admins делать все что захотят без ввода пароля, к примеру если пользователь этой группы выполнит sudo -i то он без всяких проблем попадет в рутовый шел.
С sudo можно делать еще некоторые прикольные вещи, может быть когда-нибудь я об этом напишу, но сейчас за подробностями я отправлю вас к man sudoers.
Послесловие.
Надеюсь что вы не подумали, что это рабочий конфиг ))) это просто пример того как можно сделать. Над наполнением конфигов для промышленной эксплуатации я пока думаю так что если будут какие-то идеи и предложения по наполнению конфигов sudo для ESX пишите, буду рад обсудить.
В целом вообще если есть что написать по теме пишите!!!
В общем как-то так.
Надеюсь Вам было интересно настолько, что проблемы русского языка в тексте не помешали Вам дочитать до конца :)
На этом сегодня все, а в следующий раз попробуем разлить сделанные нами настройки на несколько ESX хостов :)
- +1
- 29 сентября 2010, 00:40
- mamahtehok
не так спросил… у меня esx, но на него путей зайтить не могу, ибо выключено… включить то где?
з.ы. какая минуснула?
з.ы. какая минуснула?
у тебя esx или esxi?
если esx то все должно работать без проблем при подключении на ip service console
можешь проверь configuration — security profile в incoming connection должен присутсвовать ssh server 22/tcp
если esx то все должно работать без проблем при подключении на ip service console
можешь проверь configuration — security profile в incoming connection должен присутсвовать ssh server 22/tcp

- mamahtehok
- 30 сентября 2010, 10:42
- ↑
- ↓
у себя я esxi не использую так что сказать точно не могу. Но если там в нем есть sudo то работать должно. При первой возможности попробую проверить.

- mamahtehok
- 01 октября 2010, 17:52
- ↑
- ↓
что бы не тратить время на проверку:
login as: user@domain
user@domain@10.10.10.28's password:
You have activated Tech Support Mode.
The time and date of this activation have been sent to the system logs.
VMware offers supported, powerful system administration tools. Please
see www.vmware.com/go/sysadmintools for details.
Tech Support Mode may be disabled by an administrative user.
Please consult the ESXi Configuration Guide for additional
important information.
~ $ su
Password:
~ # ls /etc/
chkconfig.db issue.net profile
cim keymap protocols
dhclient-vmk0.leases krb5.conf random-seed
dhclient6-vmk0.leases krb5.keytab rc.local
dropbear likewise resolv.conf
fstab motd security
group mtab services
gshadow nsswitch.conf sfcb
host.conf ntp.conf shadow
hosts ntp.drift shells
inetd.conf ntp.keys slp.reg
init openwsman syslog.conf
init.d opt vmware
inittab pam.d
issue passwd
~ # find / -name "*sudo*"
~ # find / -name "*su*"
/etc/vmware/init/init.d/04.lsusb
/etc/vmware/init/init.d/35.dvs-support
/etc/vmware/init/init.d/39.network-support
/etc/vmware/vm-support
/etc/vmware/support
/etc/issue
/etc/issue.net
/lib/libkrb5support.so.0
/lib/security/pam_succeed_if.so
/lib/cim/libomc_registered_powersupply_profile.so
/proc/mpt/ioc0/summary
/proc/mpt/summary
/sbin/lsusb
/sbin/techsupport.sh
/sbin/vm-support
/sbin/vmfs-support
/usr/lib/pycim/VMware_AssociatedJobMethodResult.py
/usr/lib/pycim/VMware_MethodResult.py
/usr/lib/pycim/supConstants.py
/var/lib/sfcb/registration/repository/root/interop/cim_indicationsubscription
/var/lib/sfcb/registration/repository/root/interop/cim_indicationsubscription.idx
~ #
Все время пропадают записи, на всех серверах из /etc/security/access.conf. Остается только DOMAIN\esx^admins:ALL Все остальные доменные группы пропадают. Никто не знает, в чем тут дело?
Заметил эту проблему после написания поста, если честно не помню уже что-там к чему, что с безопасностью, но самый простой способ это создать acceess.conf в домашней директории пользователя и копировать его содержимое при загрузке системы прописав в rc.local cat ~/access >/etc/security/access.conf.

- mamahtehok
- 30 ноября 2011, 22:03
- ↑
- ↓
Комментарии (10)
RSS свернуть / развернуть