环境

Windows11、VMware Workstation 16.2.2

系统

Red hat7.0

说明

了解vsftp

FTP(文件传输协议)全称是:Very Secure FTP Server。 Vsftpd是linux类操作系统上运行的ftp服务器软件。

vsftp提供三种登陆方式:1.匿名登录 2.本地用户登录 3.虚拟用户登录

vsftp提供两种模式: Port模式(主动模式)–> 默认 Pasv模式(被动方式)

vsftp安装:yum -y install vsftpd

vsftp主配置文件:/etc/vsftpd/vsftpd.conf

部署

项目一

  • 配置匿名用户访问的FTP站点

1.创建目录🎄

[root@Jw2031-122 ~]# mkdir -p /ftp/share
[root@Jw2031-122 ~]# echo "测试文件" >/ftp/share/test.txt

2.编辑允许匿名用户访问🎄

1
2
3
[root@Jw2031-122 ~]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES
13 anon_root=/ftp/share

3.测试…..略🎄

项目二

  • 配置本地用户访问的FTP站点

1.创建用户、目录🐥

1
2
3
4
5
6
7
8
[root@Jw2031-122 ~]# mkdir -p /var/www/web1
[root@Jw2031-122 ~]# echo "本地用户" >/var/www/web1/testftp.txt
[root@Jw2031-122 ~]# chmod -R 757 /var/www/web1
[root@Jw2031-122 ~]# useradd user1 -s /sbin/nologin
[root@Jw2031-122 ~]# echo "user1" |passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@Jw2031-122 ~]# chown -R user1 /var/www/web1

2.配置文件编辑🐥

1
2
3
4
5
6
7
8
9
[root@Jw2031-122 ~]# vim /etc/vsftpd/vsftpd.conf
17 local_enable=YES #允许本地用户登录
18 local_root=/var/www/web1 #设置本地用户登录后的根目录
21 write_enable=YES #允许写入
25 local_umask=022 #设定新上传文件权限掩码
43 connect_from_port_20=YES #控制以PORT模式进行数据传输时服务器是否使用20端口
103 chroot_local_user=YES #是否将所有用户限制在登录根目录内
104 chroot_list_enable=YES #开启锁定用户的chroot功能
105 chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户的列表文件

3.将锁定用户加入到文件中🐥

1
2
[root@Jw2031-122 ~]# cat /etc/vsftpd/chroot_list
user1

4.测试……..略🐥

项目三

  • 配置虚拟用户访问的ftp站点

1.创建用户虚拟目录

[root@Jw2031-122 ~]# useradd user2 -s /sbin/nologin
[root@Jw2031-122 ~]# mkdir -p /ftp/public /var/www/web2
[root@Jw2031-122 ~]# echo "虚拟用户1" >/ftp/public/user1.txt
[root@Jw2031-122 ~]# echo "虚拟用户2" >/var/www/web2/user2.txt
[root@Jw2031-122 ~]# chown user2 /ftp/public /var/www/web2
[root@Jw2031-122 ~]# chmod -R 755 /ftp/public /var/www/web2

2.创建存放虚拟用户

[root@Jw2031-122 ~]# cat /etc/vsftpd/v_user.txt
zhang3
345
li4
678
[root@Jw2031-122 ~]#

3.检查是否安装db_load转换工具

[root@Jw2031-122 ~]# rpm -qf /usr/bin/db_load
libdb-utils-5.3.21-17.el7.x86_64
[root@Jw2031-122 ~]#

4.将虚拟用户文件转化数据库文件

[root@Jw2031-122 ~]# db_load -T -t hash -f /etc/vsftpd/v_user.txt /etc/vsftpd/v_user.db
[root@Jw2031-122 ~]# file /etc/vsftpd/v_user.db
/etc/vsftpd/v_user.db: Berkeley DB (Hash, version 9, native byte-order)
[root@Jw2031-122 ~]# chmod 600 /etc/vsftpd/v_user*
[root@Jw2031-122 ~]#

5.建立用户登录时进行身份验证的PAM认证文件

[root@Jw2031-122 ~]# cp -p /etc/pam.d/vsftpd /etc/pam.d/vuser.v
[root@Jw2031-122 ~]# vim /etc/pam.d/vuser.v
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/v_user
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/v_user
:wq!

6.修改主配置文件

[root@Jw2031-122 ~]# vim /etc/vsftpd/vsftpd.conf

17 local_enable=YES ##使用虚拟用户一定要启用本地用户

126 pam_service_name=vuser.vu ##指定对虚拟用户进行PAM认证的文件名vuser.vu

128 guest_enable=YES ##启动虚拟用户功能,允许虚拟用户登录

129 guest_username=user2 ##指定虚拟用户对应本地用户

130 uest_config_dir=/etc/vsftpd/vconfig ##指定虚拟用户的配置文件存放位置

131 virtual_use_local_privs=YES ##虚拟用户和本地用户有相同权限

132 allow_writeable_chroot=YES ##修复用户家目录因有写权限而出现的访问出错

7.为虚拟用户分别建立专用配置文件