VSFTP连接类型

控制连接(持续连接)-->  TCP21(命令信道)--> 用户收发FTP命令

数据连接(按需连接)-->TCP20(数据信道)-->  用于上传下载数据

工作模式

Port模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

注意:很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口

而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

安装vsftp

[root@localhost ~]# yum -y install vsftpd

[root@localhost ~]# yum -y install ftp      #安装ftp命令

匿名用户验证:

a.      用户账号名称:ftp或anonymous

b.      用户账号密码:空或任意字符

c.      服务器目录:/var/ftp

d.      权限:可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)

e.      匿名权限控制:

anonymous_enable=YES             启用匿名访问

anon_umask=022                         匿名用户所上传文件的权限掩码

anon_root=/var/ftp                      匿名用户的FTP根目录

anon_upload_enable=YES           允许上传文件

anon_mkdir_write_enable=YES   允许创建目录

anon_other_write_enable=YES   开放其他写入权(删除、覆盖、重命名)

anon_max_rate=0                         限制最大传输速率

特点:配置简单,所有登录者使用相同的用户登录

本地用户验证

a.      用户账号名称:本地用户(/etc/passwd)

b.      用户账号密码:用户密码(/etc/shadow)

c.      工作目录为:登录用户的宿主目录

d.      权限:最大权限(drwx------)

e.      本地用户权限控制:

local_enable=YES                是否启用本地系统用户

local_umask=022                 本地用户所上传文件的权限掩码

local_root=/var/ftp             设置本地用户的FTP根目录

chroot_local_user=YES       是否将用户禁锢在主目录

local_max_rate=0                限制最大传输速率

        dirmessage_enable=YES    打印目录显示信息,通常用于用户第一次访问目录时,信息提示。

        xferlog_enable=YES      启用上传/下载日志记录。

        connect_from_port_20=YES    使用20端口进行数据传输。

        xferlog_std_format=YES   日志文件将根据xferlog的标准格式写入。   

ftpd_banner=Welcome to blah FTP service          用户登录时显示的欢迎信息

banner_file=/目录                弹出一个说明,可以做哪些操作

userlist_enable=YES & userlist_deny=YES

        listen=YES    vsftpd不以独立的服务启动,通过xinetd服务管理,建改成YES

        listen_ipv6=YES    启用ipv6监听。

        pam_service_name=vsftpd    登录ftp服务器,依据/etc/pas.d/vsftpd中内容进行认证。
        userlist_enable=YES       vsftpd.user_list和ftpusers配置文件里用户禁止访问ftp
        tcp_wrappers=YES        设置vsftpd与tcp wrapper结合进行主机的访问控制。vsftpd服务器检查站/etc/hosts.allow和/etc/hosts.deny中的设置来决定请求连接的主机是否允许访问该FTP服务器。

禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP

userlist_enable=YES & userlist_deny=NO

仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

ftpusers

禁止/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,权限比user_list更高,即时生效

f.       特点:配置相对复杂,可以设置严格的权限,有安全隐患

主动模式改为被动模式

    pasv_enable=YES

    pasv_min_port=60000

    pasv_max_port=60100

虚拟用户验证实验

[root@localhost ~]# vi /etc/vsftpd/vsftpd.user

zhangsan
123456
lisi
123456

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# db_load -T -t hash -f vsftpd.user vsftpd.db

[root@localhost vsftpd]# chmod 600 vsftpd.db

[root@localhost vsftpd]# useradd  -d  /var/ftproot  -s  /sbin/nologin  virtual

[root@localhost vsftpd]# cp -a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam

[root@localhost vsftpd]# vi /etc/pam.d/vsftpd.pam

#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vsftpd
account required pam_userdb.so db=/etc/vsftpd/vsftpd

[root@localhost ~]# useradd -s /sbin/nologin ftpuser

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.pam

guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/dir

[root@localhost ~]# mkdir /etc/vsftpd/dir

分别为虚拟用户zhangsan和lisi创建配置文件

允许上传文件

[root@localhost vsftpd]# vi /etc/vsftpd/dir/zhagnsan

