服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2

###记住这个字符串,后面需要写入配置文件来更新密码

###编辑修改根域管理密码配置,修改的是olcRootPW,采用modify添加方式
###当然也可以放在下方管理权限配置里面一同修改。
vim chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}GDdMN3vBiNHs4fEcDaey6nCdILiY3GYd
###应用修改
ldapmodify -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

########################################################
###基础配置之后大家可以查看变化,/etc/openldap/slapd.d/cn=config/olcDatabase={0}config.ldif,大家要看到文件头的提示# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
所以千万别手动去修改,容易出错
###下面是配置截图,仅供参考
###olc开头的都是可以设定的参数,想设置哪个参数或者添加什么参数,按ldif配置文件的格式编写即可,自定义配置建议统一放置在 /etc/openldap/configs下面,防止与系统配置文件弄混


![](https://img-blog.csdnimg.cn/066cdeda04ed422a8e3d5500ba1be8a7.jpeg)



###配置管理权限,可以单独配置角色并配置对应的读写权限,dn要写清楚,这里面的dn.base=和后面dn=里面对应的Mangement,jindong,com都可以根据自己喜好或实际修改,但要注意,这个设定后,后面使用时也要按这个来使用,且设定密码或修改对应权限时这个dn都要写全,且不能出错。
###下方的olcRootPW和前面的步骤里提到的是一样的,表示根域管理的密码
###olcSuffix表示自己的域,可以理解为组织或单位的名称,如 jd.com, biosafe.org,按照这个修改为dc=jd,dc=com或 dc=biosafe,dc=org
###olcRootDN就是表示olcSuffix下的一个管理角色Management, 根据自己喜好设定即可,但后面dc要和前面suffix相同。
###olcAccess就是配置权限了,{0}、{1}、{2}这几个表示的是不同数据库,后面by跟着表示对应角色给予什么权限。
vim admin_config.ldif
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=Management,dc=jindong,dc=com” read by * none

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=jindong,dc=com

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Management,dc=jindong,dc=com

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}9FYhkbjcu5/JT+jveRmEeE/EgHp6zDVWJ+

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn=“cn=Management,dc=jindong,dc=com” write by anonymous auth by self write by * none
olcAccess: {1}to dn.base=“” by * read
olcAccess: {2}to * by dn=“cn=Management,dc=jindong,dc=com” write by * read

###应用管理权限配置
ldapadd -Y EXTERNAL -H ldapi:/// -f admin_config.ldif

###编辑配置tls
vim add_tls.ldif
dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/ldapserver.crt

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/ldapserver.key

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/ldapserver.crt
###应用配置
ldapadd -Y EXTERNAL -H ldapi:/// -f add_tls.ldif


配置主主同步



###配置数据库同步
vim syncprov.ldif
dn: olcOverlay=syncprov,olcDatabase={2}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100

###应用配置
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

###配置开启数据同步模块,大家看一下目录下的文件就了解了,如果是手动安装在指定目录下,这个lib位置可能要修改成对应目录,总之是要找到路径/usr/lib64/openldap/下的syncprov.la这个文件
vim syncprov_mod.ldif
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la

###应用配置
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov_mod.ldif

###配置日志级别
vim log_config.ldif
dn: cn=config
changetype: modify
add: olcLogLevel
olcLogLevel: stats
#stats为打印日志的级别,可根据不同的级别设置不同的值

###应用配置,这里使用modify模式
ldapmodify -Y EXTERNAL -H ldapi:/// -f log_config.ldif

#####openldap日志级别,看不懂的自己翻译去吧,不难:
Level Keyword Description
-1 any enable all debugging
0 no debugging
1 (0x1 trace) trace function calls
2 (0x2 packets) debug packet handling
4 (0x4 args) heavy trace debugging
8 (0x8 conns) connection management
16 (0x10 BER) print out packets sent and received
32 (0x20 filter) search filter processing
64 (0x40 config) configuration processing
128 (0x80 ACL) access control list processing
256 (0x100 stats) stats log connections/operations/results
512 (0x200 stats2) stats log entries sent
1024 (0x400 shell) print communication with shell backends
2048 (0x800 parse) print entry parsing debugging
16384 (0x4000 sync) syncrepl consumer processing
32768 (0x8000 none) only messages that get logged whatever log level is set

