centos7搭建vsftp

目录

vsftp简介

vsftp虚拟用户配置

一、安装vsftp包

二、 创建虚拟用户账户和密码

 三、创建一个文件目录,然后在文件目录下创建用来存储虚拟用户权限的文件

四、生成虚拟用户数据文件

五、 设置PAM验证文件,并制定虚拟用户数据库文件进行读取

六、 修改vsftp的主配置文件

七、创建文件夹用来做虚拟用户的文件存储位置以及重启服务,使服务配置文件生效,以及关闭防火墙和selinux 

 八、对vsftp进行测试


vsftp简介

                vsftp服务有三种用户认证服务,分别是匿名用户,本地用户,虚拟用户模式,一般来说虚拟用户配置用的比较多。

                vsftp呢他有两种传输文件方式,分别是主动传输模式和被动传输模式。

                主动传输模式是ftp客户端首先和ftp服务段的21端口建立连接,通过这个通道发送命令,客户端要接受数据的时候在这个通道上发送Port命令,Port命令包含了客户端用什么端口(一个大于1024的端口)接受数据,在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。这个时候数据连接由server向client建立一个连接。

                主动模式之间采用的交互流程是client链接server的21端口,并发送用户名密码和一个随机在1024上的端口及port命令给server,表明采用主动模式,并开放那个随机的端口。server端:server收到client发来的Port主动模式命令与端口后,会通过自己的20端口与client那个随机的端口连接后,进行数据传输。

                被动传输模式:被动传输模式的建立控制通道和主动传输模式相似,当客户端通过这个通道发送Pasv命令的时候,Ftp server打开了一个位于1024和5000之间的随机端口并且通知客户端在这个端口上进行传输数据请求,然后Ftp server将通过这个端口进行数据传输。这个时候数据连接由client向server建立连接。

                被动模式之间采用的交互流程是client连接server的21号端口,发送用户名密码及pasv命令给server,表明采用被动模式。然后server收到client发来的pasv被动模式命令之后,把随机开放在1024上的端口告诉client,client再用自己的20 端口与server的那个随机端口进行连接后进行数据传输。

                如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,这一点非常关键,如果设置错了,那么客户将无法连接。

                以上理论内容通过修改部分内容转载于简介vsftpd及搭建配置 - 厉害了我 - 博客园 (cnblogs.com)这位大佬的博客内容

vsftp虚拟用户配置

一、安装vsftp包

        

yum install -y vsftpd    //安装vsftp包
rpm -qa | grep vsftpd    //检查包是否安装成功

二、 创建虚拟用户账户和密码

vi /etc/vsftpd/vuser     //在这个文件里面输入自己要创建的虚拟用户和密码奇数行是用户,偶数行是密码

 三、创建一个文件目录,然后在文件目录下创建用来存储虚拟用户权限的文件

mkdir /etc/vsftpd/user.list     //创建一个文件目录,这个文件目录用来存储虚拟用户的权限文本
vi /etc/vsftpd/user.list/user1  //在这个文本里面写入虚拟用户的权限。如果有多个用户的话,需要创建多个文本,不能一个目录用来存储多个虚拟用户权限
###########下面的这个是我在/etc/vsftpd/user.list/user1里面写入的用户权限
anon_upload_enable=yes       //允许用户上传文件
anon_mkdir_write_enable=yes       //允许用户创建目录
anon_other_write_enable=yes       //允许用户有其他的写入权限
local_root=/ftpuser1         //用户目录所在位置

四、生成虚拟用户数据文件

cd /etc/vsftpd/       //切换至vsftp的配置文件目录
db_load -T -t hash -f vuser vuser.db        //生成虚拟用户数据文件

五、 设置PAM验证文件,并制定虚拟用户数据库文件进行读取

vi /etc/pam.d/vsftpd      //修改pam验证文件
##########以下是我在/etc/pam.d/vsftpd文件下修改的配置文件,我之所以选择将我配置文件里面注释掉呢,是因为他到时候万一出错了,还可以修改,在此我建议大家做服务的时候最好先备份一份原有的配置文件,避免出错了,还不记得原有的配置文件
1 #%PAM-1.0
2 #session    optional     pam_keyinit.so    force revoke
3 #auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpuse        rs onerr=succeed
4 auth       required     pam_userdb.so   db=/etc/vsftpd/vuser
5 #auth       include     password-auth
6 account    required     pam_userdb.so   db=/etc/vsftpd/vuser
7 #session    required     pam_loginuid.so
8 #session    include     password-auth

六、 修改vsftp的主配置文件

vi /etc/vsftpd/vsftpd.conf       //进入vsftp主配置文件,进行修改
########以下是我修改添加的vsftp主配置文件
129 pam_service_name=vsftpd     //设定pam服务下的vsftpd验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。
130 userlist_enable=YES        //设定userlist_file中的用户将不能使用ftp
131 tcp_wrappers=YES           //设定支持TCPwrappers
132 guest_enable=yes           //启用虚拟用户功能
133 guest_username=ftp         //指定虚拟的宿主用户
134 user_config_dir=/etc/vsftpd/user.list       //设定虚拟用户个人vsftp的配置文件存放路劲
135 allow_writeable_chroot=yes      //

七、创建文件夹用来做虚拟用户的文件存储位置以及重启服务,使服务配置文件生效,以及关闭防火墙和selinux 

mkdir /ftpuser1     //创建ftpuser1文件夹
chmod 777 /ftpuser1    //修改我们创建的用户文件夹权限,这里我给777是因为懒不想改,自己做的话还是尽量修改一下配置文件的权限,最好别一股脑的给777权限,这样会导致自己的Linux服务器变得不安全
systemctl restart vsftpd      //重启vsftp服务
systemctl stop firewalld.service       //关闭防火墙
etenforce 0      //临时关闭selinux

 八、对vsftp进行测试

 测试结果表明可以上传文件和下载文件,至此vsftp服务器算是成功的做了下来,如果我以上有的地方说的不对,请各位大佬指正。在此非常感谢各位的观看

猜你喜欢

转载自blog.csdn.net/m0_61344379/article/details/120875847