博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置FTP服务(二):vsftpd部署和优化
阅读量:7072 次
发布时间:2019-06-28

本文共 4948 字,大约阅读时间需要 16 分钟。

前面一篇文章介绍了pureftp部署和优化:

下面我们接着来做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

如下图:

注意:我的是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,验证用户密码后登入:

(2)Linux客户端下测试



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,如需转载请自行联系原作者

你可能感兴趣的文章
elasticsearch rpm 安装
查看>>
Python基础总结(字符串常用,数字类型转换,基本运算符与流程控制)
查看>>
数据预处理——剔除异常值,平滑,归一化
查看>>
Visual stuido 项目路径的奇怪问题
查看>>
java局部变量和临时变量
查看>>
返回杨辉三角前 n 层的数字
查看>>
布局(2、相对布局)
查看>>
在 Eclipse 上配置tomcat7.0并创建工程发布
查看>>
腾讯移动分析 签名代码示例
查看>>
重新回归博客园,写在开始的话。
查看>>
JavaScript定义函数
查看>>
AJAX的基础
查看>>
安全使用电子邮件十三法
查看>>
开发人员必知的20+HTML5技巧
查看>>
组合数学
查看>>
Loadrunner如何添加负载机
查看>>
Vue中组件之间的通信方式
查看>>
数据库并行读取和写入(Python实现)
查看>>
Spring学习(15)--- 基于Java类的配置Bean 之 @Bean & @Scope 注解
查看>>
英语写作-----赖世雄<<突破英语写作关>>笔记
查看>>