CentOS7搭建ftp服务器(多用户)

参考文章
https://blog.csdn.net/sinat_30802291/article/details/81706152
https://blog.csdn.net/will0532/article/details/79175478

一、安装前准备

1、设置关闭SELinux对ftp的限制
方法一:

[root@localhost ~]# getsebool -a | grep ftp
ftp_home_dir --> on
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
[root@localhost ~]# setsebool -P ftpd_full_access on

方法二:
关闭selinux

[root@localhost ~]# setenforce 0

永久关闭,需要修改配置文件

[root@localhost ~]# vim /etc/selinux/config

SELINUX=enforcing
更改为SELINUX=disabled
查看是否关闭

[root@localhost ~]# getenforce
Disabled

2、将ftp加入防火墙白名单
方法一:

[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=ftp
[root@localhost ~]# firewall-cmd --reload

查看防火墙状态:

[root@localhost ~]# firewall-cmd --list-all

方法二:
关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld

二、安装vsftp

1、为了方便后续操作,现将用户切换至root用户 su
2、查看是否已安装vsftpd
方法一:

[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.2-10.el7.x86_64

方法二:

[root@localhost ~]# vsftpd -v
vsftpd: version 3.0.2

3、yum安装vsftpd

[root@localhost ~]# yum -y install vsftpd

4、安装完成后,查看位置

[root@localhost ~]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

5、启动VSFTP服务器

[root@localhost ~]# systemctl start vsftpd.service
[root@localhost ~]# systemctl restart vsftpd.service
[root@localhost ~]# systemctl enable vsftpd.service

6、查看是否启动成功

[root@localhost ~]# netstat -npal | grep vsftpd
tcp6    0   0 :::21     :::*     LISTEN      10763/vsftpd

可以看到服务已经启动,端口为21,pid为10763

三、匿名用户登录

查看配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

设置语句anonymous_enable=YES,表示可以匿名登录
重启服务器 systemctl restart vsftpd.service
此时可以通过浏览器ftp://192.169.xxx.xxx匿名登录ftp服务器,对应的目录是/var/ftp

四、多用户配置

1、创建宿主用户
创建宿主用户文件夹

[root@localhost ~]# cd /home
[root@localhost ~]# mkdir vsftpd

创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件

[root@localhost ~]# useradd vsftpd -d /home/vsftpd -s /bin/false

2、创建虚拟用户
创建两个虚拟用户,编辑如下内容,奇数行为用户名,偶数行为密码

[root@localhost ~]# vim /etc/vsftpd/loginusers.conf
ftp1
123456
ftp2
123456

生成虚拟用户数据文件

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/loginusers.conf /etc/vsftpd/loginusers.db
[root@localhost ~]# chmod 600 /etc/vsftpd/loginusers.db

编辑pam认证,启用这个数据文件

[root@localhost ~]# vim /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

3、创建虚拟用户配置文件
创建虚拟用户配置文件夹,存放所有虚拟用户配置文件

[root@localhost ~]# mkdir /etc/vsftpd/userconf

创建虚拟用户配置文件,这里的文件名称必须与虚拟用户名一致

[root@localhost ~]# cd userconf
[root@localhost ~]# touch ftp1 ftp2

增加用户配置如下面的内容

local_root=/home/vsftpd/ftp/
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

配置说明
//设置FTP账号根目录,指定用户访问
local_root=/home/vsftpd/ftp/
//允许写入权限,包括修改
write_enable=YES
//允许匿名用户浏览,下载文件
anon_world_readable_only=NO
//允许匿名用户上传
anon_upload_enable=YES
//允许匿名用户上传/建立目录
anon_mkdir_write_enable=YES
//允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
anon_other_write_enable=YES

4、修改主配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

更改

anonymous_enable=NO

去掉注释

chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES

增加

guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES

配置介绍:

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为了安全必须用户主目录没有写权限,才能登录,或者使用allow_writeable_chroot=YES

最后重启服务使配置生效

[root@localhost ~]# systemctl restart vsftpd
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值