配置FTP服务(二):vsftpd部署和优化

简介:

前面一篇文章介绍了pureftp部署和优化:http://msiyuetian.blog.51cto.com/8637744/1694166

下面我们接着来做CentOS自带的FTP软件vsftpd的部署和优化实验。


1、安装启动vsftpd

[root@tpp ~]# yum install -y vsftpd
[root@tpp ~]# /etc/init.d/vsftpd start

注:我们会发现启动失败,因为之前我们安装了pure-ftpd,被其占用了21端口,我们只要杀死所有的pure-ftpd进程就行,执行如下命令:

[root@tpp ~]# killall pure-ftpd


2、建立账号

vsftpd默认可以支持使用系统账号登入的,客户端不止可以登入家目录,也可以登入其他的目录,这样是什么不安全,故我们也要和pure-ftpd一样建立关联系统用户的虚拟账户。

首先建立与虚拟账号相关联的系统账号:virftp

[root@tpp ~]# useradd virftp -s /sbin/nologin

接着建立存放虚拟账号密码的文件:

[root@tpp ~]# vim /etc/vsftpd/vsftpd_login      //写入如下内容
test1                                           //用户名(奇数行)
123456                                          //密码(偶数行)

修改权限,只限于root用户:

[root@tpp ~]# chmod 600 /etc/vsftpd/vsftpd_login

vsftpd使用的密码不是明文,需要生成对应的库文件:

[root@tpp ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

最后建立与虚拟账号相关的目录

[root@tpp ~]# mkdir /etc/vsftpd/vsftpd_user_conf



3、创建与用户对应的配置文件

用户的配置文件是单独存在,每个用户都建立与账号同名的配置文件。

[root@tpp ~]# cd /etc/vsftpd/vsftpd_user_conf/
[root@tpp vsftpd_user_conf]# vim test1          //写入以下内容
local_root=/home/virftp/test1
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

注意:local_root 为该账号的家目录,anonymous_enable 用来限制是否允许匿名账号登陆,若为 NO 表示不允许匿名账号登陆,write_enable=YES 表示可写,local_umask 指定 umask 值,anon_upload_enable 是否允许匿名账号上传文件,anon_mkdir_write_enable 是否允许匿名账号可写。


接着创建test1用户的家目录/home/virftp/test1 

[root@tpp vsftpd_user_conf]# mkdir /home/virftp/test1
[root@tpp vsftpd_user_conf]# chown -R virftp:virftp /home/virftp
[root@tpp vsftpd_user_conf]# 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

如下图:

wKiom1X0L9HR0D3lAAI-QQv_s0w975.jpg

注意:我的是32位系统,所以库文件路径为/lib/security/pam_userdb.so,若你的系统为64,那你的库文件是在/lib64/security/pam_userdb.so。 



4、修改全局配置文件   

[root@tpp vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf    //修改下面几项
anonymous_enable=YES 改为 anonymous_enable=NO
#anon_upload_enable=YES 改为 anon_upload_enable=NO
#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
#chroot_local_user=YES 改为 chroot_local_user=YES

在最后面增加:

guest_enable=YES 
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

 

最后启动 vsftpd 服务 

[root@tpp vsftpd_user_conf]# /etc/init.d/vsftpd start
为 vsftpd 启动 vsftpd:                 [确定]

注意:如果服务启动不了,注意每行后面不要有空格;还有就是很有可能21端口被其他服务占用。

[root@tpp vsftpd_user_conf]# netstat -lnp |grep ":21"

不管是pure-ftpd还是vsftpd占用着,都一律杀死,释放出21端口,然后再启动vsftpd服务。



5、测试

测试过程和前面pure-ftpd 的一样。另外,如果用户登录不了,请查看一下/var/log/secure 日志。 

(1)Windows下测试:在浏览器上输入:ftp://192.168.0.109,验证用户密码后登入:

wKioL1X2s0jQsXrwAACsPmdtuWw534.jpg


(2)Linux客户端下测试

wKiom1X2sUXCELZXAADjZv10IDM747.jpg



6、日志:

默认情况下,vsftp 不单独记录日志,也就是说不会输出到一个单独的文件中存储,而是统一存放在 /var/log/messages 文件中,可以使用 cat /var/log/messages |grep vsftp 命令查看。不过只反映了少量的信息,下面我们来设置将vsftpd服务器的日志单独输出到某个文件中。

(1)安装xferstats

[root@tpp ~]# yum install -y xferstats


(2)编辑配置文件

[root@tpp ~]# vim /etc/vsftpd/vsftpd.conf
xferlog_enable=YES  
xferlog_file=/var/log/xferlog
dual_log_enable=YES

说明

1)启用xferlog_enable=YES,表示将客户机登入服务器后上传或下载的文件具体信息记录下来。

2)启用xferlog_file=/var/log/xferlog,表示将上传下载写到指定文件,也就是/var/log/xferlog 文件。

