OpenLDAP 密码策略

OpenLDAP默认是没有密码检查策略的,123456这也得密码也能接受,这显然是管理员不希望看到的。

  1. 导入密码策略schema
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/ppolicy.ldif
  2. 加载模块,因为已经添加过syncprov模块了,所以只要追加ppolicy模块就可以了
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: ppolicy.la
    
    ldapmodify -Y EXTERNAL -H ldapi:/// -f mod_ppolicy.ldif
  3. 指定默认策略dn名
    dn: olcOverlay=ppolicy,olcDatabase={2}hdb,cn=config
    changeType: add
    objectClass: olcOverlayConfig
    objectClass: olcPPolicyConfig
    olcOverlay: ppolicy
    olcPPolicyDefault: cn=default,ou=ppolicy,dc=yaoge123,dc=com
    olcPPolicyHashCleartext: TRUE
    ldapmodify -Y EXTERNAL -H ldapi:/// -f ppolicy.ldif
  4. 创建默认策略
    dn: ou=ppolicy,dc=yaoge123,dc=com
    objectClass: organizationalUnit
    objectClass: top
    ou: ppolicy
    
    dn: cn=default,ou=ppolicy,dc=yaoge123,dc=com
    cn: default
    objectClass: top
    objectClass: device
    objectClass: pwdPolicy
    objectClass: pwdPolicyChecker
    pwdAllowUserChange: TRUE
    pwdAttribute: userPassword
    pwdCheckQuality: 2
    pwdExpireWarning: 604800
    pwdFailureCountInterval: 0
    pwdGraceAuthnLimit: 5
    pwdInHistory: 5
    pwdLockout: TRUE
    pwdLockoutDuration: 600
    pwdMaxAge: 0
    pwdMaxFailure: 5
    pwdMinAge: 0
    pwdMinLength: 8
    pwdMustChange: FALSE
    pwdSafeModify: FALSE
    pwdCheckModule: check_password.so
    ldapadd -Y EXTERNAL -H ldapi:/// -f defaultppolicy.ldif
  5. 修改/etc/openldap/check_password.conf,定义check_password.so规则
  6. MirrorMode的两台LDAP均需进行上述同样的配置

Seafile集成卡巴斯基

防病毒脚本 /opt/kaspersky/kav4fs_scan.sh

#!/bin/bash

VIRUS_FOUND=1
CLEAN=0
UNDEFINED=2
KAV4FS='/opt/kaspersky/kav4fs/bin/kav4fs-control'
if [ ! -x $KAV4FS ]
then
    echo "Binary not executable"
    exit $UNDEFINED
fi

SCAN_OUTPUT=`$KAV4FS --scan-file "$1"`
if [ "$?" -ne 0 ]
then
    echo "Error due to check file '$1'"
    exit 3
fi

while read line
do
	OUT1=`echo $line|cut -d':' -f 1`
	OUT2=`echo $line|cut -d':' -f 2|sed 's/ //g'`
	case "$OUT1" in
        "Threats found" )
                THREATS_C=$OUT2
                ;;
        "Riskware found" )
                RISKWARE_C=$OUT2
                ;;
        "Infected" )
                INFECTED=$OUT2
                ;;
        "Suspicious" )
                SUSPICIOUS=$OUT2
                ;;
        "Scan errors" )
                SCAN_ERRORS_C=$OUT2
                ;;
        "Password protected" )
                PASSWORD_PROTECTED=$OUT2
                ;;
        "Corrupted" )
                CORRUPTED=$OUT2
                ;;
	esac
done <<< "$SCAN_OUTPUT"

if [ $INFECTED -gt 0 ]
then
    exit $VIRUS_FOUND
elif [ $THREATS_C -gt 0 -o $RISKWARE_C -gt 0 -o $SUSPICIOUS -gt 0 -o $SCAN_ERRORS_C -gt 0 -o $CORRUPTED -gt 0 ]
then
    exit $UNDEFINED
