centos 7 配置vsftp服务

该文详细介绍了如何在CentOS7系统上配置VSFTPD服务,包括启用匿名用户登录、禁止匿名用户并设置本地用户登录以及配置虚拟用户进行FTP访问,同时展示了不同用户类型的权限设置和实际登录验证过程。

一、环境准备:

centos 7:192.168.58.136

windows 10:192.168.58.2

二、服务准备:

1、服务安装vsftpd:yum -y install vsftpd

2、开启vsftp服务

         systemctl start  vsftpd

         systemctl status vsftpd

3、vsftp 主备配置文件

        /etc/vsftpd/vsftpd.conf

三、匿名用户登录设置:

1、配置主配置文件:vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES #开启匿名用户登录

2、在windows client登录:用户名:anonymous 密码随意输入。

 c:\Dell>ftp 192.168.58.136
连接到 192.168.58.136。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.58.136:(none)): anonymous
331 Please specify the password.
密码:
230 Login successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 0        0              33 Jun 09  2021 pub
226 Directory send OK.
ftp: 收到 64 字节,用时 0.00秒 64.00千字节/秒。
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0               5 Jul 21 02:29 1
drwxr-xr-x    3 0        0              42 Jul 21 02:29 pub
226 Directory send OK.
ftp: 收到 123 字节,用时 0.00秒 61.50千字节/秒。
ftp> get 1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 1 (5 bytes).
226 Transfer complete.
ftp: 收到 5 字节,用时 0.00秒 5000.00千字节/秒。
ftp> put 1.txt
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp>

  • 注意:匿名用户下载,get 文件名  put上传:匿名用户不能上传文件
  •            登录默认路径:/var/ftp

 四、本地用户登录:

 1、禁用匿名用户登录FTP:vim  /etc/vsftpd/vsftpd.conf

        anonymous_enable=NO

        systemctl restart vsftpd

2、添加本地用户

 [root@Server vsftpd]# useradd pulin -s /sbin/nologin
[root@Server vsftpd]# passwd pulin
Changing password for user pulin.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@Server vsftpd]# 

  • 注意:本地用户设置为、/sbin/nologin 用户无法登录  
  • 需要修改:usermod  pulin -s /bin/bash

 3.本地用户登录:

c:\Dell>ftp 192.168.58.136
连接到 192.168.58.136。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.58.136:(none)): pulin
331 Please specify the password.
密码:
230 Login successful. 

ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0               4 Jul 21 02:59 1
226 Directory send OK.
ftp: 收到 62 字节,用时 0.00秒 62.00千字节/秒。
ftp> get 1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 1 (4 bytes).
226 Transfer complete.
ftp: 收到 4 字节,用时 0.00秒 4000.00千字节/秒。
ftp> put 1.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 7 字节,用时 0.00秒 7.00千字节/秒。
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0               4 Jul 21 02:59 1
-rw-r--r--    1 1000     1000            7 Jul 21 03:06 1.txt
226 Directory send OK.
ftp: 收到 125 字节,用时 0.00秒 62.50千字节/秒。 

  •  用户目录:本地用户家目录:/home/pulin/ 本地用户可上传,可下载

四、配置虚拟用户(来宾用户)登录 

  •  来宾用户(虚拟用户):不存在本地用户。它是“”寄生“”于linux普通用户下的子用户

1、新建普通用户 (关闭shell登录功能);

        useradd ftpuser -s /sbin/nologin

2、建立虚拟用户的配置文件(file:/etc/vsftpd/vuser); 

        虚拟用户:zhangsan 密码123 lisi 密码123

[root@Server home]# cd /etc/vsftpd/

[root@Server vsftpd]# vim vuser
         zhangsan
        123
         lisi
        123

 3、通过虚拟用户的配置文件生成用户数据库文件

 [root@Server vsftpd]# db_load -T -t hash -f /etc/vsftpd/vuser  /etc/vsftpd/vuser.db
