Linux搭建多用户的FTP服务

由于一些特殊使用场景,需要用到ftp服务。
直接看搭建过程。
linux上比较常用的ftp软件是vsftp。

一、安装
1、检测是否安装vsftpd
  rpm -q vsftpd
  如果安装会返回vsftpd-版本号信息

2、安装
yum install vsftpd

二、配置
虚拟用户的ftp服务,是指在vsftpd服务中使用虚拟用户名和密码。可以将ftp登录帐号和系统登录帐号分开,而且用户名和密码都不同。增强了ftp服务器的安全。我们配置这种虚拟用户的ftp。
2.1、创建帐号
1)创建用户名密码表
在vsftpd目录下创建,文件名自定义,文件中奇数行为帐号,偶数行为密码,均为明文。
2)转化为Berkeley DB个数数据
3)将db文件权限设置为600,防止数据外泄

[root@yys_centos /etc/vsftpd]# vi vaccount.list
yys
8888
td
6666
[root@yys_centos /etc/vsftpd]# db_load -T -t hash -f vaccount.list vaccount.db
[root@yys_centos /etc/vsftpd]# file vaccount.db #查看结果文件
vaccount.db: Berkeley DB (Hash, version 9, native byte-order)
[root@yys_centos /etc/vsftpd]#  chmod 600 /etc/vsftpd/vaccount.db #设置为root权限

4)创建ftp根目录及虚拟用户映射的系统用户
将/home/ftpsite 设置为

[root@yys_centos]# useradd -d /home/ftpsite vsftpd_virtual 
[root@yys_centos]# chmod 700 /home/ftpsite

5)建立支持虚拟用户的 PAM 认证文件
创建好虚拟用户的账号数据文件后,还需要对vsftpd服务的配置做相应的调整,以便识别并读取新的用户信息。在vsftpd服务器中,用户认证是通过PAM(Pluggable Authentication Module,可插拔认证模块)机制来实现的,该机制包含灵活的选择认证方式。Vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以Linux主机的系统用户账号进行认证。若要读取虚拟用户的账号数据文件,则需要创建新的PAM认证配置。

在/etc/pam.d下建立配置文件,文件名为:vsftpd.vu,内容如下:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vaccount #对应前面的db文件
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vaccount 

2.2、添加用户支持
1)vsftp.conf文件添加虚拟多用户支持配置,
如下参数

local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guset_username=vsftpd_virtual #上面指定映射文件
pam_service_name=vsftpd.vu

2)为多个虚拟用户建立独立的配置文件
为不同的虚拟用户账号设置不同的访问权限,可以通过为每个虚拟用户建立单独的配置文件来实现。为FTP用户启用独立配置文件,需要修改vsftpd.conf配置文件,天剑“user_config_dir”配置项。
user_config_dir=/etc/vsftpd_user_conf
建立虚拟用户配置文件

[root@yys_centos]# mkdir /etc/vsftpd/vsftpd_user_conf #新建用户配置文件
[root@yys_centos /etc/vsftpd/vsftpd_user_conf]# vi yys
local_root=/home/ftpsite/yys #先建立好此文件夹,用于用户yys上传下载的目录
anon_world_readable_only=NO #浏览/下载
anon_upload_enable=YES #上传
anon_mkdir_write_enable=YES #建立/删除目录
anon_other_write_enable=YES #改名/删除文件

[root@yys_centos /etc/vsftpd/vsftpd_user_conf]# vi td
local_root=/home/ftpsite/td #先建立好此文件夹,用于用户td上传下载的目录
anon_world_readable_only=NO #浏览/下载
anon_upload_enable=YES #上传

td用户没有建立和修改目录权限
三、测试
重新加载 vsftpd 配置:systemctl restart vsftpd
如果是linux下
使用 ftp IP 端口号
输入用户名密码登录成功

四、其他

1、可以设置vsftpd多个进程运行,并且每个进程使用不同端口

比如可以新建一个vsftpd.conf命名为vsftpd.conf.后缀,

重新设置新的监听端口。

然后启动进程:/usr/sbin/vsftpd /etc/vsftpd.conf.333,后面部分是你希望加载的conf的路径和文件名。

五、异常处理

1、使用用户登录成功后,put文件时,提示553:Could not create file.

 我的本地原因是,虽然在vsftpd.conf中设置了写权限,但是指定的用户的可操作路径没有写权限。设置对应目录的权限即可。

chmod 777 指定目录 -R

2、ftp_put(): php_connect_nonb() failed: Operation now in progress (115)

当vsftpd使用了被动模式,指定的被动模式端口必须可以访问,如果访问端口不通会报上述错误。

3、vsftpd虚拟用户登录时 530 Login incorrect

这种错误原因非常多,我遇到的是,在配置过程中的第5步:建立支持虚拟用户的 PAM 认证文件,设置了/lib/security/pam_userdb.so。

首先要保证这个目录文件存在,其次,要看一下安装的vsftpd的位数,如果是64位需要使用/lib64/security/

4、被动模式的影响

被动模式设置,在ftp服务器的vsftpd.conf文件中设置,比如

pasv_enable=YES
pasv_max_port=端口号
pasv_min_port=端口号

被动模式需要发起方服务器允许开通指定的端口范围。如果发起方服务器不允许其他服务器访问端口,那么可以在发起服务器的程序中修改关闭支持被动模式,这样就用主动模式来工作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值