else
    exit $CLEAN
fi

/opt/seafile/conf/seafile.conf 添加防病毒配置

[virus_scan]
scan_command = /opt/kaspersky/kav4fs_scan.sh
virus_code = 1
nonvirus_code = 0
scan_interval = 60

每天crontab清除kav4fs的日志/etc/cron.d/kav

30 0 * * * root find /var/log/kaspersky/kav4fs/supervisor_trace.log* -exec rm {} \;
40 0 * * * root /opt/kaspersky/kav4fs/bin/kav4fs-control -S --clean-stat

浪潮刀片和机架的一些问题

用了四年的浪潮NF5270M3机架服务器、I8000刀箱和NX5440刀片服务器,总结一下碰到的管理问题

  1. 浪潮认为刀片BMC的IP应该紧跟着刀箱管理模块的IP顺序增加,比如刀箱管理模块是192.168.1.10,那么第一个刀片就应该是192.168.1.11。不这样设置会出现一些问题,如按刀片上的KVM按钮会亮红灯无法切换,需要SSH到刀片的BMC里用命令行修改一些配置文件
  2. 使用浏览器访问刀片的BMC必须用IP,用hostname的访问打开IP KVM会报错无法使用
  3. 在Linux下打开刀片的IP KVM报错无法使用,Windows下则正常,新的刀片已解决此问题
  4. 刀箱管理模块无法发送报警邮件,NTP配置无法保存且也没有同步时间,无发送syslog功能
  5. 机架BMC发送报警测试邮件正常,但是实际出现故障(如移除电源模块)时却没有发送邮件
  6. 刀箱电源风扇模块故障时前面板报警灯不亮,只在刀箱背后的电源风扇模块上有指示灯变红
  7. 机架RAID卡故障,如硬盘故障,前面板报警灯不亮

Veeam 不同备份方式的负载

IO负载

Method I/O impact on destination storage
Forward incremental 1x write I/O for incremental backup size
Forward incremental, active full 1x write I/O for total full backup size
Forward incremental, transform 2x I/O (1x read, 1x write) for incremental backup size
Forward incremental, synthetic full 2x I/O (1x read, 1x write) for entire backup chain
Reversed incremental 3x I/O (1x read, 2x write) for incremental backup size
Synthetic full with transform to rollbacks 4x I/O (2x read, 2x write) for entire backup chain

 

Reversed Incremental Backup:每次备份对备份存储的IO压力很大,备份窗口时间长,但是备份空间占用最少,只有一个最新的完整备份。

Forward Incremental Backup:每次备份对备份存储的IO压力最小,备份窗口时间最短,可能会需要额外备份空间存储多个完整备份。
Forever forward incremental Backup:对源存储无压力,如果虚拟机变化很大,合并最后一个增量和完整备份可能压力大,只有一个最老的完整备份。
Synthetic Full Backup:对源存储无压力,对备份存储IO压力较大,因为不是备份过程所以没有备份窗口,一般会保留有多个完整备份。
Transforming Incremental Backup Chains into Reversed Incremental Backup Chains:对源存储无压力,对备份存储IO压力极大,因为不是备份过程所以没有备份窗口,只保留一个完整备份。
Active Full Backup:完全从源存储创建一个完整备份,需要从源读取所有数据,对备份存储是顺序IO写因此压力不大,但是备份窗口时间非常长,对生产系统源存储性能有负面影响,一般会保留有多个完整备份。

 

VCSA 6.0 升级 6.5

密码重置

  1. 重置VCSA OS GRUB密码
    http://www.unixarena.com/2016/04/reset-grub-root-password-vcsa-6-0.html
  2. 重置VCSA OS root密码
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2069041
  3. 重置administrator@vsphere.local的密码
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2146224

vCenter Update Manager迁移