##可以选择配置rsyslog

修改/etc/rsyslog.conf配置文件

cat >> /etc/rsyslog.conf << EOF
local4.* /var/log/slapd/slapd.log
EOF
###然后重启rsyslog应用:
mkdir -p /var/log/slapd
chown ldap:ldap /var/log/slapd/
systemctl restart rsyslog
systemctl restart slapd

重启看到日志

ls /var/log/slapd/

/var/log/slapd/slapd.log目录下就可以看到slapd产生的日志了。

##配置禁止匿名用户访问,一般为了安全都需要设置,这里配置的是不允许匿名用户通过ip访问查看数据内容,不允许web服务前端匿名用户登陆,主要指ldapphpadmin的网络管理,后面会详细说明配置。
vim disable_anon.ldif
dn: cn=config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon

dn: cn=config
changetype: modify
add: olcRequires
olcRequires: authc

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcRequires
olcRequires: authc

###应用配置
ldapadd -Y EXTERNAL -H ldapi:/// -f disable_anon.ldif

####################################################################################
####再提醒一下的就是所有采用命令生成的配置文件ldif都标明了不要手动修改,所以大家不要直接修改这里的ldif文件,否则后面会提示错误,或者在使用命令修改后,这个文件的配置就会对应修改,而且每个都有时间戳,破坏了系统就会显示检测到配置错误。
cat /etc/openldap/slapd.d/cn=config.ldif

AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.

CRC32 21c2b603

dn: cn=config
objectClass: olcGlobal
cn: config
structuralObjectClass: olcGlobal
entryUUID: 2527141e-d799-103d-8820-417a1b6d07b1
creatorsName: cn=config
createTimestamp: 20230825134340Z
olcDisallows: bind_anon
olcRequires: authc
olcLogLevel: stats
olcTLSCACertificateFile: /etc/openldap/certs/ldapserver.crt
olcTLSCertificateKeyFile: /etc/openldap/certs/ldapserver.key
olcTLSCertificateFile: /etc/openldap/certs/ldapserver.crt
olcServerID:: MSA=
entryCSN: 20231115075749.487914Z#000000#002#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20231115075749Z
####################################################################################

###前面配置所有服务主机都配置相同的根域管理和密码,当然也可以不同,但下面对应的bindn和credentials就得做相应修改。

###配置主机id及同步主机策略等
#olcServerID,按顺序第几个主机就写对应数字作为对应编号,按自己喜好修改
#下面配置同步主机

olcSyncRepl 后面配置另外其他主机的信息,一般配置一个就行,这里三个节点,所以配置了2个。其他两台主机注意修改,这里第一个主机所以需要同步的是2和3主机,如果是第二个主机,这里改成1和3号。

olcMirrorMode表示主主同步,与主从模式区别。

###########################host1####################################
vim configrep.ldif

Update Server ID with LDAP URL

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1

Adding details for replication

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSyncRepl
olcSyncRepl:
rid=002
provider=ldap://192.168.1.12
binddn=“cn=Management,dc=jingdong,dc=com”
bindmethod=simple
credentials=这里的密码与前面一致,可以明文,建议使用前面的加密字符串
searchbase=“dc=jingdong,dc=com”
type=refreshAndPersist
retry=“5 5 300 5”
timeout=1
olcSyncRepl:
rid=003
provider=ldap://192.168.1.13
binddn=“cn=Management,dc=jingdong,dc=com”
bindmethod=simple
credentials=这里的密码与前面一致,可以明文,建议使用前面的加密字符串
searchbase=“dc=jingdong,dc=com”
type=refreshAndPersist
retry=“5 5 300 5”
timeout=1

