vsftpd介绍

FTP概述

FTP是典型的C/S结构的应用层协议,需要服务器端软件和客户端软件两个部分共同实现文件传输功能。

FTP有两个端口20/tcp和21/ctp
    20端口用于建立数据连接,并传输文件数据。
    21端口用于建立控制连接,并传输FTP控制命令。

FTP数据连接又分为主动模式,和被动模式
    主动模式:服务器主动发起连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告诉服务器“我打开了某口,你过来连接我”,于是服务器从20端口像客户端该端口发送请求并建立数据连接 。
    被动模式:服务器被动等待数据连接。首先由客户端向服务器端的21端口建立FTP控制连接 ,当需要传输数据时,服务器以PASV命令告诉客户端“我打开了某端口,你过来连接我”于是客户端向服务器的该端口(非20)发送请求并建立数据连接。
    被动模式的端口随机性,主要是由对方防火墙引起,不知道对方开放了那些端口。
        
数据传输模式(自动协商):
     二进制(ASCII):一般用只用于纯文本文件的传输
     文本(Binary):这种模式更适合程序、图片等为纯文本格式的文件

vsftpd文件配置文件
    /etc/vsftpd: 配置文件目录
    /etc/init.d/vsftpd: 服务脚本
    /usr/sbin/vsftpd: 主程序
    /var/ftp:ftp服务根目录(不允许其他用户拥有写权限,如果希望用户上传可以建子目录)

ftpusers:黑名单,此列表列出的用户,拒绝登录FTP

user_list:此文件中用户可以被禁止,也可以被允许取决于主配置文件的设置
ftp: 系统用户
    匿名用户 --> 系统用户: anonymous_enable
    系统用户: local_enable
    虚拟用户 --> 系统用户

/var/ftp: ftp用户的家目录
    匿名用户访问目录

注意:测试前需要关闭防火墙和SELinux
iptables -F
setenforce 0
    
vsftpd.conf配置文件解释
匿名用户
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              //限制匿名用户的最大传输速率(0为无限制),单位为字节/秒

本地用户
local_enable=YES      //是否启用系统用户
local_umask=022       //设置本地用户所上传权限的掩码值
local_root=/var/ftp   //设置本地用户根目录(不填为家目录)
deny_email_enable=YES   //禁锢用户在家目录,需列表
banned_email_file=/etc/vsftpd/chroot_list  //禁锢那些用户在家目录的列表(文件不存在需要手动创建)
chroot_local_user=YES //将所有用户禁锢在家目录
local_max_rate=0      //限制本地用户的最大传输速率(0为无限制),单位为字节/秒

全局配置
listen=YES //配置为独立守护进程
守护进程:
     独立守护进程:
          用于访问量大,在线时间长的应用
     瞬时守护进程:
           永远访问量小,在线时间短的应用
listen_address=0.0.0.0    //设置监听FTP的IP地址
listen_port=21            //设置监听FTP端口号
write_enable=YES          //启用任何形式的写入权限(如上传、删除文件等)都需要开启此项
download_enable=YES       //是否允许下载文件
dirmessage_enable=YES     //是否显示欢迎信息(需要在目录下面添加一个.message的文件,在里面输入欢迎信息)
xferlog_enable=YES          //是否打开传输日志
xferlog_file=/var/log/vsftpd.log //传输日志文件路径
xferlog_std_format=YES    //启用标准的xferlog日志格式,弱禁用此项,将使用xferlog自己的日志格式
connect_from_port_20=YES   //允许服务器主动模式(从20端口建立数据连接)
pasv_max_port=24600        //设置被动模式的服务器最大端口号
pasv_min_port=24500        //设置被动模式服务器最小端口号
pam_service_name=vsftpd   //设置用户认证的PAM文件位置(/etc/pam.d目录中对应的文件名)
userlist_enable=YES       //启用userlist文件控制登陆
userlist_deny=NO      //允许userlist列表中的用户登录,如果是Yes就是拒绝登陆
max_client=0         //最多允许多少客户端同时连接(0为无限制)
man_per_ip=0  //对于同一个Ip地址的客户端最多允许多少并发连接(0为无限制)
tcp_wrappers=YES   //是否启用TCP_Wrappers主机访问控制

设置ftp加密传输
ssl_enable=YES  //启用ssl
ssl_tlsv1=YES    //启用tlsv1
ssl_sslv2=YES
ssl_sslv3=YES     //启用sslv3
allow_anon_ssl=NO  //匿名用户不启用加密
force_local_data_ssl=YES  //强制本地用户使用ssl传输数据
force_local_logins_ssl=YES  //强制本地用户使用ssl登录
rsa_cert_file=/etc/vsftpd/ssl/vsftpd_cert.pem   //rsa格式的证书
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd_key.pem  //rsa格式的密钥文件

虚拟用户设置:
添加虚拟用户列表

[[email protected] vsftpd]# vim vusers.list 
zhangsan   //奇数行为用户名,偶数行为密码
123456
lisi
123456

创建Berkeley DB 格式的数据库文件

[[email protected] vsftpd]# db_load -T -t hash -f vusers.list vusers.db
[[email protected] vsftpd]# file vusers.db 
vusers.db: Berkeley DB (Hash, version 9, native byte-order)

设置文件权限,避免数据外泄

[[email protected] vsftpd]# chmod 600 /etc/vsftpd/vusers.*
[[email protected] vsftpd]# ls -lh /etc/vsftpd/vusers.*
-rw-------. 1 root root 12K 9月  15 20:16 /etc/vsftpd/vusers.db
-rw-------. 1 root root  28 9月  15 20:15 /etc/vsftpd/vusers.list

