FTP服务器搭建-运维

  • 这不是大神随笔,只是记忆力不好的码农笔记
  • ftp
  • 参考
    • ftp安装
    • 安装遇见的问题

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

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错误,所以就使用系统默认的配置

pure-ftpd服务器搭建相关推荐

  1. Linux(centos7.4)上FTP服务器搭建(使用yum)

    Linux(centos7.4)上FTP服务器搭建(使用yum) 安装步骤 1.安装 $ yum -y install vsftpd 2.备份配置 cp /etc/vsftpd/vsftpd.conf ...

  2. 基于Linux的服务器搭建

    摘 要 Linux操作系统搭建服务器,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户.多任务.支持多线程和多CPU的操作系统.伴随着互联网的发展,Linux得到了 ...

  3. Linux——FTP服务器搭建及访问

    FTP是文件传输协议的英文简称,其用于Internet上的控制文件的双向传输,同时,他也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件,互联网上 ...

  4. Gitea——私有git服务器搭建详细教程

    本文将从源代码和docker安装两种方式带大家从0-1通过Gitea搭建一个私有git服务器 Gitea--私有git服务器搭建教程 什么是Gitea 一.源代码安装方式 1. 前置环境要求 2. 下 ...

  5. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  6. 使用Linux服务器搭建个人深度学习环境

    使用Linux服务器搭建个人深度学习环境 环境及所需工具 连接服务器 创建自己的python环境 创建深度学习框架的环境(以tensorflow为例) 测试环境 退出环境 删除环境 WinSCP的使用 ...

  7. windows AD/DNS服务器搭建

    windows AD-DS服务器搭建 1 什么是域 2 域的原理及作用 3 使用域的优势 4 Active Directory(活动目录) 5 安装AD条件 6 安装AD步骤 7 DNS服务器 8 D ...

  8. 企业dns服务器搭建

    企业dns服务器搭建 1关于dns的名词解释 2 dns服务的安装与启用 3 高速缓存dns 4 dns的正向解析 5 dns的反向解析 6 dns的双向解析 7 dns集群及更新 8 动态域名解析 ...

  9. -【Java FTP及FTP服务器搭建】

    -[Java FTP及FTP服务器搭建] 一:本文采用apache项目组的 Apache Commons Net™ library 项目地址:http://commons.apache.org/net ...

  10. iis7 文件服务器搭建,iis7 ftp服务器搭建

    iis7 ftp服务器搭建 内容精选 换一换 安装MySQL本文档以"CentOS 6.5 64bit(40GB)"操作系统为例,对应MySQL版本为5.1.73.CentOS 7 ...

最新文章

  1. 5折交叉验证_交叉验证:评估模型表现
  2. RHEL7中防火墙firewalld的配置
  3. linux 观察应用使用内存的情况,Linux学习笔记:free和top命令查看系统内存使用情况...
  4. ERP系统模块完全解析──工作中心
  5. linux 多域名绑定
  6. 18 ubuntu 远程原生_CNCF公布中国云原生调查报告:49%使用容器技术,Kubernetes 应用率达 72%...
  7. 个性化Unity游戏开发环境两则
  8. .net core 介绍好文章
  9. 无人机拉力测试台研制测试过程中的9个关键技术点
  10. MySQL读写分离、MySQL锁机制
  11. 法国奢侈品牌VILEBREQUIN限时精品店登陆北京老佛爷百货
  12. 神经网络权重是什么意思,bp神经网络怎么看结果
  13. 微信小程序账号注册流程
  14. kotlin实现的简单个人账户管理APP(三) 自定义View仿支付宝的密码输入框/密码相关逻辑
  15. word每行的末尾箭头怎么去掉_word文档后面的箭头怎么去掉
  16. 【Linux】如何将ntfs硬盘挂载到home目录下并具有读写权限
  17. 企业数字化转型--银行数字化转型的战略设计与技术管理
  18. 波士顿动力9.21亿美元被卖,地主家也养不起网红机器狗
  19. android出现应用程序未安装的解决办法
  20. Tcl异常处理命令之try、throw

热门文章

  1. representation learning的理解
  2. Matlab 多层(multi-level)小波分析(dwt,dwt2)
  3. 网络爬虫案例——前程无忧网java岗位
  4. mybatis-动态sql动态bean实例
  5. PS学习之动态表情制作
  6. 运筹优化学习07:Lingo的 @if 函数的使用方法
  7. 【STM32H7教程】第93章 STM32H7的SPI总线应用之驱动ADS1256(8通道24bit ADC, 增益可编程)
  8. 工业互联网+VLC,可见光通信撬动工业4.0!
  9. 防火墙iptables和firewall相关操作
  10. 文通科技OCR识别|电子护照阅读器