千家信息网

pureftp,vsftp的部署和优化

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,什么是ftpFTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 "文传协议" 用于Internet上的控制文件的双向传输。FTP的主要作用,就是让用户连接上
千家信息网最后更新 2025年01月20日pureftp,vsftp的部署和优化

什么是ftp
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 "文传协议" 用于Internet上的控制文件的双向传输。
FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
在CentOS或者RedHat Linux上有自带的ftp软件叫做vsftpd

安装pure-ftpd


1. 下载软件

pure-ftpd 官网是 http://www.pureftpd.org/project/pure-ftpd 当前最新版本为1.0.36, 但阿铭不建议使用最新版本,最新版有可能有一些小bug.

cd /usr/local/src/

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

2. 安装pure-ftpd

tar jxf pure-ftpd-1.0.37.tar.bz2

cd pure-ftpd-1.0.37

./configure \

--prefix=/usr/local/pureftpd \

--without-inetd \

--with-altlog \

--with-puredb \

--with-throttling \

--with-peruserlimits \

--with-tls

make && make install

配置pure-ftpd

1. 修改配置文件

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之前需要先修改配置文件,配置文件为vim /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

2. 启动pure-ftpd

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

如果是启动成功,会显示一行长长的以Running开头的信息,否则那就是错误信息,如果你解决不了,请到阿铭论坛(http://www.aminglinux.com/bbs/forum-40-1.html)获取帮助吧。

3. 建立账号

[root@localhost ~]# mkdir -p /data/www/

[root@localhost ~]# useradd www

[root@localhost ~]# chown -R www:www /data/www/

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user1 -uwww -d /data/www/

Password:

Enter it again:

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

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb

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

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw useradd ftp_user2 -uwww -d /tmp

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw mkdb

列出当前账号:

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw list

删除账号的命令为:

[root@localhost ~]# /usr/local/pureftpd/bin/pure-pw userdel ftp_user2

测试pure-ftpd

测试需要使用的工具叫做lftp, 先安装一下它:

[root@localhost ~]# yum install -y lftp

测试:

[root@localhost ~]# touch /data/www/123.txt

[root@localhost ~]# lftp ftp_user1@127.0.0.1

口令:

lftp ftp_user1@127.0.0.1:~> ls

drwxr-xr-x 2 514 www 4096 Jun 12 11:14 .

drwxr-xr-x 2 514 www 4096 Jun 12 11:14 ..

-rw-r--r-- 1 514 www 0 Jun 12 11:14 123.txt

登陆后,使用 ls 命令可以列出当前目录都有什么文件。

在测试时,成功登陆后,输入命令后,提示登陆出错。

解决办法:

登陆密码太简单,重新修改。


vsftp配置ftp服务

1). yum -y install vsftpd db4-utils
2). 建立系统账号
useradd virftp -s /sbin/nologin
3). 建立虚拟账户
vim /etc/vsftpd/vsftpd_login
test
anxxf0814
4). 更改权限
chmod 600 /etc/vsftpd/vsftpd_login
5). 生成库文件密码
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
6). mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf

7). 创建和用户对应 的配置文件

vim test

local_root=/home/virftp/test

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

8). mkdir /home/virftp/test
chown -R virftp:virftp /home/virftp

9). vim /etc/pam.d/vsftpd (添加一下两行)

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

注:
64位的系统需要写成/lib64/

10). 修改全局配置文件
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO

添加:
chroot_local_user=YES (可能已经存在)
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

11). 启动vsftpd 服务
/etc/init.d/vsftpd start
若没有启动成功, killall -9 pure-ftpd


测试:

客户端 yum install -y lftp

lftp test@服务端ip


0