vsftpd服务

我的虚拟机操作系统

  Operating System: Red Hat Enterprise Linux Server 7.0 (Maipo)

常遇到的报错

 500                                      ###权力过大
 530                                      ###认证失败
 550                                      ###无写权限
 553                                      ###权限问题

安装vsftp服务

yum install vsftpd  -y                                           ###安装vsftpd服务
systemctl start vsftpd                                           ###启动服务
systemctl stop firewalld                                         ###关闭防火墙
systemctl enable vsftpd                                          ###开机自动启动服务

vsftpd文件信息

可通过rpm -qc vsftpd 查出配置文件的目录

 /var/ftp                                                        ###默认发布目录
 /etc/vsftpd                                                     ###配置目录

vsftpd配置参数

匿名用户登陆设定

 vim /etc/vsftpd/vsftpd.conf                                     ###配置文件
 anonymous_enable=YES|NO                                         ###匿名用户登陆限制(YES为默认,即可以登陆)

vsftpd服务_第1张图片

匿名用户上传

 vim /etc/vsftpd/vsftpd.conf
 write_enable=YES                                                    ###匿名用户可写权限
 anon_upload_enable=YES                                              ###匿名用户上传权限(29行)
 chgrp ftp /var/ftp/pub或chown .ftp /var/ftp/pub
 chmod 775 /var/ftp/pub

如果不改权限

 lftp 172.25.254.156:/pub> put /etc/passwd
 put: Access failed: 553 Could not create file. (passwd)             ###权限报错

vsftpd服务_第2张图片

匿名用户家目录修改

 anon_root=/dream                                                  ###在配置中加入

vsftpd服务_第3张图片

匿名用户上传文件默认权限修改

 anon_root=/dream                                               ###把家目录修改注释掉
 anon_umask=000                                                 ###在配置中加入

可以发现匿名用户上传的文件权限变为666了

vsftpd服务_第4张图片

匿名用户建立目录

 anon_umask=000                                              ###把默认权限修改注释掉  
 anon_mkdir_write_enable=YES                                 ###可以创建目录(35行)            

vsftpd服务_第5张图片

匿名用户下载

可通过man vdftpd.conf查到

 anon_world_readable_only=YES|NO                            ###YES表示用户只能读,设定参数值为NO表示匿名用户可以下载

vsftpd服务_第6张图片

匿名用户删除

 anon_other_write_enable=YES|NO                            ###YES后可以删除与更名

vsftpd服务_第7张图片

匿名用户使用的用户身份修改

 chown_uploads=YES                                      ###打开后将会以chown_username设定的用户登陆
 chown_username=dream                                   ###匿名用户指定的登陆用户(52行)
 chown_upload_mode=0644                                 ###上传生成的文件权限(优先它的权限)

我们不难可以看出匿名用户以dream的身份登陆

vsftpd服务_第8张图片

上传速率设置

 anon_max_rate=102400                                  ###设置上线为100KB                    

vsftpd服务_第9张图片

最大链接数

 max_clients=1                                       ###设置连接数为1

vsftpd服务_第10张图片

本地用户设定

登陆限制

 local_enable=NO                                    ###本地用户登陆限制
 write_enable=YES                                   ###把本地用户登陆限制改成YES便可以登陆了

vsftpd服务_第11张图片

本地用户家目录修改

 local_root=/dream                                ###此目录有我们之前建好的东西

vsftpd服务_第12张图片

本地用户上传文件权限

 local_umask=022

vsftpd服务_第13张图片

限制本地用户浏览其他目录

