1. 描述编辑
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从名称上可以看出安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
安装vsftpd需要使用最高用户(root),否则不能进行。
2. 安装vsftp编辑
2.1 联网安装
rpm -qa |grep vsftpd #检查是否已安装ftp
yum install vsftpd -y #使用yum安装ftp
2.2 离线安装
下载安装包:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd (根据系统选择对应rpm包)
例如:vsftpd-2.2.2-27.1.x86_64.rpm (64位)、vsftpd-3.0.2-22.el7.x86_64.rpm (64位)
rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm #安装vsftpd,请按照实际rpm包的名称写命令
2.3 修改配置
vi /etc/vsftpd/vsftpd.conf #编辑vsftpd.conf配置文件
键盘点击i,进入编辑模式,修改以下内容:
anonymous_enable=NO # 禁止匿名登录
键盘按ESC退出编辑模式,输入wq 退出vi编辑器。
2.4 新增FTP用户
useradd ftpuser #新建名为ftpuser的用户,并自动建立/home/ftpuser 目录
passwd ftpuser # 设置该用户的密码
输入密码:admin123456
##使用ftpuser的账户密码可以登录并使用ftp服务##
3. 使用FTP编辑
3.1 启动vsftpd
service vsftpd start #启动vsftpd服务
3.2 拷贝WEB-INF,给文件夹赋权限
拷贝正式环境web工程里的 WEB-INF文件夹,并粘贴到/home/ftpuser目录下
在平台开启文件服务器时,ftp路径填写 /home/ftpuser/WEB-INF
chmod -R 777 /home/ftpuser #给ftpuser文件夹赋予写入权限
#如果考虑安全性,不能给777权限,可以只给755权限,命令是chmod -R 755 /home/ftpuser,但是拷贝WEB-INF文件时务必使用ftp用户,否则会因为文件归属问题导致不能写入。
3.3 测试是否成功
两种方式:
(1)用ftp工具连接,比如Xftp之类的进行登录ftp用户
(2)在能访问该ip的电脑上直接打开一个文件夹,地址里输入ftp://ip
用上面两种方式连接ftp后,新建和删除文件夹确认有读写权限,则表明ftp部署成功,如果测试报错,查看下面的FAQ文档。
4.运维知识编辑
4.1 常用命令
service vsftpd status #查看ftp的状态 service vsftpd start #启动服务 service vsftpd stop #停止服务 service vsftpd restart #重启ftp chkconfig vsftpd on #设为开机启动 |
anonymous_enable=NO # 禁止匿名用户登录,默认是允许 local_enable=YES # 允许本地用户访问,默认就是YES,不用改 write_enable=YES # 允许写入,默认是YES,不用改 local_umask=022 # 默认的umask码,即上传后文件的权限掩码,不用改 anon_upload_enable=NO #匿名用户不可以上传文件 anon_mkdir_write_enable=NO #匿名用户不可以修改文件 diremssage_enable=YES # 是否显示目录说明文件 xferlog_enable=YES # 开启日志,默认是YES,不用改 xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志保存路径,该文件默认不存在,必须要手动touch出来,命令:touch /var/log/vsftpd.log use_localtime=YES #使用本地时间而不是GMT dual_log_enable=YES #用户登陆日志 connect_from_prot_20=YES # 设定连接端口20 xferlog_std_format=YES #记录日志使用标准格式 idle_session_timeout=600 #登陆之后超时60秒,登陆之后一分钟不操作,就会断开连接,默认被注释掉,可根据个人情况修改 chroot_local_user=NO # 允许ftp用户访问其上层目录 chroot_list_enable=YES # 启用chroot_list_file chroot_list_file=/etc/vsftpd/chroot_list # 列表里是受限制的用户,不允许切换到上级目录 listen=YES # 是否开启监听 pam_service_name=vsftpd# 服务名称 userlist_enable=YES #禁止登录ftp的用户名单,不用改 允许由userlist_file指定文件中的用户登录FTP服务器 tcp_wrappers=YES #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) |
5. FAQ文档编辑
5.1 登录ftp操作文件报“550 create directory operation failed”或者无法登录
vi /etc/selinux/config #编辑SELinux的config文件 将SELINUX=enforcing 改为SELINUX=disabled 改完以后,重启系统生效! |
(2)临时关闭SELinux的方式
setenforce 0 #执行命令,仅临时关闭,重启后又会恢复原状
++想要了解更多SELinux相关的知识,可以查看https://linux.cn/article-1144-1.html
5.2 配置chroot_list禁止或者允许用户访问上层目录
具体如何配置,待补充
5.3 配置FTP后,部分模板名称在平台读取为乱码
windows系统自带的ftp编码默认为gbk,linux自带的ftp编码为utf-8,在集群配置时请注意这点,否则会出现乱码。
5.4 其它工具登录FTP慢,平台配置FTP失败,报错:Invalid config!
原因:用户名密码访问的时候,ftp服务器如果开启了dns反向解析,就会去查找你是不是从合法ip来访问的,内网情况下会出现超时的情况。
解决方案:编辑vsftpd.conf加一句reverse_lookup_enable=NO,然后重启ftp。