25 帐号权限与系统管理
25 帐号权限与系统管理
25.1 本机帐号(PAM)
在安装好的PVE系统中,会有一组内建的预设帐号【root】,这个帐号就是Linux本机权限系统的一员。
Linux帐号认证系统为【PAM】(Pluggable Authentication Modules),因此当我们要登入PVE文字命令列时,直接以【root】帐号登入,而在PVE网页管理界面登入时,会在【领域】栏位选择【Linux PAM standard authentication】类型,才能以【root】登入。
这种认证方式好处在于,每一个PVE节点使用该节点的root帐号密码即可登入,缺点是若各个节点的root帐号所设定的密码不同,那么管理者登入时就会造成困扰。别忘了,PVE是一个去中心化的丛集,登入任何一台节点,都可以管理整个丛集,但如果每个节点的root密码都不一样,每次登入就会跟猜谜一样。
25.2 系统帐号(PVE)
除了采用PAM认证机制外,PVE管理平台层也有自己的帐号系统,这个帐号系统就可以适用于丛集,只要建立一个帐号,便可以用来管理所有节点,降低记忆多组密码的困扰。
- 请在资源检视区中选取【资料中心(cluster1)】,切换至【帐号】页签,再按下【增加】按钮。
- 进入帐号增加选项视窗后,请在【帐号】栏位填入帐号名称,例如:【admin】,在【领域】下拉清单中选取【Proxmox VE authentication server】。
在【密码】与【确认密码】栏位中输入这个帐号的指定密码,【名】和【姓】栏位可以输入用来识别的资讯;【邮件】栏位请输入这个使用者的电子邮件信箱;【备注】栏位可以填写一些提醒事项,都确认无误后按下【增加】按钮。 - 当增加完成以后,可以在列表上看到增加完成的帐号。若要变更密码,可以先选取要变更密码的帐号后,再按下上方的【密码】按钮进行变更。
- 接着我们可以先登出目前的【root@pam】帐号,准备稍后以新建好的【admin@pve】帐号登入。按下画面右上方的【root@pam】,再选取【登出】。
- 来到登入画面后,在【账号】与【密码】栏位填入【admin】以及它的【密码】,【领域】栏位记得切换为【Proxmox VE authentication server】,再按下【登入】按钮。
- 登入完成后,可以在右上方看到已经变成【admin@pve】,表示我们已经登入PVE帐号系统的【admin】帐号无误。
不过,这时会发现左边的资源检视区没有任何的客体机与储存集区,中间的选单也很少清单区,也没有任何内容,这是怎么回事呢?这个原因在于,虽然建立好帐号,但还没有指派任何权限,所以看不到任何可以使用的项目。
25.3 权限指派
在PVE中有两种指派权限的方式,一种是直接宣告物件的路径给帐号,另一种是到物件里选取帐号,两种作法各有方便之处,以下分别介绍。
** 路径物件指派:管理员**
- 我们先以【root@pam】帐号重新登入PVE管理界面,选取【资料中心(cluster1】,切换至【权限】页签,按下【增加】按钮下的【账号权限】项目。
- 进入增加账号权限选项画面,在【路径】栏位下拉选取【/】,表示给予整个PVE系统所有物件的权限。
- 在【账号】栏位中选取要指派权限的账号,请选择【admin】。
- 在指派权限【角色】的栏位中,因为我们要指派一个PVE系统的全域管理员,所以选取权限最高的【Administrator】角色。
- 确认上述三个栏位都正确后,按下【增加】按钮即可。
- 回到权限清单后,即可看到已经多出了这一笔帐号。
- 此时可以登出系统,再次以【admin@pve】帐号登入,然后看右上角确认登入为【admin@pve】帐号,左边资源检视区也已经看到了完整的客体机、储存、页签及相关按钮。
** 路径物件指派:使用者**
建立完管理员,接下来我们可以再建立只有基本客体机操作权限的帐号,让它只能使用现有已经建立好的客体机,而无法新增修改,以避免客体机被不该有权限删除的人误删。
依据上一个小节建立【admin@pve】帐号的方式,另外建立一个【jason@pve】帐号,然后准备进入指派权限。
- 请选取【资料中心(cluster)】,切换至【权限】页签,按下【增加】按钮,再选取【帐号权限】项目。
- 进入增加帐号权限选项视窗后,在【路径】栏位下拉选取【vms】,这个路径表示包含所有的客体机。
- 在【帐号】栏位下拉选取要指派的权限,本例请选择【jason@pve】。
- 因为我们只需要指派客体机的使用权限而非管理,所以请在【角色】栏位下拉选取【PVEVMUser】。
- 增加完成后,可以在清单中看到这一笔权限设定。
- 完成后可以登出【admin@pve】帐号,以【jason@pve】帐号登入,此时在资源检视区可以看到所有的客体机但看不见储存区,这是因为我们没有将储存区的权限指派给它。同时,在【资料中心(cluster)】的页签可以看到的功能也变得少很多,这可以确认我们所给予的权限正确,没有让该使用者具备过高的权限功能。
** 单一物件指派**
现在介绍另一种指派方法,对于要快速指派权限在某几个物件时会较为方便。例如:我们只想要指派一部【108(demo-openvas-2)】客体机给【kevin@pve】这个帐号使用,就可以使用这个方式。
- 请先重新登入为【admin@pve】管理者帐号,依据先前的作法建立一个新帐号【kevin@pve】。
- 在资源检视区中选取【108(demo-openvas-2)】这个客体机,切换至【权限】页签,按下【增加】按钮,再选取【帐号权限】。
- 增加帐号权限选项视窗中,请于【帐号】栏位下拉选取【kevin@pve】帐号。
- 在【角色】栏位中,下拉选取【PVEVMUser】。
- 增加完成后回到清单,看见这个帐号权限已指派于该客体机。
- 登出PVE管理界面并以【kevin@pve】帐号登入,可看见明显的差异。左边的资源检视区只有出现被指派的【108(demo-openvas-2)】这一部客体机。
而客体机的【硬体】页签中都无法做修改,亦无法操作迁移,确保了使用者被限制在我们指派的物件及权限,这个功能适用在许多场景,例如:由IT管理员建立测试环境供RD使用;又或者教学者建立好一批上课用的客体机,再指派给学员进入使用。
25.4 权限可用角色
PVE系统角色可以设定许多细节,不过为了可以快速指派权限在不同场景,已经预先做好几种角色,适合在绝大多数情况下直接使用。
-
选取【资料中心(cluster1)】,切换至【角色】页签,即可检视这些权限角色。
在此整理内建角色的适用场景:- Administrator:具备管理平台的所有功能权限
- NoAccess:没有任何权限
- PVEAdmin:与Administrator接近,只缺少领域管理、查看系统记录、节点电源控制等三项权限。
- PVEAudit:稽核员,可以检视所有设定项目与记录。
- PVEDatastoreAdmin:储存区管理员,可以分配储存区与分配储存区空间、分配范本、查看储存区设定与记录。
- PVEDatastoreUser:储存区使用者,可以分配储存区空间、查看储存区设定与记录
- PVEPoolAdmin:集区管理员,可以分配集区、检视集区内容。
- PVEPoolUser:集区使用者,可以查看集区内容。
- PVESDNAdmin:软件定义网路管理员,可以分配软件定义网路、查看软体定义网路设定与记录。
- PVESysAdmin:系统管理员,可以修改系统权限、查看系统设定、使用节点主控台、查看系统记录
- PVETemplateUser:范本使用者,对于有权限的客体机可查看设定、复制客体机与记录。
- PVEUserAdmin:使用者管理员,可以分配群组、分配使用者领域、修改使用者。
- PVEVMAdmin:客体机管理员,对于有权限的客体机可查看设定、进行电源管理、备份与还原、快照与倒回、迁移、修改硬体、复制客体、主控台、查看记录等。
- PVEVMUser:客体机使用者,对于有权限的客体机可查看设定、主控台、电源管理、备份、查看记录等。
-
若内建的权限角色不够使用需求,也可以自行增加需要的角色,并选取权限。按下上方的【建立】按钮,可以进入建立角色视窗。
25.5 外部认证伺服器(LDAP/AD)
在具有一定规模的单位里,通常会建置有中央的帐号认证伺服器,例如:LDAP AD,PVE已经内建经由外部认证伺服器的整合能力,可以协助我们帐号管理的问题。
** 建立LDAP认证伺服器连接**
要建立LDAP与AD认证伺服器的方法非常接近,在此以LDAP为连接对象,而LDAP伺服器是采用【UCS Core】(Univention Corporate Server)所建立。
- 选取【资料中心(cluster)】,切换至【验证】页签,按下【增加】按钮后,再选取【LDAP伺服器】。
- 进入增加LDAP伺服器的视窗后,在【一般】页签中有以下项目需要设定:
- 领域:输入方便识记的名称,例如:LDAP
- 基础网域名称:请输入目录服务的基础名称(Base DN)
- 使用者属性名称:请输入识别使用者的属性,在LDAP通常采用【uid】,在AD通常为【sAMAccountName】
- 预设:若勾选这个核取方块,在登入页面会将这个认证放在预设值
- 伺服器:请输入每一台LDAP伺服器位址
- 备援伺服器:请填入第二台LDAP伺服器位址
- 连接埠:预设值的未加密LDAP是389,加密LDAPS为636;UCS套件的连接埠未加密LDAP是7389,加密LDAPS为7636
- SSL:勾选此项目,将启用加密LDAPS连线机制
- 确认凭证:检查SSL凭证是否为经过认证的合法凭证
- 要求双因素认证:若勾选,则这个认证机制下的帐号将会强制启用双因素认证要求。
- 备注:此处可以使用中文
- 接着切换至【同步选项】页签,以下列出较重要的设定项目:
- 系结帐号:若LDAP不支援匿名LDAP查询,请输入一组具有查询能力的帐号,例如:uid=administrator,cn=users,dc=jason,dc=tools
- 系结密码:填入该系结帐号的密码。
- E-Mail属性:填入LDAP伺服器的邮件属性名称,在【UCS LDAP】伺服器上为【mailPrimaryAddress】,在AD伺服器则为【main】
- 范围:选择要同步的范围,可以选择【无】、【帐号】、【群组】、【使用者与群组】
- 完整:启用完整同步模式,若同步时发现LDAP有帐号已经删除了,则PVE这边也会将相对应的帐号删除。
- 启用新使用者:将新帐号由LDAP伺服器同步过来时,顺便设定为启用
- 清除:启用清除后,当完整同步时将帐号删除,也会将该帐号在PVE上的权限一并清除
当相关设定完成以后,回到清单即可看到增加完成的LDAP认证伺服器。
** 同步LDAP使用者帐号**
同步LDAP并不是一件必要的事,如不启用同步帐号,则管理者需要在PVE上手动建立对应的帐号名称,该LDAP使用者才可以登入,并将密码交给LDAP伺服器认证。
- 要进行LDAP帐号同步,请先选取【LDAP】伺服器,再按上方的【同步】按钮。
- 进入同步视窗后,请分别设定以下几个项目:
- 范围:帐号
- 完整:是
- 启用新:是
- 清除ACL:否
- 在正式同步帐号之前,建议先做一次预览作业,确认我们的设定项目可以同步预期的帐号内容。按下【预览】按钮,会进行一次LDAP查询作业,将设定后符合的帐号清单捞回来,以供我们确认。
- 当预览同步的结果正确无误后,就可以按下【同步】按钮,正式将帐号同步过来PVE系统。
- 同步完成后,切换至【帐号】页签,可以发现都已经同步进来,并且在【领域】栏位显示为【LDAP】。
- 接下来我们可以登出帐号,来到登入画面,使用LDAP帐号登入,确认是否可以成功认证帐号密码。
在登入画面中,已经可以看到我们所建议的LDAP认证领域【采用LDAP协定UCS(Univention)伺服器认证】,已经出现在下拉清单中供选择。 - 当帐号密码也正确无误后,即可登入至PVE管理界面。
25.6 建立帐号群组
- 要建立使用者群组,请选取【资料中心(cluster1)】,切换至【群组】页签,再按下【建立】按钮。
- 进入群组建立选项视窗后,请在【名称】栏位输入这个群组主要用途的名称,注意不可以使用中文。在【备注】栏位输入较详细的说明,此处可以输入中文。
- 群组增加完成后,可以在群组清单中看到这一笔已经出现。
- 可以依据使用需要来建立多个群组,以群组方式指派权限会较为容易,若日后要增加人员的权限时,仅需要将帐号加入群组即可。
25.7 将帐号加入群组
群组建立完成之后,接下来把帐号加入群组里。在PVE的操作逻辑里,是要进入帐号的设定画面,将它加入群组之中,而不是在群组设定处选取帐号进来。
- 请切换至【帐号】页签,在【jason】帐号上点选两下进入编辑画面。
- 进入帐号编辑画面后,请在【群组】下拉清单里选取要加入的群组。请注意,此处的群组下拉清单是可以复写的,请点选需要的群组名称,让它变成浅蓝色背景即可。
25.8 指派权限给群组
- 选取【资料中心】,切换至【权限】页签,按下【增加】按钮后,选取【群组权限】。
- 在【增加群组权限】视窗中,请在【路径】栏位选取要指派给这个群组的物件路径,例如:【/vms/116】表示给这个群组使用【116】这部客体机。紧接着【群组】栏位,请下拉选取刚才所建立好的群组,例如:【openvas_users】。接着在【角色】栏位中选取要给这个群组的权限,例如:我只给这个群组的成员基本客体机的操作权限,所以选择【PVEVMUser】。
- 群组权限增加完成以后,回到清单中可以看到多了一笔权限资料。可以发现如果指派的对象是群组,在第二个栏位的前方会多出一个【@】符号,以方便快速识别这个权限是以群组方式指派的。
- 全部设定无误后,我们可以登出PVE管理界面,重新以【jason@pve】这个刚刚加入群组的帐号来登入测试,确认设定是否生效。
25.9 使用者自行启用双因素认证
PVE支援双因素验证,采用的是TOTP(基于时间的一次性验证码),使用者可以自行设定与启用。
- 请点选右上角已登入帐号的名称处,再选取【TFA】。
- 进入双因素验证画面后,中间会出现一组QR Code,请利用智慧型手机上所安装支援TOTP的双因素验证App扫描,将它加入。
- 智慧型手机上的App扫完QR Code建档后,点选它即可立即产生一组TOTP的双因素验证码。
- 回到PVE界面上,将刚刚产生好的认证码填入,再于【密码】栏位输入这个帐号的密码,按下【套用】按钮后,如果没有错误,即表示设定成功。
- 下次要登入PVE管理界面时,在登入帐号与密码成功后,即会弹出第二阶段的双因素验证码,请拿起手机的App,将产生后的认证码填入,即可登入成功。
25.10 管理者强制启用双因素验证
除了让使用者自行启用双因素验证外,也可以由管理者强制所有使用者都必须使用双因素验证码,才能进入PVE系统使用。
- 进入【资料中心】,切换至【验证】页签,在需要启用的领域上点两下进入编辑。
- 在【要求双因素验证】栏位下拉清单中,选取要启用的方式,可选取【OATH/TOTP】,以启用TOTP的认证方式。
- 选取为【OATH/TOTP】后,下面会多出两个栏位【时区步骤】与【秘钥长度】,建议保持预设不要更动,让它保有最好的相容性。
- 设定完成后,在清单中可以看到【pve】这个领域的【双因素认证】栏位多出了【oath】的字样,代表已经设定完成。