Centos FTP服务器的原理以及虚拟用户的配置

前面笔者写过一篇"FTP本地用户"随笔,那只是一个案例,并没有完整的写出来作用、配置文件解析和原理,今天笔者将发布"FTP服务器的原理以及虚拟用户的配置"随笔

FTP服务的原理

  1. FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一
  2. 现在也一直有在用着FTP协议来进行各种文件的传输,FTP为人们提供了一种可靠的方式在网络上进行文件的共享
  3. FTP是C/S架构的服务,拥有一个服务器端和一个客户端,FTP底层通过TCP协议来作为传输协议,所以FTP协议是一种可靠的文件传输方式
  4. FTP提供了两个端口号,20和21号端口,20号是数据接口,提供数据之间的传输,21号是命令接口,提供命令之间的传输
  5. FTP服务端与客户端连接一般有两种模式:主动模式和被动模式


  † PORT(主动模式)

  • FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上的就行),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口
  • FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,进行发送数据


  † PASV(被动模式)

  • FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输


两种模式的区别和哪种比较适合

  • 主动模式和被动模式的不同简单概述为:

  † 主动模式传送数据时是"服务器"连接到"客户端"的端口

  † 被动模式传送数据是“客户端"连接到"服务器"的端口

  • 通常还是使用的是被动连接的模式,因为服务器端都有配置防火墙,而防火墙对于内网连接外网的端口一般是放行的,而外网来连接内网的端口则一般是有限制的,所以这时如果使用主动模式连接的话,端口可能被防火墙拦截,导致无法连接FTP服务
  • 如果要将内外的FTP通过NAT技术共享至外网,那么肯定需要选择被动连接才可行,可安全!

FTP服务程序"Vsftpd"的安装

  • vsftpd是Very Secure FTP的简写形式,从名字可以看出,提供了非常安全的FTP服务!
  • 这款软件是基于GPL开发的,被设计为Linux平台下稳定、快速、安全的FTP软件,它还支持IPv6以及SSL加密
  • 它支持很多其他的 FTP 服务器不支持的特征:

  † 非常高的安全性需求

  † 带宽限制

  † 创建虚拟用户

  • 在Linux Cnetos 系统中默认是没有安装Ftp服务程序"Vsftpd"的、如果要想使用vsftpd实现FTP数据共享,首先需要安装vsftpd软件,该软件已经在Centos光盘中(RPM格式)备配,如果没有光盘,也可以使用在线方式安装或者部署
  • 如果是本地安装,那么将光盘挂载至/mnt目录,配置本地yum源最后通过命令:yum -y install vsftpd 进行安装
[[email protected] ~]# mount /dev/cdrom /mnt/              //挂载到/mnt目录下
mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] ~]# cd /etc/yum.repos.d/                //进入yum源定义文件目录
[[email protected] yum.repos.d]# vim CentOS-Media.repo     //配置Yum源(扩展名是.repo)

[c6-media]                          				  //[]中是Yum源唯一的ID,名称可为任意字符串
name=CentOS-$releasever - Media                       //指定Yum源的名称,名称可为任意字符串
baseurl=file:///mnt                     			  //指定Yum源的URL路径,这里是我的光盘挂载路径
#        file:///media/cdrom/
#        file:///media/cdrecorder/
gpgcheck=0                         					  //安装软件是否检测签名“0为禁用,1为激活”
enabled=1                           				  //是否激活Yum源“0为禁用,1为激活”
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6   //检测签名的密钥文件

:wq!                            					 //保存并退出

