实验环境:
server主机的配置,client主机的配置。
server主机:selinux关闭,防火墙,本地软件仓库的配置。
client主机:selinux关闭,本地软件仓库的配置。
1.软件仓库的配置:
下载vsftpd:
关闭selinux:
下载lftp:
vsftpd基本信息:
服务名称:vsftpd.service
配置目录:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
默认发布目录:/var/ftp
报错信息:
550 程序本身拒绝
553 文件系统权限限制
500 权限过大
530 认证失败
lftp成功:
530认证失败:
550程序本身拒绝:
由于访问的主机用户没有开启匿名用户建立目录的权限:
553文件系统权限设置(权限过小):
编辑著配置文件,允许匿名用户上传更改为yes:
500权限过大,主要是安全有问题会产生该报错。
匿名用户访问控制:
1.让匿名用户可以访问
编辑文件 /etc/vsftpd/vsftpd.conf
2.修改默认ftp访问目录
通过lftp服务访问主机上时默认的访问目录为:/var/ftp/
3.匿名用户建立目录机制
编辑主配置文件,允许建立目录。
4.匿名用户上传文件控制
编辑主配置文件,把允许匿名用户上传改为yes
5.匿名用户下载控制
编辑主配置文件,使匿名用户可以下载不能读的文件。
6.匿名用户删除文件控制
编辑主配置文件,写入下图内容。
7.匿名用户上传文件时系统保留的权限设定
编辑主配置文件,写入下图内容。
8.匿名用户上传文件的用户身份及文件权限设定
编辑主配置文件,写入下图内容。
9.访问数量限制
编辑主配置文件,写入下列内容,更改最大访问的用户数目。
10.匿名用户上传速率控制
编辑主配置文件,写入下述内容,注意,这里参数的单位是字节
1.更改配置文件,允许匿名访问:
可以在浏览器中通过ftp访问:
访问成功:
可以通过lftp访问到一台主机上的某个用户:
(这里采用演示所用的图)
修改默认ftp的访问目录:
匿名用户建立目录控制:
匿名用户访问主机后建立目录失败:
编辑主配置文件,开启匿名用户访问:
这里也改为yes:
把/var/ftp/pub目录的权限设置为775让拥有组科协并且让拥有组变为ftp组:
匿名用户上传文件控制:
编辑主配置文件,允许匿名用户上传:
重启服务后,可以上传文件:
匿名用户下载控制:
anon_world_readable_only=NO 匿名用户可以下载不能读的文件
匿名用户删除文件控制:
anon_other_write_enable=YES|NO
编辑文件,写入下面的内容:
成功删除:
匿名用户上传文件时系统保留的权限设定:
匿名用户上传文件的用户身份及文件权限设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
访问数量控制:
访问速率控制:
需要注意的是,这里102400byte=100kb
本地用户的访问:
1.访问本地用户控制:
编辑文件,no表示拒绝访问本地用户。
2.访问本地用户时的访问目录控制:
3.访问本地用户后的可写功能控制:
4.访问本地用户上传文件的系统保留权限控制:
5.用户登录控制:
6.把用户锁在家目录中:
1.访问本地用户控制:
编辑文件,这里改为no为拒绝访问本地用户:
2.访问本地用户时的访问目录控制:
编辑文件,控制访问本地用户时的访问目录为westos。
3.访问本地用户后的可写功能控制:
改回yes后访问本地用户后可以对文件进行写操作。
4.访问本地用户上传文件的系统保留权限控制:
local_umask=077
5.用户登录控制
黑白名单:改完不用重启vsftp服务。
永久黑名单:
默认黑名单与白名单:
编辑文件:/etc/vsftpd/user_list
当userlist_deny=YES时为默认黑名单,只要用户在此默认黑名单内就无法访问该用户,但如果在 /etc/vsftpd/vsftpd.conf 中修改了 userlist_deny=NO,那这个默认黑名单就改为了白名单,只有在此白名单内的用户才可以被访问:
6.把用户锁在家目录里
名单里的内容改完就生效,不用重启服务,但在文件/etc/vsftpd/vsftpd.conf 中修改得重启服务才生效
注意:打开这个功能后,家目录不能可写,否则会访问失败
把全部用户锁在家目录中:
当下图为yes时会把全部用户锁在家目录中:
虚拟用户的访问:
1.建立模拟用户过程:
2.加密认证文件:
3.建立认证策略文件:
建立虚拟用户的过程:建立虚拟用户数据库文件 1、vim /etc/vsftpd/westos_user ## 编辑认证文件,自定义名字 内容: westos1 123 westos2 123 westos3 123 2、加密认证文件 db_load -T -t hash -f westos_user westos_user.db ## 加密认证文件 注:db_load命令是一种固定用法 -T #允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件 -t hash #指定读取数据文件的基本方法 -f #指定数据的源文件 3、编写认证策略文件westos_ftp cd /etc/pam.d/ vim westos_ftp account required pam_userdb.so db=/etc/vsftpd/westos_user auth required pam_userdb.so db=/etc/vsftpd/westos_user ##注意在这里系统会默认加上.db后缀,因此我们不需要添加后缀名 4、编写认证策略配置文件 pam_service_name=westos_ftp ##指定认证策略文件 guest_enable=YES ##指定虚拟用户功能开启 guest_username=ftp ##指定虚拟用户在ftp服务器上的 用户身份 ##指定的虚拟用户即可登录了,注意黑白名单的影响
虚拟用户家目录的设定:
local_root=/virtuserdir/$USER
user_sub_token=$USER
用户配置独立:
user_config_dir=/etc/vsftpd/user_config ##在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim/etc/vsftpd/user_config/westos1
anon_upload_enable=YES