vsftpd服务
· 文件传输协议
一般来讲,人们把计算机联网的首要目的就是获取资料,而文件传输是一种非常重要的获取资料的方式。今天的互联网是由几千万台个人计算机、工作站、服务器、小型机、大型机、巨型机等具有不同型号、不同架构的物理设备共同组成的,而且即便是个人计算机,也可能会装有Windows、Linux、UNIX、Mac等不同的操作系统。为了能够在如此复杂多样的设备之间解决问题解决文件传输问题,文件传输协议应运而生
FTP(File Transfer Protocol)文件传输协议
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接受客户端发出的相关FTP命令与参数
FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此得到了广大用户的青睐
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机
FTP协议有下面两种工作模式
主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(默认工作模式)
TFTP(Trivial File Transfer Protocol)简单文件传输协议
TFTP是一个传输文件的简单协议,它基于UDP协议而实现,端口号为69
TFTP设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据
TFTP传输中有三种模式:
netascii:这是8位的ASCII码形式,
octet:这是8位源数据类型
mail:已经不再支持,它将返回的数据直接返回给用户而不是保存为文件
· vsftpd服务介绍
vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。在不影响使用的前提下,能够让管理者自行决定是公开匿名、本地用户还是虚拟用户的验证方式
· vsftpd服务部署
vsftpd(very secure ftp daemon,非常安全的FTP守护进程):是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点
1.安装vsftpd服务
[root@xiudaochengxian ~]# yum -y install vsftpd
Complete!
2.修改防火墙策略
#清空防火墙默认策略
[root@xiudaochengxian ~]# iptables -F
#保存防火墙状态
[root@xiudaochengxian ~]# iptables-save
#把FTP协议添加到允许列表中
[root@xiudaochengxian ~]# firewall-cmd --permanent --zone=public --add-service=ftp
success
[root@xiudaochengxian ~]# firewall-cmd --reload
success
3.编写vsftpd主配置文件
文件总共127行,大部分为注释信息,修改后为13行
#备份配置文件
[root@xiudaochengxian ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
#过滤后写入配置文件
[root@xiudaochengxian ~]# grep -Ev "^$|^#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
#查看文件内容
[root@xiudaochengxian ~]# cat /etc/vsftpd/vsftpd.confanonymous_enable=YES
anonymous_enable=YES #是否允许匿名用户访问权限(默认YES)
local_enable=YES #是否允许本地用户进行访问(默认YES)
write_enable=YES #是否允许本地用户进行写入操作(默认YES)
local_umask=022 #本地用户上传文件的umask值
dirmessage_enable=YES #首次进入目录时的提示信息(默认YES)
xferlog_enable=YES #是否开启日志功能(默认YES)
connect_from_port_20=YES #是否以指定使用FTP端口号进行数据传输(默认YES)
xferlog_std_format=YES #是否已标准形式写入日志(默认NO)
listen=NO #是否以独立运行的方式监听服务(默认YES)
listen_ipv6=YES #是否支持ipv6的IP地址
pam_service_name=vsftpd #vsftpd使用的PAM模块(虚拟用户使用的PAM认证方式)
userlist_enable=YES #设置用户列表为允许操作(默认NO)
tcp_wrappers=YES #是否受到tcp wrapper来进行主机的访问控制限制(默认YES)
常用参数 | 作用 |
---|---|
listen=[YES|NO] | 是否以独立运行的方式监听服务 |
listen_address=IP地址 | 设置要监听的IP地址 |
listen_port=21 | 设置FTP服务的监听端口 |
download_enable=[YES|NO] | 是否允许下载文件 |
userlist_deny=[YES|NO] | 设置用户列表为“允许”还是“禁止”操作 |
max_clients=0 | 最大客户端连接数,0为不限制 |
max_per_ip=0 | 同一IP地址的最大连接数,0为不限制 |
anonymous_enable=[YES|NO] | 是否允许匿名用户访问 |
anon_upload_enable=[YES|NO] | 是否允许匿名用户上传文件 |
anon_umask=022 | 匿名用户上传文件的umask值 |
anon_root=/var/ftp | 匿名用户的FTP根目录 |
anon_mkdir_write_enable=[YES|NO] | 是否允许匿名用户创建目录 |
anon_max_rate=0 | 匿名用户的最大传输速率(字节/秒),0为不限制 |
local_enable=[YES|NO] | 是否允许本地用户登录FTP |
anon_other_write_enable=[YES|NO] | 是否开放匿名用户其他写入权限(包括重命名、删除等操作权限) |
local_umask=022 | 本地用户上传文件的umask值 |
local_root=/var/ftp | 本地用户的FTP根目录 |
chroot_local_user=[YES|NO] | 是否将用户权限禁锢在FTP目录,以确保安全 |
local_max_rate=0 | 本地用户最大传输速率(字节/秒),0为不限制 |
· vsftpd三种认证模式
vsftpd作为更加安全的文件传输协议服务程序,允许用户以三种认证模式登录到FTP服务器上
编辑防火墙策略
#清空防火墙默认策略
[root@xiudaochengxian ~]# iptables -F
#保存防火墙状态
[root@xiudaochengxian ~]# iptables-save
#把FTP协议添加到允许列表中
[root@xiudaochengxian ~]# firewall-cmd --permanent --zone=public --add-service=ftp
success
[root@xiudaochengxian ~]# firewall-cmd --reload
success