[[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak   //移动该文件到当前目录并加上.bak,如果不注释掉这个默认会线上安装
[[email protected] ~]# yum -y install vsftpd
  • 如果是在线安装,首先保证Linux操作系统可以访问外网并且可以解析域名
[[email protected] ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121: icmp_seq=1 ttl=52 time=39.5 ms
64 bytes from 61.135.169.121: icmp_seq=2 ttl=52 time=39.9 ms
[[email protected] ~]# yum -y install vsftpd
[[email protected] ~]# chkconfig vsftpd on             //开机启动
[[email protected] ~]# service vsftpd start            //启动服务
[[email protected] ~]# netstat -ntulp | grep :21      //查看是否启动成功并监听
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      4117/vsftpd
  • 无论是Yum本地安装,还是通过在线Yum安装!都是安装的RPM格式的软件,该软件的主程序是/usr/sbin/vsftpd  以下是vsftpd相关的核心文件目录列表说明
[[email protected] ~]# rpm -ql vsftpd             //查看vsftpd的安装目录
/etc/logrotate.d/vsftpd 					 //日志轮转备份文件
/etc/pam.d/vsftpd 							 //基于PAM的vsftpd验证配置文件
/etc/rc.d/init.d/vsftpd 					 //vsftpd的启动文件,可使用server调用
/etc/vsftpd 								 //vsftpd的主目录
/etc/vsftpd/ftpusers 						 //默认的vsftpd的黑名单
/etc/vsftpd/user_list 						 //可通过主配置文件来设置该文件为黑名单或白名单
/etc/vsftpd/vsftpd.conf 					 //vsftpd的主配置文件
/usr/sbin/vsftpd 							 //vsftpd主程序
/var/ftp 									 //默认vsftpd共享目录

FTP服务程序"Vsftpd"的配置文件解析

  • 全局设置
listen=YES							 //是否监听端口,独立运行守护进程
listen_port=21						 //监听入站ftp请求的端口号
write_enable=YES 					 //是否允许写操作,全局开关
download_enable=YES 				 //如果设置为NO,则拒绝所有的下载请求
dirmessage_enable=YES 				 //用户进入目录是否显示消息
									 //在登陆的目录下创建一个.message文件写入登陆提示信息
xferlog_enable=YES					 //是否开启xferlog日志功能
xferlog_std_format=YES				 //xferlog日志格式
connect_from_port_20=YES			 //使用主动连接,启用20端口
pasv_enable=YES						 //是否启用被动连接
pasv_max_port=5000					 //被动连接最大端口号
pasv_min_port=6000					 //被动连接最小端口号
max_clients=1000 					 //最大可允许1000个客户端连接,0代表无限制
max_per_ip=0 						 //每个客户端的最大连接限制,0代表无限制
tcp_wrappers=YES 					 //是否启用tcp_wrappers
guest_enable=YES 					 //如果为YES 则所有的非匿名登录都映射为guest_username指定账户
guest_username=ftp 				 	 //设定来宾用户
user_config_dir/etc/vsftpd/conf 	 //指定目录,在该目录下可以为用户设置独立的配置文件选项
dual_log_enable=NO 					 //是否启用双日志功能,生存两个日志文件
  • 本地用户设置
local_enable=YES 				 	 //是否启用本地账户功能
local_max_rate=500000 				 //FTP服务器的匿名用户最大传输速率 B/s,0为无限制
local_umask=077 					 //本地账户权限掩码
chroot_local_user=YES 				 //为YES时在 chroot_list中不给用户切换到上级目录,其他都给与切换
chroot_list_enable=NO                //为YES时 在 chroot_list中给用户切换到上级目录,其他的不允许
									 //当这两个都为YES时 chroot_list_enable 优先
									 chroot_list_file=/etc/vsftpd/chroot_list         //chroot_list的文件目标
userlist_enable=YES 				 //是否启用userlist用户列表
userlist_deny=YES 					 //是否禁用userlist文件中的账户访问ftp
local_root=/ftp/common 				 //本地账户访问的FTP根路径
  • 匿名用户设置
anonymous_enable=YES		         //是否允许匿名用户登录
anon_mkdir_writ_enable=YES			 //是否允许匿名账户创建目录,默认禁止
anon_other_writ_enable=YES			 //是否允许匿名账户进行所有其他写操作
anon_umask=077						 //匿名上传权限掩码
anon_root=/var/ftp			         //匿名默认登陆的目录
anon_upload_enable=YES		         //是否允许匿名用户上传文件,则开启全局write_enable=YES
chown_uploads=YES					 //是否允许匿名用户改变上传文件的属主
chown_usernamed=xxx					 //属主改为xxx"与上面配套使用"
no_anon_password=YES		         //若是启动这项功能,则使用匿名登入时,不会询问密码
anon_max_rate=200000 				 //FTP服务器的匿名用户最大传输速率 B/s,0为无限制
  • vsfptd默认是不给匿名文件给予W权限的,所以想要匿名用户上传文件,就需要在匿名文件下创建一个新的文件给予777权限就可以了  
  • 点击下载主配置文件解析

FTP用户和文件共享

  • vsftpd是通过使用用户来作为管理单位的,想要访问某个ftp的共享文件,必须要以某一特定的用户身份登陆,我们可以配置一下几种类型的用户

  

  

时间: 2024-11-03 03:26:00

Centos FTP服务器的原理以及虚拟用户的配置的相关文章

ftp服务器的搭建和匿名用户的配置

1.ftp服务器的搭建创建挂载点挂载光盘到挂载点配置yum源清除YUM缓存关闭防火墙下载ftp安装vsftpd2.匿名用户的配置 原文地址:http://blog.51cto.com/13956236/2171383

Centos FTP服务器(本地用户)

LAMP环境搭建是完成了,但是我们需要把开发人员做的站点上传至服务器的Apache站点目录,这样以来客户才能正常访问!这里使用的上传.下载的服务是Vsftpd 环境介绍 本案例是接着LAMP环境搭建接轨.案例中使用的是"本地用户"(不安全)来进行登录并上传测试 为解决依赖默认还是使用Yum源来进行安装 因多数浏览器.资源管理器.Cmd这写Windows自带Ftp工具不专业,在此推荐一款专业的Ftp客户端工具FileZila    32位下载 <-----> 64位下载 Vs

创建vsftpd服务器基于mysql的虚拟用户认证

简单罗列基础命令,只分享我的想法! 一.目的 要求:配置允许虚拟用户访问的vsftpd服务器,虚拟用户存储在另一台MySQL的服务器上面,虚拟用户账号有两个分别是tom和jerry,密码是tom和jerry,要求对这两个账户的权限做一下限制(根据实际的要求,自己调节). 环境:MySQL服务器(172.16.49.1),CentOS 6.6和MariaDB-5.5.43.另一台是通过yum安装vsftpd(192.168.0.22),OS是CentOS 6.6. MySQL是通用二进制格式安装,

FTP服务器工作原理的及配置详解

FTP服务器工作原理的及配置详解 FTP工作原理概述 FTP:file transfer protocol 它也是一个C/S架构的服务.server:监听在套接字21/tcp端口.按照套接字监听工作状态可以分为两类: 命令连接:发送文件管理类命令,始终处于连接状态,始终监听在21/tcp端口. 数据连接:主要是实现数据传输,这种连接是按需连接的,而且在传输结束会立刻中断. 对于数据连接还有两种不同的工作模式: 主动工作的模式:服务器根据监听在21端口接收到的命令,使用自己的20号端口,将数据传输

ftp虚拟用户的配置

实验环境: 1.操作系统:centos 6.6 x86_64 2.vsftpd版本为系统自带 3.IP地址为:192.168.10.136 步骤如下: 1.首先安装vsftpd [[email protected] ~]# yum -y install vsftpd 2.创建虚拟用户数据库 [[email protected] ~]# touch /etc/vsftpd/ftpusr.txt ◆.首先设置用户和密码 [[email protected] ~]# cat /etc/vsftpd/f

ftp实现通过数据库的虚拟用户认证

一.安装所需要程序 1.安装ftp服务所需的软件包 [[email protected] ~]# yum install vsftpd 2.安装MySQL数据库: [[email protected] ~]# yum -y install mysql-server mysql-devel 3.安装编译安装所需的环境 [[email protected] ~]# yum -y groupinstall "Development Tools" "Development Libra

推荐-Vsftpd虚拟用户的配置 for CentOS

Vsftpd虚拟用户的配置 System:Linux centos6.5 2.6.32-431.el6.x86_64 vsftpd-2.2.2-21.el6.x86_64 第一步.安装 #cd  /etc/yum.repos.d/ # rm -rf * # wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo # yum clean all # yum -y install vsftpd # yum -y install db4-ut

VSFTPD虚拟用户实战配置

FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件. FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输. vsftpd是一款在LINUX发行版中最主流的FTP服务器程序:特点是小巧轻快,安全易用:能让其自身特点得发发挥和掌握.如果使用系统用户登录FTP,是比较危险的,所以我们主要采用vsftpd虚拟用户登录FTP服务器进行常见的操作,当然配置就相对复杂一点.(centos7安装) 1.首先安装FTP以及虚拟用户需要用到的软件及认证模块 yu

vsftp虚拟用户登录配置详解

一.安装: 1.安装Vsftpd服务: # yum install vsftpd 2.安装DB4部件包: 这里要特别安装一个db4的包,用来支持文件数据库. # yum install db4-utils 二.系统帐户 1.建立Vsftpd服务的宿主用户: # useradd vsftpd -s /sbin/nologin 默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要.这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的服务宿主用户.由 于该用户仅用来支持Vsf