centeros 7 搭建vsftpd服务

本文详细介绍如何在CentOS 7.3上安装与配置vsftpd服务,包括基本安装步骤、服务启动、用户管理(系统用户与虚拟用户),以及常见客户端异常处理。

系统环境:
centeros 7.3
===========================vsftp的搭建===========================
1.判断系统是否安装vsftp

rpm -q vsftpd

如果展示如下图,则说明已经安装,

2.如果没有安装,执行命令安装:

yum -y install vsftpd

3.查看服务安装位置:

whereis vsftpd

4.启动ftp服务

systemctl start vsftpd.service

5.安装到现在已经可以匿名登录了。默认目录是/var/ftp

===========================vsftp的配置===========================
解说:
一般情况下我们都是按分配的用户去访问各自的目录,
vsftpd的用户分为系统用户和虚拟用户,系统用户也就是系统实际存在的Linux用户,而虚拟用户则是存在于配置文件里面的。
系统用户方式比较简单,创建系统用户,确保用户能对FTP目录进行读写就可以了。
以下是创建普通Linux用户,详见 useradd 命令。其实,从以上连接ftp信息可以看出,有的系统已默认创建了名为ftp的用户了。

2.1 linux 用户:
1.新建ftpuser用户,并授权ftp目录 /app/ftpdata/ftpadmin

[root@localhost ~]# useradd -g root -M -d /app/ftpdata/ftpadmin -s /sbin/nologin ftpuser
[root@localhost ~]# passwd ftpuser
[root@localhost ~]# 输入密码
2.把 /app/ftpdata/ftpadmin 的所有权给ftpuser.root
[root@localhost ~]# chown -R ftpuser.root /app/ftpdata/ftpadmin

2.2 虚拟用户(比较麻烦)

2.2.1首先虚拟用户的用户认证是通过pam方式去认证的,pam文件里面指定了认证的db文件,db文件又是通过明文用户名和密码文件生成而来
我们要指定pam文件,这个在 /etc/vsftpd/vsftpd.conf 配置文件是通过 pam_service_name=vsftpd 配置指定的,
其位置是 /etc/pam.d/vsftpd,编辑该文件,把文件内容全部注释掉,加上以下两行:
 64位系统:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #指定了db文件的位置
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #指定了db文件的位置
32位系统:
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #指定了db文件的位置
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #指定了db文件的位置

2.2.2 生成DB文件:
注:由于db文件是通过明文用户名和密码文件生成而来,所以先创建一个保存明文用户名和密码的文件 vuser_passwd.txt{(该文件奇行为用户名,偶行为密码)}
1.创建txt文件并初始化内容
ftpadmin
adminpwd
2.根据txt文件生成db文件

cd cd /etc/vsftpd/

db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db

3.具体ftp用户的权限配置
注:是通过一个用户对应一个配置文件来实现的,且这个文件必须用FTP用户名去做文件名,建一个目录专门存放这些文件。

cd /etc/vsftpd/
mkdir vuser_conf
vim vim vuser_conf/ftpadmin #与ftp用户同名(注意权限:chmod 777 ftpadmin)

写入一下内容

local_root=/app/ftpdata/ftpadmin
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

4.修改配置文件 /etc/vsftpd/vsftpd.conf
修改:
anonymous_enable=NO # 禁用匿名登录
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES # 启用限定用户在其主目录下

追加
guest_enable=YES # 设定启用虚拟用户功能
guest_username=ftpuser # 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf # 虚拟用户配置文件存放的路径
allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置

5.重启ftp服务:
systemctl restart sshd.service

===========================重复添加vsftp用户===========================

1.修改用户名-密码文件
2.使用“用户名-密码文件”生成db文件
3.创建没有用户的具体配置文件,并添加内容
local_root=/new/ftp/directory
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
4.重新启动服务

===========================Filezilla客户端异常===========================
1.拉去目录

解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值