目录
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服务器算是成功的做了下来,如果我以上有的地方说的不对,请各位大佬指正。在此非常感谢各位的观看
|