VCSA 6.5开始Update Manager被集成到VCSA中,所以需要迁移工具将原来独立的Update Manager迁移到VCSA 6.5中

  1. 如果修改过VCSA的密码,最好重新配置vCenter Update Manager,并重启它
    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1034605
  2. 在vCenter Update Manager上运行迁移工具,保持运行窗口打开状态,迁移完成程序会自动退出
    https://docs.vmware.com/cn/VMware-vSphere/6.5/com.vmware.vsphere.upgrade.doc/GUID-6A39008B-A78C-4632-BC55-0517205198C5_copy.html
  3. 确保vCenter Update Manager有足够的空余空间,迁移时会打包文件

迁移时部署大小

迁移VCSA时到选择部署大小时,发现tiny/small等小的部署大小不现实,主要是因为原VCSA存储空间消耗过多
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2148587

设置时区

升级后登录VAMI时区显示空,并且无法设置,需要SSH登录到VCSA执行

cd /etc/
rm -rf localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

Shockwave Flash crashes

这是Adobe Shockwave Flash version 27.0.0.170已知的问题,只能升级到更新的版本或者降级到老版本
https://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=2151945

 

GPFS 创建 CNFS

GPFS有两种NFS导出方式,一是Cluster Export Services (CES) NFS,二是clustered NFS (CNFS)。CNFS使用Linux内核的nfsd,提供了较好小文件操作性能,当然也只支持NFS。CES使用用户空间Ganesha的nfsd,连续读写性能较好,CES还支持SMB和Object存储。

CNFS通过动态的调整IP地址来提供NFS的HA,只能提供故障转移不支持负载均衡,下面以nfs1,nfs2两个节点配置CNFS为例

  1. 确保所有服务端和客户端节点与同一个时钟源严格同步时间,服务端节点需要mmchlicense server
  2. 为了防止故障切换时出现写入问题,CNFS export共享目录的文件系统需指定syncnfs挂载选项
    mmchfs fsyaoge123 -o syncnfs
  3. 在每个服务端上面配置相同的/etc/exports,不同目录的fsid必须不同,不同服务端上面同一个目录的fsid必须相同,1.1.1.10/1.1.1.11是客户端IP
    /fsayaoge123/nfs 1.1.1.10(ro,fsid=11) 1.1.1.11(rw,fsid=11)
  4. 在每个服务端上面设置nfsd自动启动
    systemctl enable nfs-server
  5. 定义CNFS的共享目录,最好是一个单独小的文件系统且不被NFS共享出去
    mmchconfig cnfsSharedRoot=/fs2yaoge123/cnfs
  6. 每个服务端使用一个额外的静态IP(onboot=no)用于NFS共享,注意这个IP不能用于GPFS,将这个interface启动起来
  7. 在每个服务端上进行配置,ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名
    mmchnode --cnfs-interface=ip_address_list -N node
    mmchnode --cnfs-interface=1.1.1.1 -N nfs1  //配置nfs1使用1.1.1.1做为NFS专用IP
  8. 查一下rpc.mountd绑定的端口号,配置上去
    mmchconfig cnfsMountdPort=mountd_port -N node
  9. NFS客户端挂载时需加选项 -o sync,hard,intr,nfs1为主用
    mount -o sync,hard,intr 1.1.1.1:/fsyaoge123/nfs /mnt
  10. 测试关机、停止nfsd、停止gpfs三种情况下是否会自动切换

查看CNFS节点

mmlscluster --cnfs

删除CNFS节点

mmchnode --cnfs-interface=DELETE -N "nfs1,nfs2"

 

