CentOS 7搭建vsftp服务
1. 安装前准备
- 关闭防火墙或者开端口权限。一般是firewalld或者iptables。
systemctl stop firewalld
systemctl disable firewalld
- 关闭sellinux
临时关闭
setenforce 0
重启机器关闭
vi /etc/selinux/config
修改
SELINUX=disabled
查看是否关闭
getenforce
2. 安装vsftpd
yum install -y vsftpd ftp
systemctl start vsftpd
systemctl enable vsftpd
3. 配置vsftpd
- 创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件。
useradd vsftpd -d /home/vsftpd -s /bin/false
- 创建虚拟用户主目录,比如虚拟用户叫ftp1,执行下面的命令。
mkdir -p /home/vsftpd/ftp1
chmod 755 /home/vsftpd/ftp1
chown vsftpd.vsftpd /home/vsftpd/ftp1
- 创建这个虚拟用户
vi /etc/vsftpd/loginusers.conf
增加
ftp1
123456
这样就创建了ftp1这个虚拟用户,密码为123456
- 根据这个文件创建数据库文件
db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.db
chmod 600 /etc/vsftpd/loginusers.db
- 启用这个数据库文件
vi /etc/pam.d/vsftpd
注释掉所有内容后,增加下面的内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
- 创建虚拟用户配置文件
mkdir /etc/vsftpd/userconf
vi /etc/vsftpd/userconf/ftp1 # 这里的文件名称必须与虚拟用户名一致
增加下面的内容
# 设置登录后禁锢的目录
local_root=/home/vsftpd/ftp1/
# 开放写权限
write_enable=YES
# 开放下载权限
anon_world_readable_only=no
# 开放上传权限
anon_upload_enable=yes
# 开放创建目录的权限
#anon_mkdir_write_enable=yes
# 开放删除和重命名的权限
anon_other_write_enable=yes
- 最后修改主配置文件
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES
# 以下是跟被动模式相关配置:
pasv_enable=yes # 被动模式启动
pasv_max_port=10250 # 启动的最大端口
pasv_min_port=10240 # 启动的最小端口
# 端口设置需要防火墙开启、华为云需要配置安全组
pasv_address=114.1*6.*1.*7 # 华为云主机的IP,改为你自己的运服务器IP
pasv_addr_resolve=yes # 配合pasv_address开启允许欺骗
配置介绍:
-
- anonymous_enable=NO 禁止匿名用户登录
-
- chroot_local_user=YES 禁止用户访问除主目录以外的目录
-
- ascii_upload_enable=YES ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能
-
- guest_enable=YES 启动虚拟用户
-
- guest_username=vsftpd 虚拟用户使用的系统用户名
-
- user_config_dir=/etc/vsftpd/userconf 虚拟用户使用的配置文件目录
-
- allow_writeable_chroot=YES 最新版的vsftpd为了安全必须用户主目录(也就是/home/vsftpd/ftp1)没有写权限,才能登录,或者使用
-
- allow_writeable_chroot=YES
-
最后重启服务使配置生效
systemctl restart vsftpd
4. 登录测试
- shell 查看
# sudo su - vsftpd
# pwd
/home/vsftpd/ftp1
# ls
111.pdf
5. 参考文档
# 华为云Centos 7.4安装、配置FTP服务器vsftpd
https://blog.csdn.net/qiantanlong/article/details/82909865
# centos7安装vsftp配置虚拟用户,详细介绍,亲测完美!
https://blog.csdn.net/will0532/article/details/79175478
# CentOS 7搭建vsftp(虚拟用户方式登录)
http://www.cnblogs.com/wsjhk/p/8311037.html