vsftp服务搭建配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vsftp服务搭建配置相关的知识,希望对你有一定的参考价值。
1、安装vsftp
2、配置服务
3、创建虚拟用户
4、安装db4
5、建立认证文件
6、配置admin和pub用户访问权限
7、验证vsftp服务
1、安装vsftp
yum -y install vsftpd
备注:Centos7无法安装db4,需要安装以下软件包即可:
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI
2、配置服务
cd /etc/vsftpd
vi vsftpd.conf (注意每一行结尾一定不能有空格)
listen=YES
#本地用户新增档案的权限
local_umask=022 #本地用户文件上传后的权限是 -rw-r--r--
connect_from_port_20=YES
#允许系统用户名登录
local_enable=YES
#禁止匿名用户登录
anonymous_enable=NO
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
guest_enable=YES
guest_username=virtual
#用户配置文件:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pam_service_name=vsftpd.vu
备注:Centos7无法启动vsftp时,禁用以下选项:
allow_writeable_chroot=YES
#listen_ipv6=YES
3、创建虚拟用户:
创建FTP存放数据的文件夹:
mkdir -p /data/ftp
useradd -d /data/ftp -s /sbin/nologin virtual #用户名virtual 将来会存放ftp数据,指定存放数据的位置:/data/ftp
4、安装db4
yum install -y db4*
建立数据库文件并设置文件属性
把需要的用户名和密码都输入到login.txt
vi /etc/vsftpd/login.txt
然后执行以下命令:
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db #将/etc/vsftpd/login.txt 文件变成 /etc/vsftpd/下面的 vsftpd_login.db 数据库文件
5、建立认证文件
vi /etc/pam.d/vsftpd.vu 插入以下两行, 这里需要注意的是 vsftpd.vu可以其任何名字,关键是要跟配置文件pam一致,一定不能有空格
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_useradd.so db=/etc/vsftpd/vsftpd_login
6、配置admin和pub用户访问权限
mkdir -p /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_usr_conf
anon_world_readable_only=NO #下载
anon_upload_enable=YES #上传
write_enable=YES #写文件
anon_mkdir_write_enable=YES #写目录
anon_other_write_enable=yes #删除文件
local_root=/data/ftp #家目录
vi pub
anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
local_root=/data/ftp
7、验证vsftp服务
Linux 验证:ftp 127.0.0.1 输入用户名:admin 密码:admin123
提示ftp:command not found 主要是因为ftp是客户端,没有安装,需要安装ftp服务:
yum -y install ftp
8、vsftpd服务重启:
systemctl restart vsftpd
出现 vsftpd.service failed because the control process exited with error code.
出现错误的原因是:由于centos7中vsftp的配置文件默认将 listen_ipv6=YES 这一行没有注释掉,而我们目前的网络环境还不支持ipv6,从而导致出现错误无法启动,所以解决方法是将 listen_ipv6=YES更改为:listen_ipv6=NO,或将这一行注释掉
vi /etc/vsftpd/vsftpd.conf
listen_ipv6=NO
8、验证ftp服务:
出现530 这个错误,从网上找了很多方法,尝试了很多次,都不能成功。最后是问了大牛,找到了问题所在,总结如下:
1、首先要懂得vsftp的工作原理
2、对于vsftpd.confg配置文件一定不能有空格
3、一直出现530的错误,是因为创建了用户,没有指定ftp存放数据的文件夹
注意:通过FTP返回的错误码,有助于定位问题,本例为错误500
解决方案:
getsebool ftpd_disable_trans
如果查看状态不是on 那么输入命令
setsebool -P ftpd_disable_trans 1
重启服务:systemclt restart vsftpd
550 create directory operation failed 的错误信息
不重启服务器
执行命令:setenforce 0
以上是关于vsftp服务搭建配置的主要内容,如果未能解决你的问题,请参考以下文章