在Debian上使用OpenLDAP身份验证设置ProFTPd
时间:2020-03-21 11:42:24 来源:igfitidea点击:
具有针对用户的OpenLDAP身份验证的ProFTPD服务器。
软件
本文使用的软件:
- Debian Wheezy
- ProFTPD 1.3.4a
- OpenLDAP 2.4.31
在我们开始之前
我们可能需要查看本文以了解如何设置OpenLDAP。
我们将使用被动FTP模式从外部(NAT)连接。
我们将在没有其他VirtualHost的情况下使用“ DefaultServer on”。
安装
安装proftpd(选择独立版本):
# apt-get install proftpd proftpd-mod-ldap [...] Run proftpd: standalone [...]
配置
我们将为FTP上传创建一个新目录。
我们还将防止其他用户删除或者重命名目录中的文件,除非他们拥有该文件或者目录:
# mkdir -m 1777 /data/ftp
仔细检查权限:
# ls -ld /data/ftp/ drwxrwxrwt 2 root root 4096 Oct 24 18:49 /data/ftp/
导航到proftpd安装目录:
# cd /etc/proftpd
首先备份默认配置文件:
# cp ./proftpd.conf ./proftpd.conf.$(date +%F)
打开“ /etc/proftpd/modules.conf”并取消注释以下行:
LoadModule mod_ldap.c
proftpd.conf
这是我们的“ proftpd.conf”配置:
# cat ./proftpd.conf# Server Config #Include /etc/proftpd/modules.conf ServerName "Private FTP Server" ServerType standalone ServerAdmin Hyman@theitroad DefaultServer on AccessGrantMsg "User %u logged in." AuthOrder mod_ldap.c UseReverseDNS off RequireValidShell off DefaultAddress localhost Port 21 PassivePorts 64000 65000 User proftpd Group nogroup ScoreboardFile /var/run/proftpd.score MaxInstances 20 # for passive FTP mode MasqueradeAddress 54.X.Y.Z MultilineRFC2228 on ShowSymlinks off UseIPv6 off DefaultTransferMode binary WtmpLog off TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log# Global Config #<Global> RootLogin off AuthPAM off DefaultRoot /data/ftp ServerIdent on "Private FTP Server" IdentLookups off DeferWelcome off DisplayLogin /etc/proftpd/welcome.msg TimeoutLogin 120 TimeoutNoTransfer 300 TimeoutStalled 3600 TimeoutIdle 600 MaxClients 5 "Sorry, ftp server has reached its maximum user limit (%m)" MaxClientsPerUser 5 "Sorry, no more than %m connections per user." MaxStoreFileSize * MaxRetrieveFileSize * MaxLoginAttempts 3 DenyFilter \*.*/ Umask 022 AllowOverwrite on AllowOverride off AllowRetrieveRestart on AllowStoreRestart on RequireValidShell off </Global> <IfModule mod_delay.c> DelayEngine on </IfModule> <Limit SITE_CHMOD> DenyAll </Limit> <IfModule mod_ldap.c> LDAPServer localhost LDAPBindDN cn=Guest,dc=top passwd LDAPUsers ou=Users,dc=theitroad.com,dc=top (uid=%u) </IfModule>
重新启动ProFTPd守护程序
防止ProFTPD文件在世界范围内可读:
# chmod 0640 /etc/proftpd/proftpd.conf
并重新启动服务:
# service proftpd restart