一、匿名开放模式(最不安全)

1、[root@localhost ~]# vim  /etc/vsftpd/vsftpd.conf  (主配置)

anonymous_enable=YES    //允许匿名访问模式
anon_umask=022                //匿名用户上传文件的的umask值
anon_upload_enable=YES      //允许匿名用户上传文件
anon_mkdir_write_enable=YES   //允许匿名用户创建目录
anon_other_write_enable=YES     //允许匿名用户修改目录名称或删除目录
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2、[root@localhost ~]# systemctl restart vsftpd
3、[root@localhost ~]# systemctl enable vsftpd
4、[root@localhost ~]# yum install -y ftp  (命令行管理工具)
注:该模式默认用户为anonymous,密码为空,默认访问目录/var/ftp
5、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir zjz1  (创建新文件夹)
257 "/pub/zjz1" created
ftp> rename zjz1  zjz2  (改名)
350 Ready for RNTO.
250 Rename successful.
ftp> rmdir zjz2  (删除)
250 Remove directory operation successful.
ftp> exit  (退出)
221 Goodbye.
注:第一次做时权限不够。解决:1、[root@localhost ~]# chown -Rf ftp /var/ftp/pub

2、[root@localhost ~]# getsebool -a | grep ftp ;[root@localhost ~]# setsebool -p  ftpd_full_access=on (或直接关闭selinux)
3、关闭防火墙

二、本地用户模式

1、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO  //禁止匿名访问
local_enable=YES   //允许本地用户模式
write_enable=YES   //设置可写权限
local_umask=022   // //本地用户创建文件的的umask值
userlist_enable=YES   //启用“禁止用户名单”,名单文件为ftpusers 和 user_list

userlist_deny=YES  //开启用户作用名单文件功能
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2、[root@localhost ~]# systemctl restart vsftpd

3、[root@localhost ~]# systemctl enable vsftpd

4、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): root  (被拒绝)
530 Permission denied.
Login failed.
ftp>

