centos7中搭建ftp服务

作者 Lei da 日期 2019-12-17
centos7中搭建ftp服务

最近想和同学共享一些文件资源,于是在实验室服务器上搭建个ftp服务,本博客记录一下配置的流程。过程基本是参照别人的方法来做的,博客也是在别人博客基础上修改的,当然排除了一些坑点。

1. 安装vsftpd

  1. 安装vsftpd: yum install vsftpd -y
  2. 启动vsftpd: systemctl start vsftpd
  3. 设置开机启动:systemctl enable vsftpd
  4. 创建ftp根目录: mkdir -p /ftpserver

2. 设置配置文件

vim /etc/vsftpd/vsftpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
listen=YES                 // 需要把ipv6那个改成NO,两个不能同时开启

#禁止匿名访问
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

chroot_list_enable=NO           // 不允许用户离开自己的主目录
chroot_list_file=/etc/vsftpd.chroot_list   // 虚拟用户列表,每行一个用户名
local_enable=YES               // 允许本地用户访问
write_enable=YES              // 允许本地用户写入
local_umask=022              // 上传后的文件的默认掩码
chroot_local_user=YES            // 禁止本地用户离开自己的主目录
pam_service_name=vsftpd       // 权限验证需要的加密文件
guest_enable=YES              // 开启虚拟用户功能
guest_username=bt            // 宿主用户,这个用户需要创建,或者使用已有用户,同样可以通过ftp来登录
virtual_use_local_privs=YES        // 用户登录后操作目录和本地用户权限一样
user_config_dir=/etc/vsftpd/vconf     // 虚拟用户主目录设置文件
allow_writeable_chroot=YES        // 允许写入用户主目录,这条特别重要

3. 添加虚拟用户,并创建用户目录

  1. vim /etc/vsftpd.chroot_list,添加两个用户如进去,分别为:

    1
    2
    3
       user1

      user2
  2. mkdir -p /ftpserver/user1 /ftpserver/user2 // 创建用户目录

  3. chmod –R 755 /ftpserver/user1 /ftpserver/user2 // 修改目录权限,如果希望用户有写入权限,给other添加写权限即可,例如777
  4. 指定用户目录
1
2
3
4
5
6
7
8
9
10
mkdir –p /etc/vsftpd/vconf

cd /etc/vsftpd/vconf

touch user1 user2
# vim user1
local_root=/ftpserver/user1

#vim user2
local_root=/ftpserver/user2

4. 设置用户密码和数据库

1
2
3
4
5
6
7
echo -e "user1\n123456\nuser2\n123456" >/etc/vsftpd/vusers.lis

cd /etc/vsftpd

db_load –T –t hash –f vusers.list vusers.db

chmod 600 vusers.*

5. 指定登录认证方式

vim /etc/pam.d/vsftpd
修改为如下

1
2
auth  sufficient /lib64/security/pam_userdb.so    db=/etc/vsftpd/vusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers

6. 关闭SELINUX的屏蔽

1
2
3
4
5
6
vi /etc/selinux/config

#SELINUX=enforcing #注释掉
SELINUX=disabled #增加

setenforce 0 #使配置立即生效

最后 systemctl restart vsftpd即可