所有用户被锁定到自己的家目录中

 chroot_local_user=YES  
 chmod u-w /home/*

如果不改变权限会有500报错

vsftpd服务_第14张图片

修改权限后

vsftpd服务_第15张图片

用户白名单名单建立

 chroot_local_user=YES                                    ###YES时为白名单只有名单中的用户能改变目录
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

vsftpd服务_第16张图片

vsftpd服务_第17张图片

用户黑名单名单建立

 chroot_local_user=NO                                     ###NO时只有名单中的用户不能改变目录
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

vsftpd服务_第18张图片

vsftpd服务_第19张图片

限制本地用户登陆

用户黑名单设定

 vim /etc/vsftpd/ftpusers                              ###用户黑名单
 vim /etc/vsftpd/user_list                             ###用户临时黑名单

vsftpd服务_第20张图片

用户白名单设定

注意:如果在/etc/vsftpd/user_list中设置dream用户,/etc/vsftpd/ftpusers也设置,用户dream将不能登陆

 userlist_deny=NO                               ###修改配置
 /etc/vsftpd/user_list                          ###此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

vsftpd服务_第21张图片

ftp虚拟用户的设定

创建虚拟帐号身份

 [root@ftp ~]# vim /etc/vsftpd/dream                                             ###名字可以任意
 [root@ftp ~]# cat /etc/vsftpd/dream
 dream1
 123
 dream2
 123
 dream3
 123
 [root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/dream /etc/vsftpd/dream.db       ###加密帐号密码
 [root@ftp ~]# ls /etc/vsftpd/
 chroot_list  dream.db  user_list    vsftpd_conf_migrate.sh
 dream        ftpusers  vsftpd.conf

我们可以看一下默认的路径,其实我们现在就是在建立这个的过程中

vsftpd服务_第22张图片

vsftpd服务_第23张图片

 [root@ftp pam.d]# vim /etc/pam.d/dream
 [root@ftp pam.d]# cat /etc/pam.d/dream
 account        required    pam_userdb.so   db=/etc/vsftpd/dream
 auth           required    pam_userdb.so   db=/etc/vsftpd/dream
 [root@ftp pam.d]# vim /etc/vsftpd/vsftpd.conf 
 pam_service_name=dream                        ###制定读取的文件为/etc/pam.d/dream
 guest_enable=YES                              ###虚拟用户登陆
 guest_username=dream                          ###登陆虚拟用户时以dream用户身份登陆

如果不可以登陆500报错,表示权限过大执行:chmod u-w /home/dream

vsftpd服务_第24张图片

虚拟帐号家目录独立设定

可以发现上面的方法登陆的目录都为dream的目录,下面就是家目录的独立的方法介绍

 [root@ftp pam.d]# vim /etc/vsftpd/vsftpd.conf 
 local_root=/ftphome/$USER
 user_sub_token=$USE
 [root@ftp pam.d]# mkdir -p /ftphome/dream{1..3}/pub
 [root@ftp pam.d]# chown .dream -R /ftphome/
 [root@ftp pam.d]# chmod g+s /ftphome/ -R                    ###让自己可以删除自己的建的文件
 [root@ftp pam.d]# touch /ftphome/dream1/pub/file1
 [root@ftp pam.d]# touch /ftphome/dream2/pub/file2
 [root@ftp pam.d]# touch /ftphome/dream3/pub/file3
 [root@ftp pam.d]# systemctl restart vsftpd.service

vsftpd服务_第25张图片

vsftpd服务_第26张图片

注意:对文件开权限,不能开上层目录的权限会报错,这里的虚拟用户的权限是看匿名用户的权限

vsftpd服务_第27张图片

虚拟帐号配置独立

把虚拟用户的权限关了

vsftpd服务_第28张图片

 [root@ftp pam.d]# vim /etc/vsftpd/vsftpd.conf 
 user_config_dir=/etc/vsftpd/userconf
 [root@ftp pam.d]# mkdir -p /etc/vsftpd/userconf
 [root@ftp pam.d]# vim /etc/vsftpd/userconf/dream1
 [root@ftp pam.d]# systemctl restart vsftpd.service

/etc/vsftpd/userconf/dream1中的配置

vsftpd服务_第29张图片

vsftpd服务_第30张图片

虚拟帐号和普通用户同时存在

配置vsftpd.conf

 [root@ftp pam.d]# vim /etc/vsftpd/vsftpd.conf 
 pam_service_name=vsftpd                        ###修改回vsftpd

配置pam.d

[root@ftp pam.d]# vim /etc/pam.d/vsftpd
###这二条要写到上面,下面会报错,required不能进行认证,修改为sufficient
account    sufficient   pam_userdb.so db=/etc/vsftpd/dream
auth       sufficient pam_userdb.so db=/etc/vsftpd/dream

session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ft
pusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

这样普通用户和虚拟用户就可以同时进行登陆了!!!

你可能感兴趣的:(vsftpd,虚拟用户,linux,red,hat,虚拟用户独立,运维)