Администрирование ESX под доменным пользователем. Часть 2.

В первой части я рассказал как ввести ESX сервер в AD для того чтоб можно было зайти на него под доменной учеткой. Собственно ни чего нового там не было, так или иначе об этом уже ни раз писали, но это были подготовительные действия самое интересное начнется ниже.

И так в результате ввода ESX сервера в домен мы смогли зайти на него под доменным пользователем, и получили пользовательский шел. Но для того чтобы нормально админить ESX нужны повышенные привилегии, мы можем получить их используя команду su и пароль root’a. Как известно под рутом с сервером можно делать все что угодно, и это как то не очень безопасно, не говоря уж о том, что раздавать сам пароль не есть хорошо. Посему захотелось сделать нормальный ролевой доступ т.е. чтобы, например, саппорт мог перезагружать виртуалки и посмотреть загрузку, сетевой админ мог покрутить интерфейсы и фаервол, а админ хранилища мог поиграться с командами iscsi.

Создание групп управления серверами ESX в Active Directory.
Приступим. Для начала создаем группы в Active Directory
  • esx vm support
  • esx net admins
  • esx store admins
ну и группа ESX 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 хостов :)

Комментарии (10)

RSS свернуть / развернуть
а как зайти ssh на ESX?
-1
ssh login@host ну или юзай putty если под виндой.
0
не так спросил… у меня esx, но на него путей зайтить не могу, ибо выключено… включить то где?
з.ы. какая минуснула?
0
у тебя esx или esxi?
если esx то все должно работать без проблем при подключении на ip service console
можешь проверь configuration — security profile в incoming connection должен присутсвовать ssh server 22/tcp
0
для ESXi эта часть статьи не работает?
0
у себя я esxi не использую так что сказать точно не могу. Но если там в нем есть sudo то работать должно. При первой возможности попробую проверить.
0
что бы не тратить время на проверку:

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
~ #
0
Значит esxi в пролете, и это печально.
0
Все время пропадают записи, на всех серверах из /etc/security/access.conf. Остается только DOMAIN\esx^admins:ALL Все остальные доменные группы пропадают. Никто не знает, в чем тут дело?
0
Заметил эту проблему после написания поста, если честно не помню уже что-там к чему, что с безопасностью, но самый простой способ это создать acceess.conf в домашней директории пользователя и копировать его содержимое при загрузке системы прописав в rc.local cat ~/access >/etc/security/access.conf.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.