5、[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh 
注:上面两个文件夹就是禁止名单,root被禁止对系统更安全

6、[root@localhost ~]# ftp 192.168.40.132
Connected to 192.168.40.132 (192.168.40.132).
220 (vsFTPd 3.0.2)
Name (192.168.40.132:root): cui  (本地用户)    
331 Please specify the password.
Password:  (要密码)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

其余同匿名模式

三、虚拟用户模式(最安全)

1、[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh 
[root@localhost vsftpd]# vim vuser.list  (创建用户数据库文件)
zhagnsan
123456 (密码)
lisi
123##  (密码)
2、[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db  (哈希加密)
3、[root@localhost vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
4、[root@localhost vsftpd]# chmod 600 vuser.db
5、[root@localhost vsftpd]# rm   -rf   vuser.list

6、[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin  virtual  (创建本地用户,指定家目录,禁止本地用户登录,这个账户映射到虚拟用户)

7、[root@localhost ~]# ls -ld  /var/ftproot/
drwx------ 2 virtual virtual 62 Sep 15 08:17 /var/ftproot/
8、[root@localhost ~]# chmod -Rf 755  /var/ftproot/
9、[root@localhost ~]# vim /etc/pam.d/vsftpd.vu   (PAM一组安全机制模块)
auth required pam_userdb.so  db=/etc/vsftpd/vuser
account required pam_userdb.so  db=/etc/vsftpd/vuser
10、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES     //开启虚拟用户模式
guest_username=virtual   //指定虚拟用户账户
allow_writeable_chroot=YES  //允许被禁锢的ftp根目录执行写入操作,而且不拒绝用户的登录请求
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu  //指定pam文件
userlist_enable=YES
tcp_wrappers=YES
11、[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/
[root@localhost ~]# cd /etc/vsftpd/vusers_dir/
[root@localhost vusers_dir]# touch lisi
[root@localhost vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

12、[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
.....同上
user_config_dir=/etc/vsftpd/vusers_dir
13、[root@localhost ~]# systemctl restart vsftpd
       [root@localhost ~]# systemctl enable vsftpd

注:粘贴复制时候会有空格,注意删除空格

ftp服务器三种模式的更多相关文章

  1. 用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法

    前言 决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表 ...

  2. FTP服务器访问主动模式、被动模式

    在公司里面,经常需要访问外网FTP取资料等情况.但是有时用windows界面访问经常遇到各种问题. 下面介绍两种客户端是如何访问ftp服务器. 首先我们需要说明:防火墙,是阻拦外界与内部的通讯的一道关 ...

  3. git push :推送本地更改到远程仓库的三种模式

    摘要:由于在git push过程中,no-fast-forward 的push会被拒绝,如何解决git push失败的问题?这里面有三种方法,分别会形成merge形式的提交历史,线性形式的提交历史,覆 ...

  4. [转]VMware Workstation网络连接的三种模式

    经常要使用VMWare Workstation来在本地测试不同的操作系统,以前也搞不清楚网络连接三种模式,最近看了几篇文章才算明白.现总结如下: 1. VMware Workstation的虚拟网络组 ...

  5. LVS三种模式配置及优点缺点比较

    目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种(LVS-DR,LVS-NAT,LVS-TUN)模式的简要配置 LVS是什么: http://www.lin ...

  6. LVS三种模式配置及优点缺点比较 转

    LVS三种模式配置及优点缺点比较   作者:gzh0222,发布于2012-11-12,来源:CSDN   目录: LVS三种模式配置 LVS 三种工作模式的优缺点比较 LVS三种模式配置 LVS三种 ...

  7. VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT

    VMware虚拟机上网络连接(network type)的三种模式--bridged.host-only.NAT VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换 ...

  8. 应用负载均衡之LVS(一):基本概念和三种模式

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  9. LVS(一):基本概念和三种模式

    网站架构中,负载均衡技术是实现网站架构伸缩性的主要手段之一.所谓"伸缩性",是指可以不断向集群中添加新的服务器来提升性能.缓解不断增加的并发用户访问压力. 负载均衡有好几种方式:h ...

随机推荐

  1. ebay API属性

    Ebay Trading API整理 纠纷相关 AddDispute:创建一个未支付纠纷 或 取消 a single line item order AddDisputeResponse:回复/关闭d ...

  2. git最最最最...常用命令

    使用git 也有一段时间了,但是一直没有好好的去学下:今天刚好有空,就把自己不足的地方补了一下:废话就不多说了,直接步入正题: 1:git 如何提交代码 以及 如何拉代码 git clone可以将远程 ...

  3. IView 使用Table组件时实现给某一列添加click事件

    通过给 columns 数据的项,设置一个函数 render,可以自定义渲染当前列,包括渲染自定义组件,它基于 Vue 的 Render 函数. render 函数传入两个参数,第一个是 h,第二个是 ...

  4. python类内置方法的再学习

    对于__setitem__和__getitem__方法:其入参看来是固定的(__getitem__(self, item),__setitem__(self, key, value)),我们并不需要重 ...

  5. Acwing-99-激光炸弹(二维前缀和)

    链接: https://www.acwing.com/problem/content/101/ 题意: 一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标. 现在地图上有 N 个目标, ...

  6. JavaScript基础——JavaScript常量和变量(笔记)

    JavaScript常量和变量(笔记) Javascript代码严格区分大小写. javascript暂不支持constant关键字,不允许用户自定义常量. javascript使用var关键字声明变 ...

  7. head first 设计模式笔记7-适配器模式与外观模式

    适配器模式:将一个类的接口,转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容.这可以让客户从实现的接口解耦.如果在一 ...

  8. 2018中国大学生程序设计竞赛 - 网络选拔赛 Find Integer

    Find Integer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  9. 1003: [ZJOI2006]物流运输

    就我一开始写状压的吗? 调不过 后来发现(直接搜索)直接最短路就行了-- \(f[i]\)表示前\(i\)天最少需要多少 \(f[i] = min(f[j] + dis(j + 1, i))\) 然后 ...

  10. confluence 附件docx文件 乱码处理

    服务器安装字体库 Fontconfig是一个用于配置和自定义字体访问的库 yum -y install fontconfig 拷贝需要的字体文件 fonts.zip(或自己电脑中的字体文件c:/Win ...