30启用dual_log_enable=YES,表示启用双份日志,一份日志有xferlog记录,同时vsftpd.log也记录另一份日志,这两份日志并非互为备份,其内容不同,各有侧重。


(3)查看日志

1)vsftpd.log记录登入信息

[root@tpp ~]#cat /var/log/vsftpd.log
Thu Dec 31 15:51:51 2015 [pid 4433] CONNECT: Client "192.168.71.68"
Thu Dec 31 15:51:51 2015 [pid 4432] [test2] OK LOGIN: Client "192.168.71.68"


2)xferlog记录上传下载信息

[root@tpp ~]#cat /var/log/xferlog
Thu Dec 31 15:09:58 2015 1 192.168.71.68 0 /test1/1.txt b _ o g test2 ftp 0 * c

说明:

Thu Dec 31 15:09:58 2015 :访问时间

1 :传输文件所用时间

192.168.71.68 :远程主机

0 :文件大小,单位byte

/test1/1.txt :文件路径

b :传输类型(a:表示ASCII传输,用于文本类型;b:表示二进制传输,用于程序、多媒体文件)

_ :特殊处理标志(_:不做处理;C:压缩格式;U:非压缩格式;T:tar文件格式)

o :文件传输方向(o:从FTP服务器向客户端传输;i:从客户端向FTP服务器传输)

g :访问模式(a:匿名用户;g:来宾用户;r:真实用户)

test2 :用户名

ftp :FTP服务名称,通常为ftp

0 :认证方式,一般用0表示 

* :认证用户ID,在无需认证时用*表示;如果vsftpd使用了PAM配置,这里会用虚拟用户名显示

c:传输状态(c:表示完成;i:表示传输异常)


7、后记:

后续如果还要创建新的账户的话,只需执行下面六步就行(以创建test2账号为例):

(1)先添加账户信息

[root@tpp ~]# vim /etc/vsftpd/vsftpd_login      //写入如下标红内容
test1
123456
test2
abcdef

(2)再重新生成库文件

[root@tpp ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

(3)接着新建用户单独的配置文件

[root@tpp ~]# cd /etc/vsftpd/vsftpd_user_conf/
[root@tpp vsftpd_user_conf]# vim test2          //写入以下内容
local_root=/home/virftp/test2
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

(4)然后新建一个test2的家目录

[root@tpp vsftpd_user_conf]# mkdir /home/virftp/test2

(5)给予权限

[root@tpp vsftpd_user_conf]# chown -R virftp:virftp /home/virftp

(6)重启vsftpd服务

[root@tpp virftp]# /etc/init.d/vsftpd restart
关闭 vsftpd:                            [确定]
为 vsftpd 启动 vsftpd:                  [确定]






      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1694233,如需转载请自行联系原作者



相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux vsFTPd服务详解——文件加密传输配置
Linux vsFTPd服务详解——文件加密传输配置
143 2
|
1月前
|
Linux 数据安全/隐私保护 Windows
Linux vsFTPd服务详解——本地用户登录实战
Linux vsFTPd服务详解——本地用户登录实战
32 2
|
2月前
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
123 0
|
3月前
|
安全 算法 网络协议
【Linux】文件服务FTP(File Transfer Protocol)
【Linux】文件服务FTP(File Transfer Protocol)
52 0
|
9天前
|
网络协议 安全 Linux
配置vsftpd服务
FTP是TCP/IP协议族中的应用层协议,用于可靠地传输文件,基于C/S架构,使用20(数据)和21(命令)端口。有两种传输模式:主动模式,客户端告知服务器数据端口,服务器发起连接;被动模式,服务器响应客户端的PASV命令,客户端建立数据连接。安装Linux的vsftpd服务涉及`yum install vsftpd`,创建用户,重启服务并设置开机启动。配置文件`vsftpd.conf`可调整访问权限和行为。通过FTP命令如`help`,`get`,`put`进行文件操作。匿名用户模式可允许无密码访问,需修改配置文件开启。
10 0
|
18天前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu篇-配置FTP服务,本机和docker安装
通过以上步骤,你可以在Ubuntu上配置FTP服务,无论是本机安装还是Docker内安装,都可以提供FTP文件传输服务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
20 1
|
1月前
|
运维 网络协议 安全
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——vsFTPd基础知识
28 4
|
2月前
|
弹性计算 Ubuntu
Ubuntu 20.04安装FTP服务
以阿里云ECS为服务器,搭建FTP服务并在本机使用FileZilla连接服务。
322 2
|
4月前
|
Docker 容器
docker 安装ftp服务
docker 安装ftp服务
|
4月前
|
安全 Linux 网络安全
Linux加强篇011-使用Vsftpd服务传输文件
山重水复疑无路,柳暗花明又一村
257 1
Linux加强篇011-使用Vsftpd服务传输文件