1.本文档不提及openladp服务器的搭建,只提供sftp集成openldap身份认证。 ldap 服务器ip:192.168.1.100 域名:example.com
安装软件: yum -y install openldap-clients sssd authconfig nss-pam-ldapd
添加配置 cat /etc/openldap/ldap.conf URI ldap://192.168.1.100
BASE dc=example,dc=com
执行命令: authconfig --enablesssd --disableldaptls --disablekrb5 --ldapserver ldap://192.168.1.100 --ldapbasedn "dc=example,dc=com" --update
# 如果etc/sssd/sssd.conf文件不存在,则手动创建一个 cat /etc/sssd/sssd.conf [domain/default]
ldap_search_base = dc=example,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://192.168.1.100
[sssd]
services = nss, pam, autofs
config_file_version = 2
domains = default
[nss]
homedir_substring = /home
# 修改权限 chmod 600 /etc/sssd/sssd.conf
# 启动服务 systemctl start sssd systemctl enable sssd
# 配置nslcd并启动服务 # 检查nslcd配置文件是否有相关信息 cat /etc/nslcd.conf uri ldap://192.168.1.100
base dc=example,dc=com
# 启动服务
systemctl start nslcd
systemctl enable nslcd
# 至此完成sssd的配置,可以通过id查看用户OpenLDAP的用户 [root@localhost sssd]# id ldap-user uid=12036(ldap-user) gid=12036 组=12036
# 检查openldap连接状态
ldapsearch -D "cn=admin,dc=example,dc=com" -W -h 192.168.1.100 -p 389 |grep dn
# 创建指定id组,用于sftp用户修改根目录 groupadd sftpgroup
# 配置/etc/sshsshd_config # Subsystem sftp /usr/libexec/openssh/sftp-server #需要注销
UsePAM yes
Subsystem sftp internal-sftp -l INFO -f local5
Match Group sftpgroup
ChrootDirectory /app/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp -l INFO -f local5
AllowTcpForwarding no 是否允许 TCP 转发,默认值为 "yes"
X11Forwarding no 是否允许进行 X11 转发,默认值是 "no"
# /app/目录的权限设定有两个要点:
# 1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是 root
# 2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
# chmod g-w /app
配置PAM模块(增加ldap验证功能) /etc/pam.d/password-auth #%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_ldap.so use_first_pass # 需增加
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so # 需增加
account required pam_permit.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok # 需增加
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so # 需增加
重启sshd服务 systemctl restart sshd
# 将用户添加到本地组 usermod -G sftp-user ldap-user
|