热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vsftp服务配置

FTP连接及传输模式控制连接:TCP21,用于发送FTP命令信息数据连接:TCP20,用于上传、下载数据数据连接的建立类型:主动模式、被动

FTP连接及传输模式

  • 控制连接:TCP 21 ,用于发送FTP命令信息
  • 数据连接:TCP 20 ,用于上传、下载数据
  • 数据连接的建立类型:主动模式、被动模式

主动模式:服务器主动发起数据连接

  • 首先由客户端向服务端的21端口建立FTP控制连接
  • 当需要传输数据时,客户端以PORT命令告知服务器"我打开了某端口,你过来连接我" 于是服务器从20端口向客户端的该端口发送请求并建立数据连接

被动模式:服务器被动等待数据连接

  • 如果客户端所在网络防火墙禁止主动模式连接,通常会使用被动模式
  • 当需要传输数据时,客户端以PORT命令告诉服务器"我要连接你,你要被动等我",于是服务器告知客户端"我打开了某端口,你过来连接我"于是客户端向服务器的该端口(非20端口)发送请求并建立数据连接

PASV:被动

FTP连接及传输模式

  • 客户端与服务器建立好数据连接以后,就可以根据从控制连接中发送的FTP命令上传或下载文件了。
  • 在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式
  • 文本模式:又称为ASCII(American Standard Code for Information
    Interchange,美国信息交换标准码)模式,这种模式在传输文件时使用ASCII标准字符序列,一般指用于纯文本文件的传输
  • 二进制模式:又称为Binary模式,这种模式不会转换文件中的字符序列,更适合传输程序、图片等非纯文本字符的文件
  • 使用二进制模式比纯文本模 式更有效率,大多数FTP客户端工具可以根据文件类型自动选择文件的传输模式,而无需用户手工指定

FTP用户类型:

  1. 匿名用户:用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器的验证。一般用于公共文件的下载。
  2. 本地用户:直接使用本地的系统用户账号进行验证
  3. 虚拟账户:通过一份独立的用户数据库文件进行登陆验证,将FTP账户的关联性降至最低,为系统提供更好的安全性

FTP服务器软件的种类

  • 在Windows系统中,常见的FTP服务器软件包括FileZilla、Serv-U等
  • 在Linux系统中,vsftp是目前在Linux/UNIX领域应用十分广泛的一款FTP服务软件
  • Vsftpd服务的名称来源于"Very Secure FTP Daemon",该软件针对安全特性方面做了大量的设计。除了安全性以外,vsftp在速度和稳定性方面表现也相当突出

FTP客户端工具的种类

  • 最简单的FTP客户端工具莫过于FTP命令程序了
  • 除此以外,还有大量的图形化FTP客户端工具。Windows8中较常用的包括CuteFTP、
    FlashFXP、LeapFTP、Filezilla等
  • 还有一些下载工具软件,如FlashGet、Wget等,包括大多数网页浏览器程序,都支持 通过FTP协议下载文件,但因不具备FTP上传等管理功能,通常不称为FTP客户端工具

写入权限:阀门理论

  • 文件系统权限与服务配置权限需要同时满足
  • 文件系统权限高于服务配置权限

$(将里面的执行结果输出)&> /dev/null 屏幕不显示

搭建匿名访问的FTP服务器

  • 安装vsftp软件包
  • 准备匿名FTP访问的目录
  • 开放匿名用户哦欸只并启动vsftp服务
  • 测试匿名FTP服务器

yum -y install vsftpd
chkconfig --level 2345 vsftpd on
netstat -anyup | grep "vsftpd"
cd /var/ftp/(pub) 匿名登陆的默认目录(匿名用户或其他人不能有写权限)
把拥有者改成ftp 有写权限
vi /etc/vsftpd/vsftpd.conf 配置文件anonynous_enable=YES //匿名访问
write_enable=YES //是否可写入
anon_upload_enable=YES //匿名上传
anon_mkdir_write_enable=YES //匿名创建目录、
anon_other_write_enable=YES //除了创建目录其他的写权限(重命名)

登陆:

  • ftp IP
  • get ** 下载文件

搭建用户验证的FTP服务