[root@Server vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh  vuser  vuser.db

4、修改虚拟用户认证文件 (/etc/pam.d/vsftpd)

 更改技巧:[root@Server pam.d]# echo /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser >> /etc/pam.d/vsftpd

vim  /etc/pam.d/vsftpd

#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

5、修改主配置文件(/etc/vsftpd/vsftpd.conf) 

 后面追加配置:vim  /etc/vsftpd/vsftpd.conf

guest_enable=YES #启用虚拟用户
guest_username=ftpuser 设置寄生用户
user_config_dir=/etc/vsftpd/vuserconf 设置虚拟用户配置目录

allow_writeable_chroot=YES #允许写入权限的虚拟用户登录

[root@Server vuserconf]# touch  zhangsan
[root@Server vuserconf]# touch  lisi
 

6、创建虚拟用户配置文件(/etc/vsftpd/vuserconf/) 

 [root@Server vuserconf]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 21 13:35 lisi
-rw-r--r-- 1 root root 0 Jul 21 13:35 zhangsan

7、配置虚拟用户登录目录和测试文件 

  •  配置虚拟用户登录目录:/var/vuser

[root@Server vuserconf]# cd /var/

[root@Server var]# mkdir vuser 

[root@Server var]# chown -R ftpuser:ftpuser  /var/vuser 

[root@Server var]# ll

lrwxrwxrwx.  1 root    root       6 Jul  6 14:04 run -> ../run
drwxr-xr-x. 10 root    root     118 Jul  6 14:05 spool
drwxrwxrwt.  4 root    root     107 Jul 21 09:24 tmp
drwxr-xr-x   2 ftpuser ftpuser    6 Jul 21 13:44 vuser
drwxr-xr-x.  2 root    root       6 Apr 11  2018 yp 

[root@Server var]# cd vuser/

[root@Server vuser]# touch 1 2 3

[root@Server vuser]# ll
total 0
-rw-r--r-- 1 ftpuser ftpuser 0 Jul 21 13:48 1
-rw-r--r-- 1 ftpuser ftpuser 0 Jul 21 13:48 2
-rw-r--r-- 1 ftpuser ftpuser 0 Jul 21 13:48 3

 8、配置虚拟用户配置文件 (定义zhangsan仅可以下载,lis可上传和下载)

  • 配置虚拟用户zhangsan:

 [root@Server vuser]# vim /etc/vsftpd/vuserconf/zhangsan 
[root@Server vuser]# cat /etc/vsftpd/vuserconf/zhangsan
local_root=/var/vuser
anon_upload_enable=NO
anon_mkdir_write_enable=NO

  • 配置虚拟用户lis

[root@Server vuserconf]# vim /etc/vsftpd/vuserconf/lisi 
[root@Server vuserconf]# cat /etc/vsftpd/vuserconf/lisi
local_root=/var/vuser #设置虚拟用户登录目录
anon_upload_enable=YES #设置文件上传允许
anon_mkdir_write_enable=YES #设置目录写入权限
 

9、重启服务,使配置生效:

         systemctl  restart vsftpd

10、windows-client 虚拟用户登录和验证 

C:\Dell>ftp 192.168.58.136
连接到 192.168.58.136。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.58.136:(none)): zhangsan
331 Please specify the password.
密码:
230 Login successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 1
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 2
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 3
226 Directory send OK.
ftp: 收到 180 字节,用时 0.00秒 90.00千字节/秒。
ftp> get 1
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 1 (0 bytes).
226 Transfer complete.
ftp> put 1.txt
200 PORT command successful. Consider using PASV.
550 Permission denied.
ftp> bye
221 Goodbye.

C:\Dell>ftp 192.168.58.136
连接到 192.168.58.136。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.58.136:(none)): lisi
331 Please specify the password.
密码:
230 Login successful.
ftp> get 2
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 2 (0 bytes).
226 Transfer complete.
ftp> put 1.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 7 字节,用时 0.00秒 7000.00千字节/秒。
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 1
-rw-------    1 1001     1001            7 Jul 21 06:31 1.txt
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 2
-rw-r--r--    1 1001     1001            0 Jul 21 05:48 3
226 Directory send OK.
ftp: 收到 243 字节,用时 0.00秒 81.00千字节/秒。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值