MENU

配置 pure-ftpd debian/centos

2016 年 07 月 26 日 • 应用服务器

现在用Linux搞个ftp,ftp目录时网站目录,本想用vsftpd的,但是我现在用的是Debian系统,他的vsftpd和CentOS差的好多,搞得我都不会玩了,然后就不想用vsftpd了,打算找一个第三方的ftp软件来用,嗯,总算是找到了,并且配置很简单,装完之后几条命令就完事了,现在并没有涉及到权限这一块的东西,具体操作如下。

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
最后编辑于: 2019 年 10 月 24 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码