Centos 7.2安装 vsftpd服务
一、实验环境:
- 操作系统:阿里云Centos7.4
- 内核版本:3.10.0-693.2.2.el7.x86_64
- vsftpd版本:vsftpd-3.0.2
二、安装准备:
1.关闭selinux
selinux为Linux提供安全强化同时,也让Linux服务安装变得更复杂。未正确的为相关服务配置SELINUX,将导致服务无法正常运行。所以对于初学者来说,建议关闭selinux。
- 查看SLlinux状态:
/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
getenforce ##也可以用这个命令检查- 1.临时关闭:
setenforce 0 ##(设置SELinux 成为permissive模式)
##(setenforce 1 设置SELinux 成为enforcing模式)- 2.永久关闭(修改配置文件需要重启机器):
修改/etc/selinux/config
文件将SELINUX=enforcing改为SELINUX=disabled
重启服务器即可
三、安装vsftpd
1.查看服务器是否安装vsftpd
rpm -qa|grep vsftpd
2.安装vsftpd服务及ftp客户端
yum install ftp vsftpd -y
3.备份vsftpd的配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
四、配置虚拟用户访问vsftpd服务
1.创建虚拟用户的密码文件,奇数行为用户名,偶数行为密码:
touch /etc/vsftpd/vir_user.txt
echo -e "bingfeng\nbingfeng" >> /etc/vsftpd/vir_user.txt
echo -e "bf\nbf" >> /etc/vsftpd/vir_user.txt
这里创建了2个用户bingfeng、bf,bingfeng有读写权限,bf只有读的权限。
2.生成虚拟用户数据库:
yum -y install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vir_user.txt /etc/vsftpd/vir_user.db
3.配置vsftpd pam验证文件/etc/pam.d/vsftpd:
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat <<END > /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user
END
4.增加一个系统用户virftp ,所有虚拟用户都会映射到此用户后对文件系统进行读写操作:
useradd -d /ftproot virftp -s /sbin/nologin
chown -R virftp.virftp /ftproot
6、设置vsftpd主配置文件/etc/vsftpd/vsftpd.conf:
#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户
guest_enable=YES
#把虚拟账户映射到系统账户virftp
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES
7.设置虚拟用户各自的配置文件:
mkdir /etc/vsftpd/vsftpd_viruser/
#配置文件名同虚拟账户名
touch /etc/vsftpd/vsftpd_viruser/bingfeng
touch /etc/vsftpd/vsftpd_viruser/bf
chown -R virftp.virftp /ftproot
8.在虚拟用户 bingfeng的配置文件中写入如下配置/etc/vsftpd/vsftpd_viruser/bingfeng
# 允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
# 允许虚拟用户bingfeng上传文件
anon_upload_enable=YES
# 允许虚拟用户创建目录
anon_mkdir_write_enable=YES
# 允许虚拟用户bingfeng执行其他操作(如改名、删除)
anon_other_write_enable=YES
# 上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
# 指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/
9.在虚拟用户 bingfeng的配置文件中写入如下配置/etc/vsftpd/vsftpd_viruser/bf
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_umask=022
local_root=/ftproot/
10.重启vsftpd服务、加入开机启动项:
systemctl restart vsftpd.service
systemctl enable vsftpd.service
11.使用虚拟用户bingfeng和密码bingfeng测试
[root@server ~]# ftp
ftp> open 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root): bingfeng
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
参考地址:
http://aiezu.com/article/centos7_yum_vsftpd_install_configure.html