为什么会有这篇文章
最近搭建了DST的独立服务器,游戏的启动和关闭都需要用steam用户,所以做了个VSFTP的服务,用来上传下载一些配置文件。
前置条件
- CentOS系统,Ubuntu也可以,命令稍微不同。
1. 安装VSFTP
1 2 3 4
| rpm -qa | grep vsftpd #检查是否已经安装了vsftpd yum -y install vsftpd #没有装,就新装 systemctl start vsftp #开启vsftpd服务 systemctl enable vsftpd #设置开机启动vsftpd服务
|
2. 创建防火墙规则(允许防火墙放行vsftpd监听端口)
1 2 3
| firewall-cmd --zone=public --permanent --add-port=21/tcp firewall-cmd --zone=public --permanent --add-service=ftp firewall-cmd –reload
|
3. 配置vsftp
配置开启虚拟账户(只能登陆ftp,不能登陆系统)以及设置访问目录
vim /etc/vsftpd/vsftpd.conf
3.1 关闭匿名用户、开启本地用户
1 2 3 4 5
| # 禁用匿名用户 anonymous_enable=NO
# 启动本地用户 local_enable=YES
|
3.2 开启登录用户上传文件权限
3.3 配置登录用户只能访问自己的家目录
1 2 3
| chroot_local_user=YES
allow_writeable_chroot=YES
|
说明:为了测试目的,我们可以将配置allow_writeable_chroot=YES 将打开,但是管理员采用user_sub_token配置项将更加安全,详情参考:vsftpd文档
3.4 配置管理登录用户列表
1 2 3 4 5 6
| # 开启可登录用户列表管理 userlist_enable=YES # 用户列表位置 userlist_file=/etc/vsftpd/user_list # 不拒绝用户列表 userlist_deny=NO
|
说明:
a. 我们可以编辑用户列表文件/etc/vsftpd/user_list
,添加或者删除用户(每一个用户占用一行)。
b. userlist_deny
配置项如果为yes,那么user_list文件中的用户将被锁定,不用登录。
1 2 3 4 5 6 7 8
| anonymous_enable=NO //设定不允许匿名访问 local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问 chroot_list_enable=YES //使用户不能离开主目录 ascii_upload_enable=YES ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能 guest_enable=YES //设定启用虚拟用户功能 guest_username=ftp //指定虚拟用户的宿主用户 user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径
|
4、 创建一个新的FTP用户
4.1 创建一个新的测试用户
1 2
| sudo adduser testuser sudo passwd testuser
|
4.2 添加测试用户到可登录用户列表文件中
1
| echo "testuser" | sudo tee –a /etc/vsftpd/user_list
|
4.3 为新增的用户创建目录并设置权限
1 2 3 4 5 6 7 8 9 10
| # 为testuser用户创建文件上传目录 sudo mkdir –p /home/testuser/ftp/upload
# 权限设置 sudo chmod 550 /home/testuser/ftp
sudo chmod 750 /home/testuser/ftp/upload
# 修改ftp目录及其子目录的用户、用户组为 testuser sudo chown –R testuser: /home/testuser/ftp
|
重启vsftpd服务
最后新建ftp连接到ftp服务器

参考链接
- centos下开启ftp服务
- Linux之CentOS7如何安装VSFTPD(FTP)服务