replace: olcMirrorMode
olcMirrorMode: TRUE
###########################################################################

#################################host2#####################################
vim configrep.ldif

Update Server ID with LDAP URL

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1

Adding details for replication

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSyncRepl
olcSyncRepl:
rid=001
provider=ldap://192.168.1.11
binddn=“cn=Management,dc=jingdong,dc=com”
bindmethod=simple
credentials=这里的密码与前面一致,可以明文,建议使用前面的加密字符串
searchbase=“dc=jingdong,dc=com”
type=refreshAndPersist
retry=“5 5 300 5”
timeout=1
olcSyncRepl:
rid=003
provider=ldap://192.168.1.13
binddn=“cn=Management,dc=jingdong,dc=com”
bindmethod=simple
credentials=这里的密码与前面一致,可以明文,建议使用前面的加密字符串
searchbase=“dc=jingdong,dc=com”
type=refreshAndPersist
retry=“5 5 300 5”
timeout=1

replace: olcMirrorMode
olcMirrorMode: TRUE
###############################################################################

###应用配置
ldapadd -Y EXTERNAL -H ldapi:/// -f configrep.ldif


前面所有服务节点配置完成后最好是按顺序重新启动一下slapd服务,并确认所有服务状态和数据库同步无错误信息



###所有slapd节点,基本就是下面三个命令确认一下就行
systemctl restart slapd
systemctl status slapd
journal -xe | grep lapd


### 高可用配置keepalived+haproxy


怎么配置keepalived和haproxy大家搜索吧,本人后面会补充上


这里仅修改haproxy 关于 openldap高可用配置选段



##修改/etc/haproxy/haproxy.cfg,haproxy版本 2.8.1
##添加下面内容
listen openldap_cluster
bind 192.168.1.251:10389
mode tcp
option tcplog
balance roundrobin
server host1 192.168.1.11:389 check weight 5
server host2 192.168.1.12:389 check weight 5
server host3 192.168.1.13:389 check weight 5


复制haproxy配置到所有haproxy节点下,重新启动 haproxy服务,后面所有认证服务都可以使用ldap://192.168.1.251:10389这个地址。


### 添加用户组和用户



####批量导入导出原来系统已有的账号和用户组需要使用migrationtools,高版本的centos需要单独找安装源了。
###这里人员账户信息是按照migrationtools导出系统账户的格式,大家添加用户或者批量导入账户的都可以采用这种方式对应修改即可,有多少个人就添加多少个模块信息。
###这里的呃userPassword可以直接明文,但不建议,用户密码还是建议使用slappasswd生成后写入下面文件吧,但得注意明文密码单独记录,
###这里还可以添加其他email之类的账户参数,大家搜索一下就知道了。
###建议大家直接指定gid和uid,系统默认创建用户会从uid=500开始,个人一般喜好将小于1000的id留给系统账户,方便安全管理。

##分别编辑group和user配置文件
############################################################
vim add_group.ldif
dn: cn=liuqiangdong,ou=Group,dc=jingdong,dc=com
objectClass: posixGroup
objectClass: top
cn: liuqiangdong
gidNumber: 1601

dn: cn=zhangtianze,ou=Group,dc=jingdong,dc=com
objectClass: posixGroup
objectClass: top
cn: zhangtianze
gidNumber: 1602
###########################################################

############################################################
vim add_user.ldif
dn: uid=liuqiangdong,ou=People,dc=jingdong,dc=com
uid: liuqiangdong
cn: liuqiangdong
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA}22idPfpP0R2THBaxqpr14bawdKJKpeTC
shadowLastChange: 19333
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1601
gidNumber: 1601
homeDirectory: /home/liuqiangdong

