vSFTP(FTP服务)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vSFTP(FTP服务)相关的知识,希望对你有一定的参考价值。
系统版本:CentOS7.X概念
vSFTP是Linux上实现FTP(File Transfer Protocol)文件传输协议的一款软件。在企业中,一般用于跨公网的文件共享安全传输。它拥有独立的身份验证机制以及文件传输加密机制,可以让文件传输更安全,但是相对来说传输效率则会降低。
vSFTP协议有两个端口:20和21。21用于会话控制,20用于数据传输。
vSFTP使用PAM认证机制进行用户身份验证。PAM(Pluggable Authentication Modules)可插拔认证模块是由Sun互联网技术服务公司提出的一种用户密码认证机制。它通过一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开。
vSFTP支持三种用户访问方式:匿名访问、用户访问、虚拟用户访问。
匿名:无需要用户名和密码,使用默认匿名用户访问文件服务。
用户:基于系统用户名和密码才可访问文件服务。
虚拟用户:将一个真实用户可以映射成多个虚拟用户,使用虚拟用户身份访问文件服务。
vSFTP的数据传输模式:主动模式和被动模式。
主动模式:服务端20端口主动连接客户端20号端口,相同端口连接传输效率高。
被动模式:服务端20端口被动连接客户端非20号端口,不同端口连接传输可增加安全性。
服务端:搭建FTP服务
一、安装vsftpd软件包
# yum -y install vsftpd
二、修改配置文件
# unalias cp (临时取消CP命令弹出提示
# cp -f /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak (备份主配置文件
# cat /etc/vsftpd/vsftpd.conf.bak |grep -Ev "^#|^$|^;" >/etc/vsftpd/vsftpd.conf(过滤#;空格开头的行到vsftpd.conf文件中
# vi /etc/vsftpd/vsftpd.conf (修改主配置文件
listen=YES #开启vSFTP服务以独立进程运行
listen_port=21 #设置监听端口
listen_address=0.0.0.0 #设置监听地址
pasv_enable=YES #设置数据传输模式为被动模式
pam_service_name=vsftpd #设置PAM认证文件位置,对应/etc/pam.d/vsftpd文件。此项为必须。
xferlog_enable=YES ` #开启Xferlog日志功能
xferlog_file=/var/log/xferlog #指定Xferlog日志文件位置
xferlog_std_format=YES #指定日志文件的存档格式为Xferlog日志格式
tcp_wrappers=NO #禁用TCP_wrappers主机访问控制功能
userlist_enable=NO #禁用用户列表控制功能
anonymous_enable=NO #禁用匿名用户访问
write_enable=YES #允许用户拥有可写权限
download_enable=YES #允许用户拥有下载权限
local_enable=YES #开启本地用户访问
local_root=/var/ftp #设置本地用户访问的家目录位置
local_umask=077 #开启本地用户写入文件权限(反掩码),777-077=700
chroot_local_user=YES #开启将本地用户禁锢在家目录
三、创建一个登录用户
# useradd tom -M -s /sbin/nologin (创建用户,不允许创建家目录和登录系统
# echo "123" |passwd zhangsan --stdin (密码
# chown tom.tom /var/ftp (访问目录所属用户
# chmod 555 /var/ftp (设置主目录只允许读和执行的权限,主目录不允许有写的权限
四、开启服务
# systemctl start vsftpd
客户端:安装FTP客户端
一、安装FTP客户端并访问
# yum -y install ftp (安装FTP客户端
# ftp 192.168.116.131 (访问FTP服务
常用配置解读
配置文件路径:/etc/vsftpd/vsftpd.conf
PAM认证配置文件路经:/etc/pam.d/vsftpd
配置格式:
选项=YES/NO
选项=文件路径
选项=数值
配置说明
一、全局配置
listen=YES #设置监听进程的方式,YES为独立进程运行,NO则以Xined进程的方式运行,服务则由Xined管理工具控制。Xined是一种服务管理工具,类似于Redhat中的service命令。一般设置为YES。
listen_port=2 #设置监听端口号。默认为21。
listen_address=0.0.0.0 #设置监听地址。如果不配置,默认监听所有IP。
connect_from_port_20=NO #设置服务器数据传输是否为主动模式。如果为YES,则服务器主动从客户端的20端口建立数据连接,传输数据。
pasv_enable=YES #设置服务器数据传输是否为被动模式。默认开启,当服务端被动传输数据。
pasv_max_port=0 #设置被动模式下客户端开启的最大端口号。
pasv_min_port=0 #设置被动模式下客户端开启的最小端口号。
tcp_wrappers=NO #设置是否开启TCP_wrappers主机访问控制功能。如果为YES,则由TCP_wrappers网络防火墙控制,允许或拒绝那些主机才能访问FTP服务。
pam_service_name=vsftpd #设置用于用户认证的PAM文件位置。此项必须存在。对应/etc/pam.d/vsftpd文件。
max_clients=2000 #设置客户端最大连接数。
max_per_ip=50 #设置相同IP同时连接的数量。0表示无限制。
ascii_download_enable=NO #是否启用下载时采用ASCII方式传输文件。加密传输。
ascii_upload_enable=NO #是否启用上传时采用ASCII方式传输文件。加密传输。
xferlog_enable=NO #控制开启xferlog日志功能。
xferlog_file=/var/log/xferlog #指定日志记录位置。
xferlog_std_format=NO #是否将日志记录的格式转换成xferlog格式。
write_enable=NO #控制所有用户登录是否可写。
download_enable=YES #控制所有用户是否允许下载操作。
user_config_dir=/etc/vsftpd/user #针对每个用户创建不同的配置文件。这里指定存放用户配置文件的目录位置。每个用户的配置文件名与用户名必须相同。
userlist_enable=YES #是否开启用户列表控制功能。创建一个用户列表文件,每个用户名为一行。
userlist_file=/etc/vsftpd/user_list #指定用户列表文件位置。
userlist_deny=YES #设置是否拒绝这个用户列表文件中的用户访问登录。如果为YES则为拒绝,如果为NO则为允许。
二、匿名用户配置
anonymous_enable=YES #控制匿名登录是否启用。如果启用则默认使用ftp和anonymous为匿名用户。
ftp_username=ftp #设置匿名用户名。默认为ftp。
anon_root=/var/ftp #设置匿名用户的主目录位置。默认是/var/ftp目录。
anon_mkdir_write_enable=NO #如果为YES,则匿名用户允许创建、删除目录的权限,前提是开启write_enable=YES。
anon_other_write_enable=NO #如果为YES,则匿名用户允许执行写入操作,除了上传和创建目录,如删除和重命名。
anon_upload_enable=NO #如果为YES,则允许匿名用户上传文件,前提是开启write_enable=YES。
anon_world_readable_only=YES #如果为YES,则匿名用户只拥有只读权限,只可以下载文件,不可修改和写入。
anon_max_rate0 #设置匿名传输最大速率(以字节为单位)。0表示无限制。
anon_umask=077 #设置匿名用户创建文件时的文件权限。为反掩码,转换成正掩码:777-077=700。
no_anon_password=NO #如果为YES,则匿名登录时不用要求输入密码直接登录。
三、本地用户配置
local_enable=NO #本地用户启用开关,如果启用的话则访问文件服务需要输入用户名和密码,默认读取系统中/etc/passwd文件中的用户账户。说白了就是使用系统用户登录。
local_root=/var/ftp #设置本地用户的主目录位置。
local_umask=077 #设置本地用户创建文件时的文件权限。为反掩码,转换成正掩码:777-077=700。
chroot_local_user=NO #设置是否将用户限制在自己的用户主目录中,不允许切换到上级目录。
chroot_list_enable=NO #如果为YES,则你需要提供一个本地用户列表的文件。在该列表中的用户都不允许切换到上级目录,将其限制在家目录(共享目录)中。你需要指定一个本地用户列表的文件。
chroot_list_file=/etc/vsftpd/chroot_list #设置一个本地用户列表文件。
local_max_rate=0 #设置本地用户传输最大速率(以字节为单位)。
userlist_enable=NO #设置使用一个本地用户列表控制用户访问登录,只允许此列表中的用户访问文件服务。
userlist_deny=NO #设置使用一个本地用户列表控制用户访问登录,在此列表中的用户禁止访问文件服务。
userlist_file=/etc/vsftpd/user_list #本地用户列表文件位置。
四、虚拟用户配置
guest_enable=NO #如果开启此项则所有非匿名登录用户都将被视为“访客”登录。开启虚拟用户映射功能。
guest_username=ftp #设置虚拟用户对应的真实系统用户名。
以上是关于vSFTP(FTP服务)的主要内容,如果未能解决你的问题,请参考以下文章