添加虚拟帐号映射帐号、创建FTP根目录

[[email protected] vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
[[email protected] vsftpd]# chmod 755 /var/ftproot/

为虚拟用户建立PAM认证

[[email protected] vsftpd]# vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required   pam_userdb.so  db=/etc/vsftpd/vusers
account required  pam_userdb.so db=/etc/vsftpd/vusers

修改vsftpd配置,添加虚拟用户支持

local_enable=YES
write_enable=YES
anon_umask=022
pam_service_name=vsftpd.vu  //指定PAM认证文件
guest_enable=YES   //启用用户映射功能
guest_username=virtual  //指定映射的系统用户名称

为不同的虚拟用户建立独立的配置文件,以便设置不同的权限

[[email protected] vsftpd]# vim /etc/vsftpd/vsftpd.conf 
user_config_dir=/etc/vsftpd/vusers_dir  //表示将从/etc/vsftpd/vusers_dir目录查找用户的配置文件
[[email protected] vsftpd]# mkdir /etc/vsftpd/vusers_dir
[[email protected] vsftpd]# cd /etc/vsftpd/vusers_dir/
[[email protected] vusers_dir]# vi zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
时间: 2024-10-19 19:24:29

vsftpd介绍的相关文章

vsftpd搭建ftp服务器

一.vsftpd介绍 ? ? ? ?vsftpd是very secure ftp daemon的缩写,它是一个完全免费.开源代码的ftp服务器软件.它有着其他ftp服务器软件不具有的特性,如它满足较高的安全性需求.支持虚拟用户.支持ipv6.传输速率限制等. 二. vsftpd安装 ? ? ? ?实验环境准备: 主机列表 系统版本 ip地址 安装软件 ftp客户端 centos7.6 192.168.36.10 ftp或lftp ftp服务器 centos6.10 192.168.36.20 v

LINUX系统管理员 统一鉴定 考试大纲 (三级)

        LINUX系统管理员 统一鉴定 考试大纲 (三级)             LINUX系统管理员 统一鉴定考试大纲 (三级) 1.评分比重以100分为满分 2.考核要求中,X表示掌握程度为了解,Y表示掌握程度为熟悉,Z表示掌握程度为精通 3.网络服务的每一章节必须要有一个案例.两个练习? 竞赛内容 分值比重 知识点 考核要求 一.Linux的交换空间管理 5 交换空间的介绍 Y 交换空间的分类:交换分区,交换文件 X 创建交换分区 Z 使用交换分区 Z 关闭和删除交换分区 Z 创

ubuntu中安装ftp服务器

1. 实验环境 ubuntu14.04 2.vsftpd介绍 vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的FTP服务器程序,安全性是它的一个最大的特点. 3.vsftpd的安装 3.1 打开终端(ctrl + alt + t) 输入: sudo apt-get install vsftpd 4.配置vsftpd 4.1 修改vsftpd的配置文件.此类配置文件通常位于 /etc 目录下 sudo gedit /etc/vsftpd.

14.4 exportfs命令;14.5 NFS客户端问题;15.1 FTP介绍;15.2/15.3 使用vsftpd搭建ftp

14.4 exportfs命令 重启nfs服务需要把所有挂载点卸载掉,如果一台机器有多个挂载点,不能一一去卸载挂载点,用exportfs -arv命令: 1. 编辑exports配置文件,添加一条新的共享目录: [[email protected] ~]# vim /etc/exports {no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大} 添加内容(hao1服务端的共享目录,hao2客户端的ip): /tmp 192.168.211.129(rw,sy

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

- 14.4 exportfs命令 - 14.5 NFS客户端问题 - 15.1 FTP介绍 - 15.2/15.3 使用vsftpd搭建ftp # 14.4 exportfs命令 - exportfs命令 和NFS一起安装的 例: - 配置了一个共享目录,之后需要新增.更改.机器或者目录:首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉 - 到了这种时候,只能去一台一台机器的

FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输.FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机.小公司用的多,大企业不用FTP,因为不安全. 使用vsftpd搭建ftp服务 1.安装及建立账号 [[email protected] ~]# yum insta

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

exportfs命令 加入我们之前已经配置了nfs的共享目录,之后要增加更改或增加共享目录,我们需要更改配置文件,重启,如果远程客户端正在使用,此时就会一直挂载着,这时候就有问题 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用exportfs即可 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 #vim /etc/exports //增加一行 /tmp/ 192.168.37.0/2

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务

exportfs命令 exportfs命令用来管理当前NFS共享的文件系统列表. 常用选项 -a:全部卸载或全部挂载 -r:重新挂载 -u:卸载某个目录 -v:显示共享目录 常用组合:exportfs -arv 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统. 以上操作都在服务端进行! 测试 在服务端的/etc/exports配置文件中,增加一行.把/tmp/目录单独共享给1

FTP(介绍,使用vsftpd搭建ftp,xshell使用xftp来传输文件)

一.FTP介绍 另外一种文件共享和传输的工具 FTP服务File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet控制文件的双向传输.它同时也是一个应用程序,用户可以通过它把自己PC机与世界各地所有运行FTP协议的服务器相连,已访问服务器上的大量程序和信息. FTP的主要作用是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,把文件从远程计算机复制到本地计算机,或者把本地的文件传送到远程计算机上. FTP方