dn: uid=zhangtianze,ou=People,dc=jingdong,dc=com
uid: zhangtianze
cn: zhangtianze
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA}22idPfpP0R2THBaxqpr14bawdKJKpeTC
shadowLastChange: 19333
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1602
gidNumber: 1602
homeDirectory: /home/zhangtianze
##############################################################

###添加用户,用户信息重复时会报错,修改成新的不重复信息或者使用ldapmodify命令修改。
ldapadd -x -D “cn=Management,dc=jingdong,dc=com” -H ldapi:/// -W -f new_group.ldif
ldapadd -x -D “cn=Management,dc=jingdong,dc=com” -H ldapi:/// -W -f add_user.ldif

#添加用户后最好确认已经建立好用户对应的文件夹,也可以配置自动建立用户文件夹,但系统未能自动建立时还需要手动建立。


### 配置phpldapadmin(选配)


这个是web管理界面,可以选择安装,没有安装的话直接使用ldapsearch命令按指定域查询信息即可。


补充phpldapadmin配置和简单操作:


[OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream-CSDN博客之前已经发了一篇关于centos9下面配置openldap多主高可用集群的内容,不会配置ldap集群的请参考:这里跟着前篇文章详细说明如何配置openldap的web管理界面PhpLDAPAdmin;![](https://g.csdnimg.cn/static/logo/favicon32.ico)https://blog.csdn.net/zrc\_xiaoguo/article/details/134524492?spm=1001.2014.3001.5501](https://blog.csdn.net/zrc_xiaoguo/article/details/134524492?spm=1001.2014.3001.5501 "OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream-CSDN博客")


## 客户端配置


需要统一认证的server物理机也建议一起配置


先配置slapd.conf 的



###客户端主要安装clients配置,建议都按前面server形式安全全吧, 只要不启用slapd服务即可。
###安装完后先配置slapd.conf
###主要修改或添加下面几行,其他的可以注释掉
vim /etc/openldap/slapd.conf
DEREF never
SASL_NOCANON on
TLS_REQCERT never
TLS_CACERT /etc/openldap/certs/ldapserver.crt
URI ldap://192.168.1.11,ldap://192.168.1.12,ldap://192.168.1.13
BASE dc=liuqiangdong,dc=com

配置了haproxy高可用的可以直接使用前面的URI ldap://192.168.1.251:10389

当然如果为安全考虑可以只使用 ldaps://的链接,对应的haproxy部分和这里的地址都需要做相应调整


在配置sssd及sshd



###安装sssd
yum install sssd -y

###生成certs证书,这里直接使用前面ldapserver的
ls /etc/sssd/pki
ldapserver.crt ldapserver.key

###配置sssd
vim sssd.conf
[sssd]
services = nss, pam, ssh, autofs
config_file_version = 2
domains = ldap

[nss]
fd_limit = 65535
filter_groups = root,bin,daemon,sys,adm,tty,disk,lp,mem,kmem,wheel,mail,uucp,man,games,gopher,video,dip,ftp,lock,audio,nobody,users,dbus,utmp,utempter,floppy,vcsa,stapusr,stapsys,stapdev,abrt,cdrom,tape,dialout,haldaemon,ntp,cgred,saslauth,postdrop,postfix,sshd,oprofile,tcpdump,screen,slocate,www,tomcat,apache,nginx,zabbix,rpc,rpcuser,nfsnobody
filter_users = root,bin,daemon,adm,lp,sync,shutdown,halt,mail,uucp,operator,games,gopher,ftp,nobody,dbus,vcsa,abrt,haldaemon,ntp,saslauth,postfix,sshd,oprofile,tcpdump,www,tomcat,apache,nginx,zabbix,rpc,rpcuser,nfsnobody,ldap
homedir_substring = /home

[domain/ldap]
autofs_provider = ldap
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap

default_shell = /bin/bash
ldap_id_use_start_tls = True
ldap_tls_cacertdir = /etc/sssd/pki
cache_credentials = True
ldap_tls_reqcert = never

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值