* 基本的本地用户验证
local_enable=YES
write_enable=YES
local_umask=077 //修改本地用户默认权限掩码为077
chroot_local_user=YES //开启本地用户的家目录锁定userlist_enable=YES 启动userlist文件
userlist_deny=YES (YES里面用户无法登陆,NO里面用户可以登录)·ftpusers与user_list用户列表的使用
(1)ftpusers文件:FTP服务器中的黑名单,优先级高于user_list文件
(2)user_list文件:此用户列表默认情况下也是黑名单,即在此用户列表中的用户不可访问FTP服务器,但可以通过vsftpd.conf主配置文件的修改将此名单改为白名单,且仅此名单中的用户可以访问。·使用user_list用户列表文件(ftpusers只要里面出现的账号就不能登陆)

vsftpd服务的其他常用配置

  • 基于虚拟用户的FTP服务
  • 修改vsftpd服务的监听地址、端口
  • 允许使用FTP服务器的被动模式
  • 限制FTP连接的并发数、传输速率
  • 修改vsftpd服务的监听地址、端口:
  • netstat -antup | grep "vsftpd"
  • 0.0.0.0 所有的IP地址

vi /etc/vsftpd/vsftpd.conf
listen_address=10.10.10.10
listen_port=222
pasv_enable=YES
pasv_min_port=24500
pasv_max_port=24600max_client=200 (最大连接客户端)
max_per_ip=2 (一个IP最多能打开多少个客户端)
anon_max_rate=50000
local_max_rate=200000

修改vsftpd服务的监听地址、端口

建立虚拟用户的账号数据库:

vsftpd服务使用Berkeley

  • DB格式的数据库文件来存放虚拟用户账户,建立这种数据库文件需要用到db_load工具
  • 步骤:
    1. 创建文本格式的用户名、密码列表
    2. 创建Berkeley DB格式的数据库文件
    3. 添加虚拟用户的映射账号,创建FTP根目录

/etc/vsftpd /
vi vusers.list
用户名
密码
用户名
密码
这些用户在Linux中不存在yum -y install db4-utils-*db_load -T -t hash -f vusers.list vusers.db
注:db_load命令-T:允许非Berkeley的程序使用该数据库-t:指定算法(hash:哈希,散列)-f:指定源文件注意:生成的数据库文件必须为“.db”格式## 一般吧数据文件和权限文件改为600只有超级用户可读可写## 添加虚拟用户的映射账号
useradd virtual -s /sbin/nologin -d /var/ftproot
chmod 755 /var/ftproot/

为vsftpd服务添加虚拟用户支持

  • 在vsftpd服务器中,用户认证是通过PAM(Pluggable Authentication
  • Module,可插拔认证模块)机制来实现的,该机制包括灵活的选择认证方式
  • 步骤
    1. 为虚拟用户建立PAM认证文件
    2. 修改vsftpd配置,添加虚拟用户支持
    3. 为不同的虚拟用户建立独立的配置文件
    4. 测试

#cd /etc/pam.d
#cp -a su vsftpd.vu
#vim vsftpd.vuauth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers#vi /etc/vsftpd/vsftpd.conf
·local_enable=YES
·guest_enable=YES
·guest_username=virtual
·anon_umask=022
·pam_service_name=vsftpd.vu#实现每个虚拟用户不同根目录、不同权限的管控(1)创建用户控制目录,并创建虚拟所对应的同名配置文件
·mkdir /etc/vsftpd/vusers_dir/
·cd /etc/vsftpd/vusers_dir/
·vi ***anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1
local_root=/var/***#chown virtual /var/***·vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir
·/etc/init.d/vsftpd restart

其他配置:

  • listen=YES 是否开启监听段口
  • listen_address=10.10.10.10 监听IP地址
  • listen_port=2121 设置监听端口
  • pasv_enable=YES 是否开启被动模式
  • pasv_min_port=24500 被动模式端口下限
  • pasv_max_port=24600 被动模式端口上限
  • max_client=2000 最大*客户连接数,一般不限制
  • max_per_ip=2 每个IP限制最多打开几个客户端工具,一般不限制
  • anon_max_rate=50000 匿名最大传输速率
  • local_max_rate=20000 本地用户最大传输速率,一般不限制

转:https://www.cnblogs.com/meilong/p/6719713.html



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
author-avatar
hizcr
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有