linux(centos 7.x)下部署ftp服务以及建立虚拟用户

  • 下载安装vsftpd ftp

yum install -y vsftpd ftp

  • 启动ftp服务

systemctl start vsftpd.service

  • 设置开机自启

systemctl enable vsftpd.service

  • 连接

ftp localhost(ip)

quit

  • 添加普通用户和密码

id user1

echo 123 | passwd --stdin user1

 

vsftpd服务配置文件

  • /etc/vsftpd/vsftpd.conf   主配置文件
  • /etc/vsftpd/ftpusers

  • /etc/vsftpd/user_list

 

ftp可以有3种登录用户:

  • 匿名用户 ftp:共享数据资源 资源不受限 任何人都可以访问
  • 系统普通账号

  • 虚拟用户:系统用户有安全隐患,且读取用户和密码速度比较慢,不适合大型ftp服务,虚拟用户登录方式比较安全

 

vsftp虚拟用户

1.  建立系统账户vuser,用来映射虚拟账户,但是该账户要设置成不允许登录

useradd vuser -d /home/ftp -s /sbin/nologin

建立用户文件目录,且不能终端登录,只用来做虚拟用户的映射

cd /home

chmod 755 ftp/

修改文件目录权限为755,否则无法下载(读取)

2. 建立虚拟用户

cd /etc/vsftpd/

vim vuser.temp

存放虚拟用户名和密码,奇数行为用户名,偶数行为密码,但是该账户是无法被vsftpd认证的,也就是无法直接远程登录(明文信息既不安全,也不符合让vsftpd服务程序直接加载的格式),需要转换成伯         克利db(使用db_load命令 hash算法将明文信息虚拟用户文件转换成db文件),并降低此文件的权限,只有root用户可实行读写。

db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db

chmod 600 /etc/vsftpd/vuser.db

rm -rf vuser.temp

3. 现在虚拟用户和用于映射的vuser账户都有了,ftp如何能找到虚拟用户文件进行认证呢?

答案是PAM服务,PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。

pam也有自己的配置文件,新建一个用于虚拟用户认证的PAM配置文件vsftpd.vuser

vim /etc/pam.d/vsftpd.vuser

 

写入下面两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

 

auth是进行验证的,account是为用户提供资源的

4. 配置ftp主配置文件,使服务启动时,能够准确找到认证文件。

vim /etc/vsftpd/vsftpd.conf

 

guest_enable=YES   添加:支持虚拟用户

guest_username=vuser   添加:虚拟用户指定映射账户

allow_writeable_chroot=YES   添加:支持虚拟用户的读写

pam_service_name=vsftpd.vuser   修改

user_config_dir=/etc/vsftpd/vuserconfig   添加:虚拟用户的控制文件路径

 

5. 配置虚拟用户文件,对不同的登录用户进行分别控制。在vsftpd文件目录下新建一个文件目录vuserconfig

mkdir -p /etc/vsftpd/vuserconfig

 cd /etc/vsftpd/vuserconfig/

对不同的用户创建同名的文件,比如对u1用户创建u1文件

touch u1

vim u1

 

local_root=/home/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  

download_enable=YES   可下载

保存退出

 

6. 重启vsftpd服务

systemctl restart vsftpd.service

登录ftp

ftp localhost

U1

密码

ls

get/put…

quit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值