文件传输协议
常用服务端口 https—443 http—80 ssh—22 ftp——21,20
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式
,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点
。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术
,因此FTP服务得到了广大用户的青睐。FTP协议的传输拓扑如图所示
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式:
主动模式:FTP服务器主动向客户端发起连接请求
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)
在学习防火墙服务配置时曾经讲过,防火墙一般是用于过滤从外网进入内网的流量
,因此有些时候需要将FTP的工作模式设置为主动模式,才可以传输数据。
vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费
,此外,还具有很高的安全性、传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点。
例1: 安装vsftpd,因为iptables防火墙管理工具默认禁止了FTP传输协议的端口号,清空iptables防火墙的默认策略并永久生效,以避免被这些默认策略影响vsftpd服务的配置(当文件中注释文件过多时,可将生效文件剪切到原文件中)。
yum install -y vsftpd #安装vsftpd服务程序
iptables -F #清空iptables防火墙策略
service iptables save #把当前已经被清理的防火墙策略状态保存下来
cd /etc/vsftpd #进入vsftpd主配置文件所在目录
mv vsftpd.conf vfstpd.conf_bak #把vsftpd服务的主配置文件重命名为vsftpd.conf_bak(bak为备份文件后缀)
grep -v "#" vsftpd.conf_bak > vsftpd.conf #在grep命令后面添加-v参数,过滤并反选出没有包含井号(#)的参数行(即过滤掉所有的注释信息),然后将过滤后的参数行通过输出重定向符写回原始的主配置文件中
cat vsftpd.conf #查看删除所有注释信息后的vsftpd主配置文件
anonymous_enable=YES #是否允许匿名用户访问
local_enable=YES #是否允许本地用户登录FTP
write_enable=YES #是否允许用户进行写操作
local_umask=022 #本地用户上传文件的umask值(反掩码),如022,若是文件,则该文件权限为666-022=644,若是目录,则目录权限777-022=755
dirmessage_enable=YES
xferlog_enable=YES #是否开启日志
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO #是否进行独立监听
listen_ipv6=YES
pam_service_name=vsftpd #支持pam模块
userlist_enable=YES #是否支持用户黑名单
tcp_wrappers=YES
vsftpd服务程序常用的参数以及作用
参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务
listen_address=IP地址 设置要监听的IP地址
listen_port=21 设置FTP服务的监听端口
download_enable=[YES|NO] 是否允许下载文件
userlist_enable=[YES|NO] 设置用户列表为“允许