# lsas **Repository Path**: linker-group/lsas ## Basic Information - **Project Name**: lsas - **Description**: lsas is system administration system - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2017-10-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lsas 全称:lsas system administration system 系统基于openldap , saltstack , ocserv(VPN) 管理需求设计,目标是整合相关的服务权限,部署,发布,管理功能 # 系统功能 * 用户权限管理 * LDAP管理 * CMDB * saltstack api ## 一丶LDAP管理模块 主要是对LDAP用户的管理;包含添加/删除/编辑用户;重置密码(发邮件)SSHkey管理。 用户分组的管理;包含添加/删除/编辑用户分组 建议通过web界面添加用户 ### 1.基础环境安装 #### 1.1 sldap安装 附上配置文件 (安装过程略) ``` # # See slapd.conf(5) for details on configuration options. # This file should NOT be world readable. # #include /etc/openldap/schema/collective.schema include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema include /etc/openldap/schema/radius.schema include /etc/openldap/schema/sudo.schema include /etc/openldap/schema/openssh-lpk-openldap.schema #include /etc/openldap/schema/ns-pwd-policy.schema include /etc/openldap/schema/ldapns.schema include /etc/openldap/schema/samba.schema # Allow LDAPv2 client connections. This is NOT the default. allow bind_v2 # Do not enable referrals until AFTER you have a working directory # service AND an understanding of referrals. #referral ldap://root.openldap.org pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args # Load dynamic backend modules # - modulepath is architecture dependent value (32/64-bit system) # - back_sql.la overlay requires openldap-server-sql package # - dyngroup.la and dynlist.la cannot be used at the same time modulepath /usr/lib/openldap modulepath /usr/lib64/openldap # moduleload accesslog.la # moduleload auditlog.la # moduleload back_sql.la # moduleload chain.la # moduleload collect.la # moduleload constraint.la # moduleload dds.la # moduleload deref.la # moduleload dyngroup.la # moduleload dynlist.la moduleload memberof.la # moduleload pbind.la # moduleload pcache.la # moduleload ppolicy.la # moduleload refint.la # moduleload retcode.la # moduleload rwm.la # moduleload seqmod.la # moduleload smbk5pwd.la #moduleload sssvlv.la #moduleload syncprov.la # moduleload translucent.la # moduleload unique.la # moduleload valsort.la overlay memberof # The next three lines allow use of TLS for encrypting connections using a # dummy test certificate which you can generate by running # /usr/libexec/openldap/generate-server-cert.sh. Your client software may balk # at self-signed certificates, however. #TLSCACertificatePath /etc/openldap/certs #TLSCertificateFile "\"OpenLDAP Server\"" #TLSCertificateKeyFile /etc/openldap/certs/password #TLSVerifyClient never # Sample security restrictions # Require integrity protection (prevent hijacking) # Require 112-bit (3DES or better) encryption for updates # Require 63-bit encryption for simple bind # security ssf=1 update_ssf=112 simple_bind=64 # Sample access control policy: # Root DSE: allow anyone to read it # Subschema (sub)entry DSE: allow anyone to read it # Other DSEs: # Allow self write access # Allow authenticated users read access # Allow anonymous users to authenticate # Directives needed to implement policy: # access to dn.base="" by * read # access to dn.base="cn=Subschema" by * read # access to * # by self write # by users read # by anonymous auth # # if no access controls are present, the default policy # allows anyone and everyone to read anything but restricts # updates to rootdn. (e.g., "access to * by * read") # # rootdn can always read and write EVERYTHING! # enable on-the-fly configuration (cn=config) database config access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none # enable server status monitoring (cn=monitor) database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=Manager,dc=*****,dc=cn" read by * none ####################################################################### # database definitions ####################################################################### database bdb suffix "dc=*****,dc=cn" checkpoint 1024 15 rootdn "cn=Manager,dc=*****,dc=cn" rootpw {SSHA}kMKw8igxUtknUZniqI04uMsTZtVqGmFi # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. # rootpw secret # rootpw {crypt}ijFYNcSNctBYg # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd and slap tools. # Mode 700 recommended. directory /data/ldap # Indices to maintain for this database index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub index sudoUser eq index entryCSN,entryUUID eq access to attrs=userPassword by self write by anonymous auth by * none access to * by self write by * read #overlay syncprov #syncprov-checkpoint 100 10 #syncprov-sessionlog 100 # Replicas of this database #replogfile /var/lib/ldap/openldap-master-replog #replica host=ldap-1.example.com:389 starttls=critical # bindmethod=sasl saslmech=GSSAPI # authcId=host/ldap-master.example.com@EXAMPLE.COM ``` #### 1.2 服务器sssd配置 参考saltstack配置文件docs/statstack目录;修改sssd/init.sls 替换34行“ldapserver”为LDAP服务器地址\域名 注意centos6.x ``` ln -s /lib64/security/pam_cracklib.so /lib64/security/pam_pwquality.so ``` 使用sssd进行ssh登录认证,LDAP用户gidNumber标签字段值不能为0 #### 1.3 功能说明 ##### 1.3.1 添加用户 需填入UID(唯一ID),姓,名,选择用户组,电话及邮箱信息进行添加用户 ##### 1.3.2 删除用户 删除UID ##### 1.3.3 编辑用户 对LDAP用户姓,名,用户组,电话及邮箱进行信息编辑 ##### 1.3.4 重置密码 对LDAP用户密码进行重置;获取用户的'mail'标签值进行邮件通知 ##### 1.3.5 SSHKEY管理 对LDAP用户sshPublicKey标签值进行维护 ##### 1.3.6 主机管理 对LDAP用户host标签进行维护;包含新增/删除host标签