一、环境准备:
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千字节/秒。
该文详细介绍了如何在CentOS7系统上配置VSFTPD服务,包括启用匿名用户登录、禁止匿名用户并设置本地用户登录以及配置虚拟用户进行FTP访问,同时展示了不同用户类型的权限设置和实际登录验证过程。
3385

被折叠的 条评论
为什么被折叠?