anon_upload_enable=YES

允许创建目录

[root@localhost vsftpd]# vi /etc/vsftpd/dir/lisi

anon_mkdir_write_enable=YES

网络服务—VSFTP的更多相关文章

  1. linux上配置网络/安装vsftp服务器

    1 准备用yum方式安装,小红帽linux原版不注册无法适用,只好安装centos系统 2 安装好centos系统注意事项: 硬盘得是IDE 配置好网络必须通,eth0的配置文件设置一下,联网启用 c ...

  2. Linux下网络服务的安全设置

    Linux下网络服务的安全设置      Linux操作系统由于其良好的稳定性.健壮性.高效性和安全性.正在成为各种网络服务的理想平台.各种网络应用在Linux系统上部有性能卓越的应用,例如,提供We ...

  3. [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS

    原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-selinux-services1/index.html?ca=drs- 引言 SELinux ...

  4. Salesforce Apex页面中调用远端网络服务

    本文介绍了Salesforce Apex页面中调用远端网络服务的实现过程. ### 注册远端网络服务 在使用Apex代码调用远端网络服务之前,首先需要在Salesforce中注册远端网络服务地址, 本 ...

  5. 1、linux网络服务实验 用PuTTY连接Linux

    这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...

  6. /etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】

    http://blog.csdn.net/kelven2004/article/details/1701930 xinetd 是 inetd 的安全加强版,它内置了自己的 TCP wrapper, 可 ...

  7. 在docker里部署网络服务

    之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...

  8. Nodejs·网络服务

    本章是从NodeJS拥有的模块角度,讲述了网络服务中的应用: net ----- > TCP dgram --> UDP http -----> HTTP https ----> ...

  9. linux配置oracle11G监听及本地网络服务 及 数据库建库

    配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...

随机推荐

  1. 【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

    目录 1 将有约束问题转化为无约束问题 1.1 拉格朗日法 1.1.1 KKT条件 1.1.2 拉格朗日法更新方程 1.1.3 凸优化问题下的拉格朗日法 1.2 罚函数法 2 对梯度算法进行修改,使其 ...

  2. mybatis之关联关系

    前言:在我们之前的hibernate中我们是学过了关联关系的,所以我们在本章给讲一讲mybatis的关联关系. mybatis的关联关系一对多的测试1.通过逆向工程生成Hbook,HbookCateg ...

  3. configparser读取配置文件时的相对路径问题

    学习接口测试时,当我把配置文件xx.config和读取配置文件的模块read_config.py放在项目下的同一个包config里时,只需传入文件名xx.config即可实现对配置文件的读取. 但是当 ...

  4. 《算法问题实战策略》 BOGGLE

    oj地址是韩国网站 连接比较慢 https://algospot.com/judge/problem/read/BOGGLE大意如下 输入输出 输入 URLPM XPRET GIAET XTNZY X ...

  5. electron内监控目标网站cookie的变化,查找指定的cookie

    let cookieInstance = win.webContents.session.cookies; cookieInstance.on('changed', (e, cookie, cause ...

  6. Python 爬虫介绍,什么是爬虫,如何学习爬虫?

    ​ 作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘.不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目. 爬虫是 ...

  7. 初学者用js做的计算题

    1.苹果3元一个,鸭梨2元一个,桃子1元一个.现在想用200元买100个水果,在控制台中打印出来. var apple = 0; //苹果 var pear = 0; //梨 var peach = ...

  8. Nginx之前后端分离(入门)

    几个月前,公司架构优化,首先就是前后端分离. 所谓前后端分离,就是在传统的前后端代码都在一个项目里的基础上,将前后端代码抽离,把前端代码从后端项目了分离出来,前后端开发人员各自在自己的项目里开发. 为 ...

  9. python多进程multiprocessing Pool相关问题

    python多进程想必大部分人都用到过,可以充分利用多核CPU让代码效率更高效. 我们看看multiprocessing.pool.Pool.map的官方用法 map(func, iterable[, ...

  10. Linux 网络相关命令 Cheat Sheet

    以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -