网络服务—VSFTP
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的更多相关文章
- linux上配置网络/安装vsftp服务器
1 准备用yum方式安装,小红帽linux原版不注册无法适用,只好安装centos系统 2 安装好centos系统注意事项: 硬盘得是IDE 配置好网络必须通,eth0的配置文件设置一下,联网启用 c ...
- Linux下网络服务的安全设置
Linux下网络服务的安全设置 Linux操作系统由于其良好的稳定性.健壮性.高效性和安全性.正在成为各种网络服务的理想平台.各种网络应用在Linux系统上部有性能卓越的应用,例如,提供We ...
- [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-selinux-services1/index.html?ca=drs- 引言 SELinux ...
- Salesforce Apex页面中调用远端网络服务
本文介绍了Salesforce Apex页面中调用远端网络服务的实现过程. ### 注册远端网络服务 在使用Apex代码调用远端网络服务之前,首先需要在Salesforce中注册远端网络服务地址, 本 ...
- 1、linux网络服务实验 用PuTTY连接Linux
这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...
- /etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】
http://blog.csdn.net/kelven2004/article/details/1701930 xinetd 是 inetd 的安全加强版,它内置了自己的 TCP wrapper, 可 ...
- 在docker里部署网络服务
之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...
- Nodejs·网络服务
本章是从NodeJS拥有的模块角度,讲述了网络服务中的应用: net ----- > TCP dgram --> UDP http -----> HTTP https ----> ...
- linux配置oracle11G监听及本地网络服务 及 数据库建库
配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...
随机推荐
- centos7.6 安装Mysql5.7
#安装Mysqlwget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmyum localinstall mys ...
- Day6 - Python基础6 模块shelve、xml、re、subprocess、pymysql
本节目录: 1.shelve模块 2.xml模块 3.re模块 4.subprocess模块 5.logging模块 6.pymysql 1.shelve 模块 shelve模块是一个简单的k,v将内 ...
- redis在centos7下安装(源码编译)
下载 地址:http://www.redis.cn/download.html 下载稳定版本 把安装包上传到服务器 linux下安装 解压 进入解压后的目录,编译 创建目录,安装并指定目录 修改配置 ...
- 在windows环境下部署nuxt项目(线上发布部署)
因为公司项目需要兼容SEO,同时我们也一直希望能够真正的实现前后端分离,于是毫不犹豫的选择了nuxt. 话说要重构前后端分离真是一个大工程,由于各种原因我们团队花了近两年时间都没有完成,最近才又重启把 ...
- 【shell脚本】优化内核参数===
一.Linux内核参数优化 Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysct ...
- 巧妙利用selenium中的JS操作来处理特殊的文本框
在使用selenium对页面进行相关操作时,有时候会遇到以下三种情况: 1.日期框:无法直接输入文本,必须要选择某一天的日期并点击才会填入文本框: 2.检索框:可以直接输入文本,但必须要点击根据输入的 ...
- sql server相邻表记录交换(单双两两交换)
在博客园的博问中看到了一个这样的提问:一个表中有id和name两个字段,id是连续非空不重复的,想要交换相邻表记录的name值(单双两两交换). 另外,如果最后的单独行没有对应的下一行匹配记录的话,就 ...
- PageHelper使用以及PageInfo中分页对象的转化
在使用Mybatis查询数据库展示到前端的过程中不可避免的要考虑到分页问题,这时就引入了Mybatis的PageHelper插件,这个插件对分页功能进行了强有力的封装,只需要将查询出来的数据List集 ...
- Vue修改单个组件的背景颜色
组件默认背景颜色为白色,但工作需要改成黑色,于是研究了一番. 很简单,只需在组件中使用两个钩子函数beforeCreate (),beforeDestroy () 代码如下: beforeCreate ...
- Java电商项目-1.构建数据库,搭建项目环境
目录 到Github获取源码请点击此处 一. 数据库还原 二. Mybatis逆向生成工具的使用 三. 搭建项目环境 四. 在linux虚拟机上部署zookeeper, 搭建Dubbo服务. linu ...