Docker使用pure-ftp的方法及配置-pdb文件

Docker使用pure-ftp的方法及配置-pdb文件

1、用docker下载pure-ftp

docker pull stilliard/pure-ftpd:hardened

2、下载完后直接运行

docker run -dt --name ftpd_server -p 21:21 -p 30000-30209:30000-30209 -e "PUBLICHOST=localhost" --privileged=true -v /home/ftpusers/robin:/home/ftpusers/www stilliard/pure-ftpd:hardened bash

说明:

使用绑定IP为192.168.1.66,如果是公开FTP的话,可以不写IP。这里只是本机测试

不使用官方教程的端口号30000-30009,因为30000-30009端口只能满足5个用户同时FTP登陆。计算方式为“(最大端口号-最小端口号) / 2”。所以我这里修改为可以满足100个用户同时连接登陆

做了个目录映射,把本机的/home/ftpusers/robin目录映射到pure-ftp的/home/ftpusers/www下

3、登陆pure-ftp容器

docker exec -it ftpd_server /bin/bash

4、在容器内新建用户(用户名为:www)

pure-pw useradd www -u ftpuser -d /home/ftpusers/www

说明:

运行这个命令后会让输入两次密码,即FTP用户(www)的登陆密码

5、保存

pure-pw mkdb

这个命令不可少,不然刚刚新建的用户就不生效了

6、运行FTP

/usr/sbin/pure-ftpd -c 100 -C 100 -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P $PUBLICHOST -p 30000:30209 &

说明:

-c 100为:允许同时连接的客户端数列100

-C 100为:同一IP最大的连接数100

这两个数值与端口号30000:30209对应上

网上关于pureftp的安装教程很多,但是试了以后发现很多其实都不完善,很容易出错,自己安装摸索以后总结如下:

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

1.下载pureftp,我下载的是pure-ftpd-1.0.30

指令:wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.bz2

2.解压:tar -xvjf pure-ftpd-1.0.30.tar.bz2

进入到解压后目录:cd pure-ftpd-1.0.30

3.编译方式,推荐使用全部安装:./configure –prefix=/usr/local/pure-ftpd/ –with-

language=simplified-chinese –with-everything

4.安装:make && make check && make install

5.建立相应的安装目录:mkdir /usr/local/pure-ftpd/etc

6.把配置文件和主要执行文件拷到对应的文件夹下面:

cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/

cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/

chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl

7.定制一下系统的环境变量:

cd /usr/local/bin/

ln -s /usr/local/pure-ftpd/bin/* .

ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/

ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/

8.启动pureftp服务器:

pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf

屏幕上一般显示如下信息:

Running: /usr/local/pure-ftpd/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虚拟用户

ure-pw useradd test -u ftpuser -d /home/ftpusers/test

如果添加完成以后想要删除可以使用pure-pw userdel test这条指令

想要修改密码可以使用pure-pw passwd test这条指令

11.查看用户信息

pure-pw show test

12.生成数据库文件

pure-pw mkdb

13.一定要注意修改配置文件,因为很多配置文件数据库的默认安装位置并不是实际位置,这样就会造成每次登

陆的时候都找不到密码,ftp一直显示passwd required,所以安装好以后一定要修改配置文件,尤其是粉红色的

部位,注意修改

打开配置文件:vi /usr/local/pure-ftpd/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 # 被动模式端口范围

#AnonymousRatio 1 10 # 匿名用户上传/下载比率

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/pure-ftpd/etc/pureftpd.pdb # 用户数据库文件

MaxDiskUsage 99 # 当磁盘使用量打到99禁止上传

CreateHomeDir yes # 如果虚拟用户的目录不存在则自动创建

CustomerProof yes # 防止命令误操作

PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb这个地方一定要记得修改,不然会一直

登不上去,修改完成以后可以再次执行

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

15.先把之前的pureftp服务kill掉 killall pure-ftpd

16.然后重新启动/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf

17.此时一般已经可以成功登录,但是有可能还是无法上传到服务器上去,此时一般是权限问题,

登录到ftp的家目录下 cd /home/ftpusers/test

修改test文件夹下的文件权限 chown ftpuser:ftpgroup wenjian1

再尝试重新连接以后上传

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    酷睿I7 配置

    酷睿I7 配置,配置,玩家国度啦华硕 Rampage II Extreme(3800元)如果米不够,也可以把Extreme改为Gene,不过是小板内存推荐金士顿6G DDR3 2000骇

    鼠标不能拖动文件了

    鼠标不能拖动文件了,鼠标,拖动,本文目录鼠标不能拖动文件了电脑鼠标无法拖动软件图标了,怎么办鼠标不能滚动怎么调整电脑鼠标不能进行任何

    提高3A四核羿龙II游戏配置的性能

    提高3A四核羿龙II游戏配置的性能,,以节能环保为主题的IT产业,目前3A低端平台处理器、主板芯片组、独立开发卡性能突出,特别是在与AMD的处理

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    设置里程碑|设置里程碑的方法有哪些

    设置里程碑|设置里程碑的方法有哪些,,1. 设置里程碑的方法有哪些1、通过挑战风险,突破认知,从而突破自我。只有在某些特殊的时刻,比如想法和

    查看配置:酷睿i3530集展示办公平台

    查看配置:酷睿i3530集展示办公平台,,由于时间和精力的关系,我们不可能对所有的配置进行评论,希望我们能理解,我希望我们的评论能在那些需要帮

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机