GPFS 优化

  1. 所有节点需和同一个时钟源严格同步时钟
  2. 一些文件系统操作在defaultHelperNodes上面运行,默认是所有节点,设置为NSD节点可能获得更好的性能
  3. maxMBpS是每个节点的GPFS的吞吐量,可设置为节点IO吞吐量的两倍,特别是IO节点
    1. 默认是2048;单路FDR设置1200,单路QDR设置8000,双路万兆设置5000
  4. GPFS的NSD节点如为专用IO节点,NSD节点没有数据访问则不会缓存任何数据,但是缓存可以为NSD工作线程所用,故可进行如下优化:
    1. 增加pagepool的大小
    2. 将nsdBufSpace设置为最大值(70%)
  5. 磁盘系统优化
    1. RAID segment size × 数据盘个数 = stripe size,GPFS block size应整倍数于stripe size
    2. GPFS block size应整倍数于HBA卡最大IO尺寸
    3. 最好倍数都是1
    4. /sys/block/*/queue/max_sectors_kb
  6.  存储的缓存策略
    1. 顺序IO负载:启用读缓存,禁用任何形式的预读
    2. 随机IO负载和Metadata:启用读写缓存
  7.  对于使用大量文件的GPFS节点,特别是登录节点、NFS/SMB输出节点、登录节点,可进行如下优化:
    1. 提高maxFilesToCache的值,这是缓存文件metadata的数量,最好能提高到并发打开文件数加上最近使用的文件数
    2. 在Linux上面maxStatCache是无效的,所以需要设定maxStatCache为一个较小的值,如512
    3. 按照maxFilesToCache × 3 KB + maxStatCache × 400 bytes估算内存消耗,增加的内存不在pagepool中
    4. 增加pagepool的大小,修改pagepoolMaxPhysMemPct可提高pagepool的上限
  8. 网络优化
    1. net.core.rmem_max = 8388608
      net.core.wmem_max = 8388608
      net.ipv4.tcp_rmem = 4096 262144 8388608
      net.ipv4.tcp_wmem = 4096 262144 8388608
    2. GPFS的socketMaxListenConnections和系统的net.core.somaxconn设置为集群节点数量
  9. sharedMemLimit和maxBufferDescs等看mmfsadm dump fs | head -8输出结果决定是否需要增加
  10. 文件系统的-n参数匹配集群节点数
  11. 后端由大量磁盘或固态盘组成NSD设置ignorePrefetchLUNCount=yes
  12. 用mmlsconfig和mmdiag –config可以查看配置

CentOS 7 下 OpenLDAP 安装配置

目标是ldap1和ldap2做成高可用LDAP为集群中所有节点提供身份验证服务。

一、LDAP服务端,ldap1和ldap2均需安装配置

安装OpenLDAP并导入基本定义

yum install -y openldap openldap-clients openldap-servers
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap
systemctl enable slapd.service
systemctl start slapd.service
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif

修改LDAP基本配置

  1. 创建db.ldif,内容见后
  2. olcRootDN就是LDAP的超级用户
  3. 用slappasswd生成密码的哈希填入olcRootPW中做为olcRootDN的密码
  4. 修改dc=为自己的域
  5. monitor默认所有用户均可读取,通过添加olcAccess改为只有root和RootDN可以读取
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=yaoge123,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=Manager,dc=yaoge123,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}lY3iu244B87mEjUzSyHboD3x0tjTRHCV
    
    dn: cn=config
    changetype: modify
    replace: olcLogLevel
    olcLogLevel: stats2 shell sync
    
    dn: olcDatabase={1}monitor,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
      by dn.base="cn=Manager,dc=yaoge123,dc=com" read
      by * none
  6. 用ldapmodify导入
    ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

生成证书并设置TLS

  1. OpenLDAP默认使用明码传输,为了加密数据必须生成证书并配置TLS
  2. 在一个安全的服务器上生成CA的私钥和证书,有效期20年
    openssl req -new -x509 -nodes -out ca-cert.pem -keyout ca-key.pem -days 7305
  3. 在LDAP服务器生成私钥和证书请求,证书CN需为客户端访问使用的地址(域名、机器名、IP)
    openssl req -new -nodes -out cert.csr -keyout key.pem
  4. 用CA签发证书,有效期20年
    openssl x509 -req -in cert.csr -CAkey ca-key.pem -CA ca-cert.pem -out cert.pem -set_serial 01 -days 7305
  5. 把CA证书、服务器私钥和证书放到/etc/openldap/certs下,并修改属主和权限
    mv ca-cert.pem cert.pem key.pem /etc/openldap/certs/
    chown -R ldap:ldap /etc/openldap/certs/{ca-cert,cert,key}.pem
    chmod 644 /etc/openldap/certs/ca-cert.pem
    chmod 644 /etc/openldap/certs/cert.pem
    chmod 600 /etc/openldap/certs/key.pem
  6. 创建certs.ldif
    dn: cn=config
    changetype: modify
    replace: olcTLSCACertificateFile
    olcTLSCACertificateFile: /etc/openldap/certs/ca-cert.pem
    
    dn: cn=config
    changetype: modify
    replace: olcTLSCertificateFile
    olcTLSCertificateFile: /etc/openldap/certs/cert.pem
    
    dn: cn=config
    changetype: modify
    replace: olcTLSCertificateKeyFile
    olcTLSCertificateKeyFile: /etc/openldap/certs/key.pem
  7. 用ldapmodify导入
    ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
  8. 修改LDAP服务端配置/etc/sysconfig/slapd,只启用ldapi和ldaps
    SLAPD_URLS="ldapi:/// ldaps:///"
  9. 重启LDAP服务
    systemctl restart slapd.service
  10. 验证TLS,可以看到证书链中有CA和LDAP服务器两个证书,最后显示Verify return code: 0 (ok)
    openssl s_client -connect ldap1:636 -showcerts -state -CAfile /etc/openldap/certs/ca-cert.pem
    
  11. ldap1已完成,从3.生成私钥和证书请求开始为ldap2配置,注意签发证书时set_serial需要不同,签发证书有效期需在CA证书有效期内
  12. 检查证书
    openssl req -in cert.csr -noout -text  //查看证书请求文件
    openssl x509 -in cert.pem -noout -text  //查看证书

创建自己的域

  1. 创建一个文本文件base.ldif,内容见后
  2. 修改dc为自己的域名
    dn: dc=yaoge123,dc=com
    dc: yaoge123
    objectClass: top
    objectClass: domain
    
    dn: ou=People,dc=yaoge123,dc=com
    ou: People
    objectClass: top
    objectClass: organizationalUnit
    
    dn: ou=Group,dc=yaoge123,dc=com
    ou: Group
    objectClass: top
    objectClass: organizationalUnit
  3. 用ldapadd导入,输入RootDN密码
    ldapadd -x -W -D cn=Manager,dc=yaoge123,dc=com -H ldapi:/// -f base.ldif

LDAP复制

  1. OpenLDAP 2.4支持5种复制方式,其中MirrorMode提供LDAP读写高可用性,双机Active-Active Hot-Standby,前端写入一个服务器即可,双机互相同步复制,只有一个服务器的情况下也支持写入
  2. 创建mod_syncprov.ldif
    dn: cn=module,cn=config
    objectClass: olcModuleList
    cn: module
    olcModulePath: /usr/lib64/openldap
    olcModuleLoad: syncprov.la
  3. 用ldapadd导入
    ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif
  4. 创建syncprov.ldif
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcDbIndex
    olcDbIndex: entryCSN,entryUUID eq
    
    dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
    changeType: add
    objectClass: olcOverlayConfig
    objectClass: olcSyncProvConfig
    olcOverlay: syncprov
    olcSpCheckpoint: 100 10
    olcSpSessionLog: 100
  5. 用ldapmodify导入
    ldapmodify -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
  6. 创建syncuser.ldif,创建用于同步的用户,用slappasswd生成密码的哈希填入userPassword中做为同步用户的密码
    dn: cn=ldapreader,dc=yaoge123,dc=com
    objectClass: simpleSecurityObject
    objectClass: organizationalRole
    cn: ldapreader
    description: LDAP reader user 
    userPassword: {SSHA}95M+f4bXaOF4DwJ5HdMY75kkqNXEFJRU
  7. 用ldapadd导入,输入RootDN密码
    ldapadd -x -W -D cn=Manager,dc=yaoge123,dc=com -H ldapi:/// -f syncuser.ldif
  8. 创建ldap1sync.ldif,credentials需为同步用户的密码
    dn: cn=config
    changeType: modify
    add: olcServerID
    olcServerID: 1
    
    dn: olcDatabase={2}hdb,cn=config
    changeType: modify
    add: olcSyncrepl
    olcSyncrepl: rid=001 provider=ldaps://ldap2 bindmethod=simple binddn="cn=ldapreader,dc=yaoge123,dc=com" credentials=yaoge123 searchbase="dc=yaoge123,dc=com" schemachecking=on type=refreshAndPersist retry="60 +" tls_cacert=/etc/openldap/certs/ca-cert.pem
    -
    add: olcMirrorMode
    olcMirrorMode: TRUE
  9. 在ldap1上用ldapmodify导入
    ldapmodify -Y EXTERNAL -H ldapi:/// -f ldap1sync.ldif
  10. 创建ldap2sync.ldif,credentials需为同步用户的密码
    dn: cn=config
    changeType: modify
    add: olcServerID
    olcServerID: 2
    
    dn: olcDatabase={2}hdb,cn=config
    changeType: modify
    add: olcSyncrepl
    olcSyncrepl: rid=001 provider=ldaps://ldap1 bindmethod=simple binddn="cn=ldapreader,dc=yaoge123,dc=com" credentials=yaoge123 searchbase="dc=yaoge123,dc=com" schemachecking=on type=refreshAndPersist retry="60 +" tls_cacert=/etc/openldap/certs/ca-cert.pem
    -
    add: olcMirrorMode
    olcMirrorMode: TRUE
  11. 在ldap2上用ldapmodify导入
    ldapmodify -Y EXTERNAL -H ldapi:/// -f ldap2sync.ldif
  12. 修改其中一个服务器上的LDAP,查看另一个服务器是否自动同步。
  13. 如果同步有问题,用调试模式运行ldap
    /usr/sbin/slapd -u ldap -g ldap -h "ldapi:// ldaps://" -d -1

迁移已有用户

  1. 安装迁移工具
    yum install -y migrationtools
  2. vi /usr/share/migrationtools/migrate_common.ph,修改默认dc
    # Default DNS domain
    $DEFAULT_MAIL_DOMAIN = "yaoge123.com";
    
    # Default base
    $DEFAULT_BASE = "dc=yaoge123,dc=com";
    
  3. 处理一下passwd和group,把系统账号都去掉,对于RHEL7/CentOS7来说,系统账号都是<1000的,migrate_passwd.pl会从/etc/shadow提取密码信息
    grep ":10[0-9][0-9]" /etc/passwd > passwd
    grep ":10[0-9][0-9]" /etc/group > group
    /usr/share/migrationtools/migrate_passwd.pl passwd users.ldif
    /usr/share/migrationtools/migrate_group.pl group groups.ldif
  4. 导入LDAP中,输入RootDN密码
    ldapadd -x -W -D "cn=Manager,dc=yaoge123,dc=com" -H ldapi:/// -f users.ldif
    ldapadd -x -W -D "cn=Manager,dc=yaoge123,dc=com" -H ldapi:/// -f groups.ldif
    
  5. 创建index.ldif,做一些索引,最好日志中没有bdb_equality_candidates
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcDbIndex
    olcDbIndex: uid,uidNumber,gidNumber,member,memberUid eq
  6. 导入LDAP中
    ldapmodify -Y EXTERNAL -H ldapi:/// -f index.ldif

修改LDAP ACL:

  1. 密码和密码修改时间,RootDN可管理,自己可写,同步用户可读,匿名和普通用户只能Bind进行认证
  2. 其它所有RootDN可管理,匿名和普通用户可读
  3. 以上ACL保证了密码安全性,做成一个access.ldif文件
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to dn.children="dc=nnlmhpcc" attrs=userPassword,shadowLastChange
      by dn="cn=Manager,dc=nnlmhpcc" manage
      by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
      by dn="cn=ldapreader,dc=nnlmhpcc" read
      by self write
      by * auth
    olcAccess: {1}to *
      by dn="cn=Manager,dc=nnlmhpcc" manage
      by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
      by * read
    
  4. 导入LDAP中,输入RootDN密码
    ldapmodify -Y EXTERNAL -H ldapi:/// -f access.ldif
  5. 确认匿名和普通用户无法查看密码,两台LDAP同步正常(含密码),用户自己可以自己修改密码
  6. 如果有问题,用ldapmodify -Y EXTERNAL -H ldapi:/// -f导入下面的文件打开ACL的日志检查,检查完别忘了把ACL日志关掉
    dn: cn=config
    changetype: modify
    replace: olcLogLevel
    olcLogLevel: acl stats stats2 shell sync

LDAP认证的客户端:

  1. 安装nss-pam-ldapd
    yum install -y nss-pam-ldapd
  2. 配置普通用户使用LDAP认证,因为已经使用ldaps故需disableldaptls,bashdn下必须包含People和Group
    authconfig --enableldap --enableldapauth --ldapserver="ldaps://ldap1,ldaps://ldap2" --ldapbasedn="dc=yaoge123,dc=com" --disableldaptls --ldaploadcacert=http://www.yaoge123.com/ca-cert.pem --updateall
  3. 测试用户登录、修改密码是否正常。

对于虚拟化部署的ldap1和ldap2,需要添加规则让两个虚机不在同一个主机上运行。

集群节点较多时,slapd会报错Too many open files。参考http://smilejay.com/2016/06/centos-7-systemd-conf-limits/和http://www.cnblogs.com/chris-cp/p/6667753.html,修改slapd的Max open files限制, 查看限制:

grep files /proc/`pidof slapd`/limits

 

 

xCAT 安装迁移

新机器安装系统,配置yun源、Hostname、Timezone、resolv.conf、路由和每个网卡的IP,yum upgrade,禁用SELinux和Firewall,hosts中配置本机主机名和ip,如公网网卡采取DHCP 配置中需添加PEERDNS=no 和 IPV6_PEERDNS=no

VM虚拟机中安装vmware tools,vmware-toolbox-cmd timesync status确认时间同步是否启用,vmware-toolbox-cmd timesync enable启用虚拟机和主机的时间同步

yum install rsync net-snmp-utils

重启后使用go-xcat install 自动化安装xcat

tabedit site:添加修改dhcpinterfaces、managedaddressmode、domain、master、dnsinterfaces、extntpservers;确认forwarders、nameservers。

tabedit networks:确认修改mgtifname、gateway、dhcpserver、tftpserver、ntpservers

修改/etc/resolv.conf,search为site表中的domain,nameserver为xcat自身

makedns,测试dns是否正常

修改/etc/chrony.conf,测试ntp是否正常

修改/etc/exports,限定IP地址范围

修改/etc/httpd/conf/httpd.conf,限定只监听内网的80端口

修改/etc/logrotate.conf,满足合规性要求,增加日志保留时间并启用压缩

迁移/etc/hosts.deny和hosts.all,配置只允许指定IP进行远程登录

修改/etc/postfix/main.cf中的myhostname和inet_interfaces

拷贝旧机器/install下的os image、自定义脚本等到新机器下

tabedit passwd:添加system的用户名密码,密码可以用openssl passwd -1加密

旧机器导出xCAT数据库dumpxCATdb -p /tmp/db,至少将nodelist chain bootparams nodetype mac hosts postscripts noderes nodehm osimage linuximage osdistro ipmi mp mpa等自定义表在新机器上restorexCATdb -p导入

如果需要迁移eventlog和auditlog,导入导出需添加-a参数,auditlog因为比较大导入非常慢

迁移/var/log下的日志

替换root ssh key为新的

迁移/etc/cron.d下的自定义定时任务