配置pure-ftpd debian/centos

debian

1. 安装 pure-ftpd 软件
root@localhost:~# apt-get update
root@localhost:~# apt-get install pure-ftpd
2. 配置虚拟用户
root@localhost:~# groupadd ftpg                        #添加组
root@localhost:~# useradd -s /sbin/nologin -g ftpg ftpu -M        #添加用户到组
3. 创建 ftp 虚拟用户

语法

pure-pw useradd 用户名 -m -u ftpu -d ftp的根路径

实例

root@localhost:~# pure-pw useradd test1 -m -u ftpu -d /www/  #用户名test1 根目录/www
Password:                             #输入两次密码
Enter it again:
4. 进入到 pure-ftpd 安装目录, 链接认证方式
root@localhost:~# cd /etc/pure-ftpd/auth
root@localhost:/etc/pure-ftpd/auth# ln -s ../conf/PureDB 60db
root@localhost:/etc/pure-ftpd/auth# ln -s /etc/pure-ftpd/conf/PureDB 60puredb

链接完成之后所有的文件

root@localhost:/etc/pure-ftpd/auth# ls -l
总用量 0
lrwxrwxrwx 1 root root 14  5月 20 09:28 60db -> ../conf/PureDB
lrwxrwxrwx 1 root root 26  5月 20 09:29 60puredb -> /etc/pure-ftpd/conf/PureDB
lrwxrwxrwx 1 root root 26 10月  9  2012 65unix -> ../conf/UnixAuthentication
lrwxrwxrwx 1 root root 25 10月  9  2012 70pam -> ../conf/PAMAuthentication
5. 重启 pure-ftpd 自行测试
root@localhost:~#chown ftpu.ftpg -R /www
root@localhost:~# /etc/init.d/pure-ftpd restart
更改密码
root@localhost:~# cd /etc/pure-ftpd
root@localhost:~# pure-pw passwd test1 -f pureftpd.passwd -m
root@localhost:~# pure-pw userdel test1 -f pureftpd.passwd -m        #删除用户

centos 配置

1. 安装 yum 源
[root@iZ2ze97fdsfo ~]# yum -y install epel-release
[root@iZ2ze97fdsfo ~]# yum clean all
2.yum 安装
[root@iZ2ze97fdsfo ~]# yum -y install pure-ftpd
3. 编辑配置文件
[root@iZ2ze97fdsfo ~]# vim /etc/pure-ftpd/pure-ftpd.conf
PureDB /etc/pure-ftpd/pureftpd.pdb
#去掉这行注释,指定路径,PureDB用户数据库文件
VerboseLog yes
#开启日志  /var/log/pureftpd.log
NoAnonymous yes
#拒绝匿名用户登录
PassivePortRange 48000 50000
#使用被动模式,限制端口。
4. 添加用户
[root@iZ2ze97fdsfo ~]# groupadd ftpgroup
[root@iZ2ze97fdsfo ~]# useradd -g ftpgroup -s /sbin/nologin -d /dev/null ftpuser
创建虚拟账户
[root@iZ2ze97fdsfo ~]# pure-pw useradd test -d /data/ftp/ -u ftpuser -m

配置目录权限

[root@iZ2ze97fdsfo ~]# mkdir /data/ftp -p
[root@iZ2ze97fdsfo ~]# chown ftpuser.ftpgroup /data/ftp/ -R
[root@iZ2ze97fdsfo ~]# /ect/init.d/pure-fptd start

可能会出现的问题

可能你虚拟用户用使用的不是 ftpu,而是其他的,譬如现在我用的 www-data,添加完用户之后使用连接软件连接 FTP 会出现一个问题,如图所示

 

 

这个问题也是最近才出现的,说一下解决办法。就拿我现在的情况来举例子,我现在 pure-ftpd 的用户是 www-data,UID 为 33

 

但是在 pure-ftpd 的配置文件里默认是 1000,只要将 1000 改成自己使用用户的 UID 重启服务即可,配置文件路径。

root@iZbp1fcqc8bu4iu65ow0bqZ:~# cat /etc/pure-ftpd/conf/MinUID 
1000
root@iZbp1fcqc8bu4iu65ow0bqZ:~# echo "33" > /etc/pure-ftpd/conf/MinUID 
root@iZbp1fcqc8bu4iu65ow0bqZ:~# /etc/init.d/pure-ftpd restart

如果你开启了 iptables 防火墙,光开 21 端口是不够的,被动端口也要开,比如我的是从 48000 到 50000,你不可能一个一个的开,涉及到了 iptables 批量开放端口,操作如下。

[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# iptables -I INPUT -p tcp --dport 48000:50000 -j ACCEPT
[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# /etc/init.d/iptables save > /etc/sysconfig/iptables
[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# /etc/init.d/iptables restart

直接编辑配置文件也可以,加入这条,然后重启即可。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 48000:50000 -j ACCEPT

发表评论