文件服务器之二:FTP服务器(pureftp)

FTP(File Transfer Protocol),文件传输协议,主要用来进行文件传输(尤其是用来传输大型文件非常方便),用于Internet上的控制文件的双向传输。用户可以通过该服务把自己的PC机与世界各地所有运行FTP协议的服务器相连,以此来访问服务器上的大量程序和信息。

FTP的主要作用,就是让用户连接上一个远程计算机(该远程计算机上运行着FTP服务),查看该计算机上有哪些文件,或者将需要的文件从远程计算机上拷贝到本地,或将本地的文件传输到远程计算机上去。但是在传输的过程中具有一定的危险性,因为数据在Internet上面是完全没有保护的明文传输方式。

在 CentOS 或者 RedHat Linux 上有自带的 ftp 软件叫做 vsftp,但在这里先介绍另外一款提供 ftp 服务的软件(pure-ftpd)。这个软件比 vsftp 配置起来更加灵活。

下面我们就来看看pureftp的部署和优化过程,这里我们采用源码包编译安装的方法:

1、下载源码包:Pure-ftpd的官网是:http://www.pureftpd.org/project/pure-ftpd

我们可以到该网站去下载我们需要的版本。

cd /usr/local/src

wget wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2

2、安装步骤:

tar xjvf pure-ftpd-1.0.42.tar.bz2

cd pure-ftpd-1.0.42

./configure \

--prefix=/usr/local/pureftpd \

--without-inetd \

--with-altlog \

--with-puredb \

--with-throttling \

--with-peruserlimits \

--with-tls

注意:我们在这里可能会遇到错误,在编译之后系统会提示:configure: error: OpenSSL headers not found.

解决方法是:yum install -y openssl openssl-devel,如果找不到这两个包,则需要安装yum的扩展源:yum install -y epel-release

make && make install

3、配置 pure-ftpd

cd configuration-file

mkdir -p /usr/local/pureftpd/etc/

cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf

cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl

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

在启动 pure-ftpd 之前需要先修改配置文件,配置文件为/usr/local/pureftpd/etc/pure-ftpd.conf, 你可以打开看一下,里面内容很多,下面是笔者提供的配置文件内容,如果你觉得直接更改嫌麻烦,直接把自带配置删除,然后把下面的配置粘贴即可

ChrootEveryone yes

BrokenClientsCompatibility no

MaxClientsNumber 50

Daemonize yes

MaxClientsPerIP 8

VerboseLog no

DisplayDotFiles yes

AnonymousOnly no

NoAnonymous no

SyslogFacility ftp

DontResolve yes

MaxIdleTime 15

PureDB /usr/local/pureftpd/etc/pureftpd.pdb

LimitRecursion 3136 8

AnonymousCanCreateDirs no

MaxLoad 4

AntiWarez yes

Umask 133:022

MinUID 100

AllowUserFXP no

AllowAnonymousFXP no

ProhibitDotFilesWrite no

ProhibitDotFilesRead no

AutoRename no

AnonymousCantUpload no

PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid

MaxDiskUsage 99

CustomerProof yes

4、启动 pure-ftpd

cd /usr/local/pureftpd/

./sbin/pure-config.pl ./etc/pure-ftpd.conf

如果是启动成功,会显示一行长长的以 Running 开头的信息,否则那就是错误信息。重启可能会比较麻烦一些,毕竟我们没有启动脚本。重启的话,可以使用下面的命令来实现。

killall puref-ftpd

cd /usr/local/pureftpd/; ./sbin/pure-config.pl ./etc/pure-ftpd.conf

5、建立账号

Pure-ftpd 使用的账号并非 Linux 系统账号,而是虚拟账号。因为,这样做比较安全。

mkdir /data/www/

useradd ftp

chown -R ftp:ftp /data/www/

/usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uftp -d /data/www/

Password:

Enter it again:

其中, -u 将虚拟用户 ftp_user1 与系统用户 www 关联在一起,也就是说使用 ftp_user1
账号登陆 ftp 后,会以 www 的身份来读取文件或下载文件。 -d 后边的目录为 ftp_user1 账户
的家目录,这样可以使 ftp_user1 只能访问其家目录/data/www/。到这里还未完成,还有最关
键的一步,就是创建用户信息数据库文件:

/usr/local/pureftpd/bin/pure-pw mkdb

pure-pw 还可以列出当前的 ftp 账号,当然也可以删除某个账号, 我们再创建一个账号:

/usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp

/usr/local/pureftpd/bin/pure-pw mkdb

注意:每次创建了一个帐号之后,就要执行这条命令,生成一个数据库文件,不然会报错

列出当前账号:

/usr/local/pureftpd/bin/pure-pw list

删除账号的命令为:

/usr/local/pureftpd/bin/pure-pw userdel ftp_user2

6、测试

在远程机器上下载lftp:yum install -y lftp

使用远程机器连接ftp服务:lftp [email protected]

时间: 2024-08-06 05:19:59

文件服务器之二:FTP服务器(pureftp)的相关文章

文件服务器之三 FTP服务器(鸟哥服务器篇)

学习链接: vsftpd官网: http://vsftpd.beasts.org/ Filezilla 官方网站: http://filezilla.sourceforge.net/ https://filezilla-project.org/ 51cto专题 http://os.51cto.com/art/201008/222036.htm 阿里云栖文档 https://yq.aliyun.com/ziliao/topic_46152/ 包地址: https://pkgs.org/downlo

