Ubuntu下搭建支持LDAP的proftpd服务器

您所在的位置:网站首页 openldap搭建 Ubuntu下搭建支持LDAP的proftpd服务器

Ubuntu下搭建支持LDAP的proftpd服务器

2023-03-03 16:16| 来源: 网络整理| 查看: 265

背景

前几天搭建好了Gerrit和mediawiki服务器,最近有空想把自动构建Jenkins服务器搭建起来,但是前提需要一个保存镜像的地方,因此首先需要搭建要给ftp服务器,考虑到集成LDAP服务,经过调查选择了proftpd,比较了vsftpd,ftpd等后,由于proftpd支持ldap,功能也比较强大,就是配置复杂一些。

详细信息参考官网: http://www.proftpd.org

安装准备

安装Proftpd的操作过程中,会提示选择 :

sudo apt-get install proftpd-basic

 Proftpd有两种运行模式:standalone、xinetd 

简单说经典模式主要用于接入大量用户的场景,xinetd是少量用户接入,空闲是资源占用少。

我按默认采用 standalone

因为我要用Ldap认证,还需要安装额外包

sudo apt-get install proftpd-mod-ldap

 这样安装工作就完成了,使用ubuntu的ssh 用户就可以直接登录查看

服务配置

1,ftp主目录配置

由于我们的配置是将所有用户指向一个目录

/etc/proftpd/proftpd.conf  里的DefaulRoot修改为自己的目录,其实你可以发现这个配置后,ssh用户登录只能看到此目录,其他目录包括用户主目录也不运行看了

# Use this to jail all users in their homes DefaultRoot /home/ftp

2, ldap配置

需要添加ldap的模块和配置,

修改/etc/proftpd/proftpd.conf 配置

Include /etc/proftpd/ldap.conf

修改 /etc/proftpd/modules.conf

# Install proftpd-mod-ldap to use this LoadModule mod_ldap.c

修改 /etc/proftpd/ldap.conf 

# # Proftpd sample configuration for LDAP authentication. # # (This is not to be used if you prefer a PAM-based LDAP authentication) # # # This is used for ordinary LDAP connections, with or without TLS # #LDAPServer ldap://ldap.example.com #LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password" #LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u) # # To be set on only for LDAP/TLS on ordinary port, for LDAP+SSL see below #LDAPUseTLS on # LDAPLog /var/log/proftpd/ldap.log LDAPServer example.china LDAPBindDN DN "password" LDAPSearchScope subtree LDAPAttr uidNumber sAMAccountName LDAPAttr uid name LDAPAttr gidNumber primaryGroupID RequireValidShell off # Create the home directory LDAPGenerateHomedir on LDAPGenerateHomedirPrefix /home/ftp/ LDAPGenerateHomedirPrefixNoUsername on LDAPUsers OU=12,DC=345,DC=CHINA (sAMAccountName=%u) # # This is used for encrypted LDAPS connections # #LDAPServer ldaps://ldap.example.com #LDAPBindDN "cn=admin,dc=example,dc=com" "admin_password" #LDAPUsers dc=users,dc=example,dc=com (uid=%u) (uidNumber=%u) #

说明:

1,LDAPLog  可以用来定位认证过程的log,比较有用,建议添加

2,LDAPServer  我开始的时候参照他的例子 LDAPServer ldap://example.china 导致认证不过,怀疑这样写LDAPSearchScope subtree 一直生效不了

3,LDAPUsers 第二个参数是过滤器,fliter,具体格式可参照  http://www.proftpd.org/docs/contrib/mod_ldap.html#LDAPUsers

4,   如果登录用户均为/home/ftp 则为以下配置:

LDAPGenerateHomedir on LDAPGenerateHomedirPrefix /home/ftp/ LDAPGenerateHomedirPrefixNoUsername on LDAPUsers OU=12,DC=345,DC=CHINA (sAMAccountName=%u)

如果为每个用户创建自己的目录,需要增加CreateHome 为on,然后LDAPGenerateHomedirPrefixNoUsername  off 即可

详细的ldap配置可参考:http://www.proftpd.org/docs/contrib/mod_ldap.htm

用户权限配置

以上配置后了,还需要配置用户目录权限

下面是我为所有用户配置的权限,限制重命名和删除,可读可写,但是实际好像还是有点问题,后面再深究

/etc/proftpd/proftpd.conf 

         DenyAll        AllowOverwrite on    AllowRetrieveRestart on    AllowStoreRestart on

#容器内有以下权限: # CWD:改变所在目录 # MKD/XMKD:新建目录 # RNFR/RNTO:重命名目录的(一起使用) # DELE:删除文件 # RMD/XRMD:删除目录 # RETR:下载 # STOR:上传 # LOGIN:登陆 # READ:包括了RETR,SITE,SIZE,STAT # WRITE:包括了APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD # DIRS:包括了DUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD # ALL:包括了READ WRITE DIRS #以上权限结合动作一起使用: # AllowUser:允许某个用户 # DenyUser:禁止某个用户 # AllowGroup:允许某个用户组 # DenyGroup:禁止某个用户组 # AllowAll:允许所有用户 # DenyAll:禁止所有用户

配置完成后,重启服务

 sudo /etc/init.d/proftpd  restart

参照:https://blog.csdn.net/hanchaoqi/article/details/38733863



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3