pure-ftpd服务器搭建

这不是大神随笔,只是记忆力不好的码农笔记

ftp

阿里云Ubuntu16.04
首先安装之前最好用netstat -ntl来查看ftp默认的21端口是不是已经被占用了,同时也可以用ps -ef 指令查看开启了哪些服务,看一下有没有类似sftp或者是vsftp的服务,如果开启,用kill all sftp指令把这个服务kill掉

参考

https://wenku.baidu.com/view/944bf0e58e9951e79b8927c9.html
https://blog.csdn.net/u013182675/article/details/49666945

ftp安装

进入/usr/local/src目录

  1. 下载安装包 ,寻找合适链接下载
    pure-ftpd 官网http://www.pureftpd.org/project/pure-ftpd
    wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/obsolete/pure-ftpd-1.0.43.tar.gz

  2. 解压命令
    tar -xvzf pure-ftpd-1.0.43.tar.gz
    解压后cd到 pure-ftpd-1.0.43

  3. 编译
    ./configure /
    –prefix=/usr/local/pureftpd / //pureftpd安装目录
    –with-everything / //安装几乎所有的功能,包括altlog、cookies、throttling、ratios、ftpwho、upload script、virtual users(puredb)、quotas、virtual hosts、directory aliases、external authentication、Bonjour、privilege separation本次安装只使用这个选项
    –with-cookie / //当用户登录时显示指定的横幅
    –with-diraliases / //支持目录别名,用快捷方式代cd命令
    –with-extauth / //编译支持扩展验证的模块,大多数用户不使用这个选项
    –with-ftpwho / //支持pure-ftpwho命令,启用这个功能需要更多的额外内存
    –with-language=english / //修改服务器语言,默认是英文,如果你要做修改,请翻译‘src/messages_en.h’文件
    –with-ldap / //LADP目录支持,需要安装openldap
    –with-minimal / //FTP最小安装,最基本的功能
    –with-mysql / //MySQL支持,如果MySQL安装在自定义目录上,你需要使用命令—with-mysql=/usr/local/mysq这类
    –with-nonroot / //不需要root用户就可以启动服务

  4. 安装
    make
    make install

  5. 新建安装目录,配置文件目录
    mkdir /usr/local/pureftpd/etc

  6. 配置文件,把配置文件和主要执行文件拷到对应的文件夹下面
    cd /usr/local/src/pure-ftpd-1.0.43 //切换到源码目录
    cd configuration-files //切换到这个目录
    chmod 755 pure-config.pl //让用户有完全权限(因为默认没有执行权限)
    cp pure-config-pl /usr/local/pureftpd/bin //把执行文件复制到bin目录下
    cp pure-ftpd.conf /usr/local/pureftpd/etc //复制ftp配置文件到etc中
    cd … //切换到/pure-ftpd-1.0.43目录中
    cp pureftpd-ldap.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中
    cp pureftpd-mysql.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中
    cp pureftpd-pgsql.conf /usr/local/pureftpd/etc //相关配置文件复制到etc中

  7. 配置环境变量,定制一下系统的环境变量
    cd /usr/local/bin/
    ln -s /usr/local/pureftpd/bin/* .
    ln -s /usr/local/pureftpd/sbin/* /usr/local/sbin/

  8. 启动pureftpd服务器,一般找到pure-config.pl文件,再使用配置文件,此处就在/usr/local/bin里面
    pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
    屏幕上一般显示如下信息:
    Running: /usr/local/pureftpd/sbin/pure-ftpd -A -b -B -C20 -d -e -fnone -H -I15 -L2000:8 -M -m4 - p45000:50000 -q1:10 -s -t200 -U133:022 -u100 -r -Oclf:/var/log/pureftpd.log -k99 -Z
    此时可以用在命令行窗口下telnet ip地址 21的方式探测一下这个端口是不是通的

  9. 创建用户,pureftp一般需要不用默认的root用户进行操作,一般会另外创建用户名和组,用虚拟用户进行登录
    创建组:groupadd ftpgroup
    创建用户:useradd -g ftpgroup -d /dev/null -s /etc ftpuser
    创建完成以后可以用cat /etc/passwd和cat /etc/group来查看组和用户是否已经创建好了

  10. 添加ftp虚拟用户,虚拟用户映射到本地ftpuser用户
    pure-pw useradd test -u ftpuser -d /home/ftpuser/test

  11. 查看用户信息
    pure-pw show test

  12. 生成用户数据库,如果使用数据库存储用户信息,每次新增或修改用户信息都需要执行此操作
    pure-pw mkdb

  13. 修改配置文件,因为很多配置文件数据库的默认安装位置并不是实际位置,这样就会造成每次登陆的时候都找不到密码,ftp一直显示passwd required
    vi /usr/local/pureftpd/etc/pure-ftpd.conf
    ChrootEveryone yes # 启用chroot
    BrokenClientsCompatibility yes # 兼容不同客户端
    Daemonize yes # 后台运行
    MaxClientsPerIP 20 # 每个ip最大连接数
    VerboseLog yes # 记录日志
    DisplayDotFiles no # 显示隐藏文件
    AnonymousOnly no # 只允许匿名用户访问
    NoAnonymous yes # 不允许匿名用户连接
    SyslogFacility none # 不将日志在syslog日志中显示
    DontResolve yes # 不进行客户端DNS解析
    MaxIdleTime 15 # 最大空闲时间
    LimitRecursion 2000 8 # 浏览限制,文件2000,目录8层
    AnonymousCanCreateDirs no # 匿名用户可以创建目录
    MaxLoad 4 # 超出负载后禁止下载
    PassivePortRange 45000 50000 # 被动模式端口范围
    匿名用户设置
    UserRatio 1 10 # 所有用户上传/下载比率
    AntiWarez yes # 禁止下载匿名用户上传但未经验证的文件
    AnonymousBandwidth 200 # 匿名用户带宽限制(KB)
    UserBandwidth 8 # 所有用户最大带宽(KB)
    Umask 133:022 # 创建文件/目录默认掩码
    MinUID 100 # 最小UID限制
    AllowUserFXP no # 仅运行用户进行FXP传输
    AllowAnonymousFXP no # 对匿名用户和非匿名用户允许进行匿名 FXP 传输
    ProhibitDotFilesWrite no # 不能删除/写入隐藏文件
    ProhibitDotFilesRead no # 禁止读取隐藏文件
    AutoRename yes # 有同名文件时自动重新命名
    AnonymousCantUpload yes # 不允许匿名用户上传文件
    AltLog clf:/var/log/pureftpd.log # clf格式日志文件位置
    PureDB /usr/local/pureftpd/etc/pureftpd.pdb # 用户数据库文件
    MaxDiskUsage 99 # 当磁盘使用量打到99%时禁止上传
    CreateHomeDir yes # 如果虚拟用户的目录不存在则自动创建
    CustomerProof yes # 防止命令误操作
    PureDB /usr/local/pureftpd/etc/pureftpd.pdb这个地方一定要记得修改,不然会一直登不上去,修改完成以后可以再次执行

  14. 重新生成数据库文件
    pure-pw mkdb

  15. 先把之前的pureftp服务kill掉
    ps -aux | grep pure-ftpd
    kill -9 进程号

  16. 重启
    /usr/local/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

  17. 其他,此时一般已经可以成功登录,但是有可能还是无法上传到服务器上去,此时一般是权限问题
    登录到ftp的家目录下 cd /home/ftpuser/test
    修改test文件夹下的文件权限 chown ftpuser:ftpgroup wenjian1
    再尝试重新连接以后上传

安装遇见的问题

1. 421 Unable to read the indexed puredb file (or old format detected) - Try pure-pw mkdb
Login failed.

主要是由于没有生成pureftpd.pdb 和pureftpd.passwd
在/usr/local/pure-ftpd/etc 目录下新建这两个文件
touch pureftpd.pdb
touch pureftpd.passwd
然后再执行以下命令
systemctl stop pure-ftpd; systemctl start pure-ftpd
或者
pure-pw mkdb -F /usr/local/pure-ftpd/etc/pureftpd.pdb
此时再登录就会报错530
参考文章
https://superuser.com/questions/1080220/pure-pw-error-unable-to-open-the-passwd-file-no-such-file-or-directory
https://blog.csdn.net/lpy123456/article/details/7623330
或者在编译的时候加参数–with-puredb(没试过)
2. 530 Login authentication failed
421和530问题都是由于更改了系统默认的配置目录,系统默认是将pureftpd.pdb,pureftpd.passwd,pure-ftpd.conf安装在系统/etc文件夹下,因此更改会导致,开始创建的用户数据存在系统/etc中,而验证的时候又使用更改的配置文件,导致使用账户登录的时候出现530或421错误,所以就使用系统默认的配置

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值