nginx+ftp服务器搭建简易文件服务器

在做一些小项目和学习项目过程中,学习了通过 nginx 和 FTP 搭建小型文件服务器,记录下: 1.环境 电脑:acer 操作系统:windows 10 ftp服务器 2.下载 nginx, 通过双击图标 nginx.exe 或则启动 cmd 命令行启动 3.运行后,浏览器访问 localhost:80,进入主页,完成 4.无法访问时,可能是 80 端口被占用,可以 kill 掉这个任务,但可能是 IIS 服务每次强制更新后就会监听 80 端口 5.这时候,找到 ‘打开或关闭窗口功能’ ,将勾

Linux基础篇之FTP服务器搭建(二)

上一篇文章说到了搭建FTP匿名用户的访问,接下来讲解一下本地用户的登录. 一.首先先建立一个用户,这里举例:xiaoming,并为其设置密码. 二.修改配置文件. 文件:ftpusers 文件:user_list 文件:vsftpd.conf 三.重新启动服务. 四.测试. 新建目录测试: 这样,本地用户就可以登录FTP服务器. 原文地址:https://www.cnblogs.com/641055499-mozai/p/11577301.html

用PHP实现一个高效安全的ftp服务器(二)

接前文. 1.实现用户类CUser. 用户的存储采用文本形式,将用户数组进行json编码. 用户文件格式: * array( * 'user1' => array( * 'pass'=>'', * 'group'=>'', * 'home'=>'/home/ftp/', //ftp主目录 * 'active'=>true, * 'expired=>'2015-12-12', * 'description'=>'', * 'email' => '', * 'f

VC FTP服务器程序分析(二)

上面讲到了CClientThread类,打开这个类的实现,这个类实现了4个函数.依次分析: 1.InitInstance   其说明如下:InitInstance必须被重载以初始化每个用户界面线程的新实例.统称,你重载InitInstance函数来执行当线程首次被创建时必须完成的任务.此成员函数仅在用户界面线程中使用. 1 BOOL CClientThread::InitInstance() 2 { 3 // Attach the socket handle to a CSocket objec

第十二章 FTP 服务器的安装与配置

1.简述FTP 的连接模式. 答:FTP 的连接模式有PORT 和PASV 两种,其中PORT 模式是主动模式,PASV 模式,这里所说的主动和被动都是相当于服务器而言的.如果是主动模式,数据端口为20,如果是被动模式,则由服务端和客户端协商而定. 2.简述FTP 的传输模式. 答:FTP 的传输模式有两种:ASCII 传输模式和二进制传输模式. 3.如何在WIndows 系统中配置FTP 服务? 答:课本P209到P210. 4.简述Linux 中,FTP 服务器配置文件vsftpd.conf

网络操作系统 第十二章 FTP服务器的安装与配置

习题 1.简述FTP的连接模式. FTP的连接模式有PORT和PASV两种,其中PORT模式是主动模式,PASV是被动模式, 这里所说的主动和被动都是相对于服务器而言的.如果是主动模式,数据端口为20,如 果是被动模式,则由服务器端和客户端协商而定. 2.简述FTP的传输模式. FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种 模式:文本模式和二进制模式.文本传输器使用ASCII字符,并由回车键和换行符分开, 而二进制不用转换或格式化就可传字符,二进制模式比文本

Pure-FTPd实现基于虚拟帐号访问的FTP服务器

Pure-FTPd是一个免费的(BSD),安全的,符合标准的FTP服务器.它可以基于web页面进行管理,管理起来非常方便和高效:同时,它支持虚拟用户进行访问,大大提高了它的安全性.它提供了共同的需求,简单的答案,再加上独特的有用的功能,为个人用户和主机提供商. Pure-FTPd可以支持多种操作系统(Linux, OpenBSD, NetBSD, DragonflyBSD FreeBSD, Solaris, Tru64,Darwin, Irix,HPUX,AIXand iPhone.),支持多种

Linux下使用curlftpfs挂载远程FTP服务器

步骤: 1,前提你得有一个FTP的服务器,账户,密码 2,安装curlftpfs 工具 3,挂载 4,乱码问题解决 5,遍历FTP 6,在里面找你想要的信息 废话不多说,开始搞! 1,发现FTP文件服务器 无意在网上看到一个ftp,大概看了一下,里面的信息有点意思 FTP地址:ftp://ftp1.linuxidc.com 用户名:ftp1.linuxidc.com 密码:www.linuxidc.com 2,安装工具,一键完成,没什么要说的 apt-get -y install curlftp

FTP服务器的配置与实现

一.准备工作 实验目的:完成FTP服务器的配置,并能熟练操作. 环境搭建: 虚拟机  vmware workstation windows2003镜像文件 Serv-U 主机 二.步骤 1,在虚拟机中下载好sever-u软件,并安装 提示:安装过程一律默认点下一步即可,在此就不赘述了. 2,在管理控制台主页设置:建立域名->选择可用的IP地址 (1)定义新域,点击“是”. 提示:域名之前最好不要加www.的字符. 此处默认即可,点击下一步. (2)选择本虚拟机的IP地址 点击完成.至此我们已成功