虚拟邮件和FTP托管iRedMail和Pure-FTPd在Debian Lenny上
iRedMail是一个外壳脚本,可让您在不到2分钟内快速部署全功能邮件解决方案。 自版本0.5以来,它支持CentOS 5.x,Debian 5.x,Ubuntu 8.04和Ubuntu 9.04(i386和x86_64)。 iRedMail支持OpenLDAP和MySQL作为后端用于存储虚拟域和用户。
iRedMail的OpenLDAP后端可让您集成各种应用程序。 本指南介绍如何将pure-ftpd集成到Debian Lenny上的iRedMail ldap后端,密码将存储在ldap中,您可以通过webmail更改密码。
本教程基于Debian 5.01,所以建议您设置一个最小的Debian 5.01,安装iredmail 0.51并选择OpenLDAP作为后端,如本教程所示,继续执行本教程:
- iRedMail:使用LDAP,Postfix,RoundCube / SquirrelMail,Dovecot,ClamAV,SpamAssassin,Amavisd(Debian 5.0.1)的邮件服务器
- iRedMail:使用LDAP,Postfix,RoundCube,Dovecot,ClamAV,SpamAssassin,DKIM,SPF在CentOS 5.x上构建全功能邮件服务器
1安装Pure-FTPd
安装纯ftpd:
apt-get install pure-ftpd-ldap
2将PureFTPd配置为独立服务器
现在我们必须将PureFTPd配置为独立的守护进程(目前由inetd控制)。 为此,我们打开/ etc / default / pure-ftpd-common
,将参数STANDALONE_OR_INETD
的值更改为standalone
:
vi /etc/default/pure-ftpd-common
#STANDALONE_OR_INETD=inetd STANDALONE_OR_INETD=standalone #change to standalone |
接下来,我们修改/etc/inetd.conf
并注释掉ftp
行:
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper |
之后,我们重新启动inetd和PureFTPd:
/etc/init.d/openbsd-inetd restart
/etc/init.d/pure-ftpd-ldap restart
3基本设置在/ etc / pure-ftpd / conf /
创建文件/ etc / pure-ftpd / conf / ChrootEveryone
,其中只包含字符串yes
:
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
这将使PureFTPd在其主目录中的每个虚拟用户都chroot,因此他将无法浏览其主目录之外的目录和文件。
还要创建文件/ etc / pure-ftpd / conf / CreateHomeDir
,它再次只包含字符串yes
:
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir
这将使PureFTPd在用户登录并且主目录不存在时创建用户的主目录。
最后创建文件/ etc / pure-ftpd / conf / DontResolve
,它再次只包含字符串yes
:
echo "yes" > /etc/pure-ftpd/conf/DontResolve
这将使PureFTPd不会查找可以显着加速连接并减少带宽使用的主机名。
4找到cn = vmail密码
在iremail安装期间随机创建vmail密码。您可以在/etc/postfix/ldap_virtual_mailbox_domains.cf
中找到密码:
cat /etc/postfix/ldap_virtual_mailbox_domains.cf
bind_dn = cn=vmail,dc=example,dc=com bind_pw = kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail password |
5配置LDAP设置
vi /etc/pure-ftpd/db/ldap.conf
LDAPServer localhost LDAPPort 389 LDAPBaseDN o=domains,dc=example,dc=com LDAPBindDN cn=vmail,dc=example,dc=com LDAPBindPW kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail password LDAPDefaultUID 1000 # <- UID of 'vmail' user. LDAPDefaultGID 1000 # <- GID of 'vmail' user. LDAPFilter (&(objectClass=PureFTPdUser)(mail=\L)(FTPStatus=enabled)) LDAPHomeDir FTPHomeDir # <- This is new attribute, we will add it LDAPVersion 3 |
6获取架构
您有两种获取pureftpd模式的方法。你只需要选择一个。- 下载已被iremail修改的模式。
- 获取pure-ftpd-1.0.24中发送的模式并对其进行修改。
6.1下载由iremail修改的模式:
wget http://iredmail.googlecode.com/svn/trunk/extra/pureftpd.schema -P /etc/ldap/schema/
6.2获取pure-ftpd-1.0.24中发送的模式:
cd /tmp/
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.24.tar.bz2
tar xjf pure-ftpd-1.0.24.tar.bz2
cp pure-ftpd-1.0.24/pureftpd.schema /etc/ldap/schema/
修改/etc/ldap/schema/pureftpd.schema
:
我们需要在对象类定义之前添加一个属性“FTPHomeDir”,用于存储用户的FTP目录。
vi /etc/ldap/schema/pureftpd.schema
attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME 'FTPgid' DESC 'System uid (overrides gidNumber if present)' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # Add new attributetype FTPHomeDir. attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME 'FTPHomeDir' DESC 'FTP directory' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ## New Pure-FTPd object type objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME 'PureFTPdUser' DESC 'PureFTPd user with optional quota, throttling and ratio' SUP top AUXILIARY MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $ FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $ FTPuid $ FTPgid $ FTPHomeDir ) ) # <-- Add $ FTPHomeDir |
7修改/etc/ldap/slapd.conf
vi /etc/ldap/slapd.conf
在iredmail.schema
之后包含pureftpd.schema
:
include /etc/ldap/schema/iredmail.schema include /etc/ldap/schema/pureftpd.schema # <-- Add this line. |
添加在pureftpd.schema中定义的属性的索引
:
# Default index. # index objectClass eq,pres index ou,cn,mail,surname,givenname,telephoneNumber eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub # <-- Add the below #Index for FTP attrs. index FTPQuotaFiles,FTPQuotaMBytes eq,pres index FTPUploadRatio,FTPDownloadRatio eq,pres index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres |
8创建FTP主目录
FTP数据都存储在/ home / ftp /
目录中。 创建/ home / ftp /
,所有者必须是root用户。
mkdir /home/ftp/
ls -dl /home/ftp
drwxr-xr-x 2 root root 4096 Oct 3 16:53 /home/ftp
9重新启动OpenLDAP服务以使pureftpd.schema工作
/etc/init.d/slapd restart
/etc/init.d/pure-ftpd-ldap restart
确保纯ftpd正在运行:
# netstat -ntlp | grep pure-ftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12548/pure-ftpd (SE
tcp6 0 0 :::21 :::* LISTEN 12548/pure-ftpd (SE