5、vsftpd服务安装和配置
本章节介绍如何安装和配置Vsftpd软件。
5.1、安装vsftpd
1.检查vsftpd是否安装。
rpm -qa|grep vsftpd
2.如果没有安装,请获取安装包后,上传服务器,并安装vsftpd。
rpm -ivh vsftpd*.rpm(或者直接通过yum安装:yum install -y vsftpd)
具体请参见如下图。
图 5-1安装vsftpd
5.2、创建vsftpd密码文件
3.进入vsftpd目录。
cd /etc/vsftpd
4.创建密码文件。
vi vsftpd_login.txt
具体请参见如下图。
图 5-2创建vsftpd密码文件
5.设置ftp用户名和密码,请将如下样例两行填加到vsftpd_login.txt中。
ftpin
yjyjs@123
ftpout
yjyjs@123
如果有多个用户名和密码,请依次按照用户名、密码的顺序填加到密码文件中。
5.3、生成虚拟用户帐户数据库
5.以root用户登录,执行如下命令生成虚拟用户账户数据库vsftpd_login.db。
db_load -T -t hash -f /etc/vsftpd/vsftpd_login.txt /etc/vsftpd/vsftpd_login.db
6.赋予文件可读可写权限。
具体请参见如下图。
图 5-4生成虚拟用户账号数据库
5.4、生成vsftpd.vu
7.以root用户登录,并编辑文件vsftpd.vu。
vi /etc/pam.d/vsftpd.vu
8.将如下内容填加到vsftpd.vu文件。
#64位操作系统
#auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
5.6、创建ftp用户权限目录
使用如下命令创建FTP用户权限目录,具体请参见如下图。
cd /etc/vsftpd
mkdir user.d
5.7、修改vsftpd.conf文件
9.以root用户登录,进入vsftpd目录。
cd /etc/vsftpd
10.修改vsftpd.conf文件,具体参数含义如下(请在原有配置文件基础上修改,以下项是需要修改的项,不是全量配置项)
#取消匿名用户登录
anonymous_enable=NO
#指定授权文件
pam_service_name=vsftpd.vu
#启用虚拟用户
guest_enable=YES
guest_username=app#这里和前面通过useradd创建的用户名一致,云渡一般就直接用云渡应用(exch服务)的用户就可以
#只用ftp用户的权限目录
user_config_dir=/etc/vsftpd/user.d
pasv_min_port=12300 #被动模式时,指定最小端口范围,主动模式时不需要
pasv_max_port=12910 #被动模式时,指定最大端口范围,主动模式时不需要
allow_writeable_chroot=YES
file_open_mode=0766 #指定上传文件后的文件权限,和local_umask=011的意思一样
5.8、配置ftp用户的权限
11.以root用户登录,编辑ftpin文件,设置如下配置项,具体可参见如下。
vi /etc/vsftpd/user.d/ftpin #ftpin这个和前面的vsftpd_login.txt中的用户名保持一致
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
#该目录为虚拟用户通过ftp登录后的根目录,目录需要自己手动创建
local_root=/home/app/yundu/data/ftp/IN
12.以root用户登录,编辑ftpout文件,设置如下配置项,具体可参见如下:
vi /etc/vsftpd/user.d/ftpout #ftpout这个和前面的vsftpd_login.txt中的用户名保持一致
write_enable=YES
anonymous_enable=NO
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022
download_enable=Yes
local_root=/home/app/yundu/data/ftp/OUT #这里的ftpout目录需要自己手动创建,名称要是实际的用户名,和vsftpd_login.txt中的名称保持一致
5.9、重启vsftpd
使用如下命令重启vsftpd:
service vsftpd restart 或 systemctl start vsftpd
5.9、验证vsftp是否可用
打开ftp客户端,用前面设置的ftp用户名密码登录,并上传文件,查看是否可以上传成功,可以则表明VSFTP安装和设置是OK的。
常见FAQ:
Q1.无法启动vsftp,启动报错:
Answer:修改/etc/vsftpd/vsftpd.conf文件中的listen=NO,然后重启即可。
Q2.虚拟用户登录后无法创建目录,提示:550 Create directory operation failed.
Answer:seLinux防火墙问题,关闭防火墙即可解决
#查看seLinux状态
[root@Video in]# getenforce
Enforcing --显示这个说明防火墙是开启状态
#临时关闭防火墙
[root@Video in]# setenforce 0
#永久关闭防火墙
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存后退出
需要重启操作系统才能生效