1、VSFTPD简述
  如果试问哪种FTP服务器最安全?那么在UNIX和Linux中,首推的就是VSFTP(Very Secure FTP Daemon,非常安全的FTP服务器)。顾名思义,VSFTPD设计的出发点就是安全性。同时随着版本的不断升级,VSFTPD在性能和稳定性上也取得了极大的进展。象RedHat、SUSE、Debian、GNU、GNOME、KDE等一些大型站点都采用VSFTPD作为它们的FTP服务器。大家可以到[url]http://vsftpd.beasts.org/[/url]了解它的最新情况。
  
  2、VSFTPD的安装
  2.1、RHL9+vsftpd-.1.1.3-8.i386.rpm包的安装
  
  VSFTPD的安装很简单。在RHL9中,在图形界面下依次执行“Main Menu”-“System Settings”-“Add/Remove Applications”-选择FTP服务器-“更新”,或者在字符界面中执行以下命令,就可以完成安装。
  rpm -ivh vsftpd-1.1.3-8.i386.rpm
  
  2.2、vsftpd-1.2.0.tar.gz的安装
  
  ⑴准备条件
  
  VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。
  [root@hpe45 root]# useradd nobody
  useradd: user nobody exists
  
  VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。
  [root@hpe45 root]# mkdir /usr/share/empty/
  mkdir: cannot create directory '/usr/share/empty': File exists
  
  VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。
  [root@hpe45 root]# mkdir /var/ftp/
  [root@hpe45 root]# useradd -d /var/ftp ftp
  接下来的操作对于ftp用户是否已经存在都是有用的。
  [root@hpe45 root]# chown root.root /var/ftp
  [root@hpe45 root]# chmod og-w /var/ftp
  
  ⑵编译VSFTPD
  
  从官方站点下载到/root目录,执行以下命令:
  [root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz
  [root@hpe45 root]# cd vsftpd-1.2.0
  [root@hpe45 vsftpd-1.2.0]# make
  
  ⑶安装编译好的VSFTPD
  
  执行“make install”将编译好的二进制文件、手册等复制到相应目录。在RHL9上,可能需要手动执行以下复制:
  [root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd
  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5
  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8
  此外,“make install”没有复制简单的配置文件,建议执行以下命令:
  [root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc
  
  ⑷为本地用户设置PAM
  
  如果允许本地用户登录VSFTPD,执行以下操作:
  [root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
  
  3、VSFTPD的文件结构
  VSFTPD的文件结构是很简洁的,主要包括:
  /usr/sbin/vsftpd ---- VSFTPD的主程序
  /etc/rc.d/init.d/vsftpd ---- 启动脚本
  /etc/vsftpd/vsftpd.conf ---- 主配置文件
  /etc/pam.d/vsftpd ---- PAM认证文件
  /etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
  /etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
  /var/ftp ---- 匿名用户主目录
  /var/ftp/pub      ---- 匿名用户的下载目录
  此外,还有一些说明文档和手册文件。
  
  此外VSFTPD的日志文件位于/etc/logrotate.d/vsftpd.log。
  
  4、VSFTPD的启动与停止
  VSFTPD可以单独(Standalone)方式运行,如同httpd、named这类的服务器的运行方式,这是RHL9中默认的方式;也可以采用xinetd方式运行,这是RHL7.x、8中的默认方式。具体的运行方式由参数listen决定。从RHL中VSFTPD的运行方式,也可以看出VSFTPD的逐步发展。
  
  当listen参数值为YES时,RHL9中的默认值,VSFTPD单独运行,我们可以使用脚本/etc/rc.d/init.d/vsftpd来启动、关闭以及重启VSFTPD。命令如下:
  /etc/rc.d/init.d/vsftpd start|stop|restart
  
  如果说在RHL9上,您还希望使用Xinetd启动VSFTPD的运行方式,那么首先要将vsftpd.conf配置文件中的listen参数值改为NO。其次,生成一个/etc/xinetd.d/vsftpd文件,内容如下:
  service vsftpd
  {
  disable = no
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/vsftpd
  port = 21
  log_on_success += PID HOST DURATION
  log_on_failure += HOST
  }
  通过修改disable值为no或yes,并重新启动xinetd,从而启动或停止VSFTPD。
  
  由于VSFTPD的单独模式已经拥有足够的能力,所以后面6中讨论到的应用,都是以单独模式来运行的,而非Xinetd方式。
  
  注:还可以直接执行vsftpd来启动FTP服务,关闭时使用“kill”命令。
  [root@hpe45 root]# /usr/local/sbin/vsftpd &
  
  5、VSFTPD的设置选项
  VSFTPD的配置文件/etc/vsftpd/vsftpd.conf是个文本文件。以“#”字符开始的行是注释行。每个选项设置为一行,格式为“option=value”,注意“=”号两边不能留空白符。除了这个主配置文件外,还可以给特定用户设定个人配置文件,具体介绍见后。
  VSFTPD包中所带的vsftpd.conf文件配置比较简单,而且非常偏执狂的(文档自称:-))。我们可以根据实际情况对其进行一些设置,以使得VSFTPD更加可用。
  
  5.1、连接选项
  
  本部分主要是一些与建立FTP链接相关的选项。
  
  5.1.1、监听地址与控制端口
  
  listen_address=ip address
  此参数在VSFTPD使用单独(standalone)模式下有效。此参数定义了在主机的哪个IP地址上监听FTP请求,即在哪个IP地址上提供FTP服务。对于只有一个IP地址的主机,不需要使用此参数。对于多址主机,不设置此参数,则监听所有IP地址。默认值为无。
  
  listen_port=port_value
  指定FTP服务器监听的端口号(控制端口),默认值为21。此选项在standalone模式下生效。
  
  5.1.2、FTP模式与数据端口
  
  FTP 分为两类,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp-data)的方式。PORT FTP由FTP服务器指定数据传输所使用的端口,默认值为20。PASV FTP由FTP客户端决定数据传输的端口。PASV FTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数据传输端口更为方便一些。
  
  port_enable=YES|NO
  如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。
  
  connetc_from_port_20=YES|NO
  控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。默认值为NO,但RHL自带的vsftpd.conf文件中此参数设为YES。
  
  ftp_data_port=port number
  设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。
  
  port_promiscuous=YES|NO
  默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。
  
  pasv_enable=YES|NO
  YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
  
  pasv_min_port=port number
  pasv_max_port=port number
  设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
  
  pasv_promiscuous=YES|NO
  此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
  
  pasv_address=
  此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取。
  
  5.1.3 ASCII模式
  
  默认情况下,VSFTPD是禁止使用ASCII传输模式。即使FTP客户端使用asc命令,指明要使用ASCII模式,但是,VSFTPD表面上接受了asc命令,而在实际传输文件时,还是使用二进制方式。下面选项控制VSFTPD是否使用ASCII传输模式。
  
  ascii_upload_enable=YES|NO
  控制是否允许使用ascii模式上传文件,YES允许,NO不允许,默认为NO。
  
  ascii_download_enable=YES|NO
  控制是否允许使用ascii模式下载文件,YES允许,NO不允许,默认为NO。
  
  5.2、性能与负载控制
  
  5.2.1、超时选项
  
  idle_session_timeout=
  空闲(发呆)用户会话的超时时间,若是超出这时间没有数据的传送或是指令的输入,则会强迫断线。单位为秒,默认值为300。
  
  data_connection_timeout=
  空闲的数据连接的超时时间。默认值为300 秒。
  
  accept_timeout=numerical value
  接受建立联机的超时设定,单位为秒。默认值为60。
  
  connect_timeout=numerical value
  响应PORT方式的数据

转载于:https://blog.51cto.com/vdata/60193

Linux直接与编译安装Vsftpd服务器相关推荐

  1. linux ftp 怎么验证,Linux编译安装vsftpd服务器(本地用户验证方式)

    linux vsftpd编译安装和配置允许本地用户登录ftp 1.下载vsftpd源码 wget https://security.appspot.com/downloads/vsftpd-2.3.4 ...

  2. linux源码编译安装apache( httpd-2.4.53)处理服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)

    linux源码编译安装apache 首先我们需要下载相关的依赖包 apr.apr-util.pcre 下载地址 http://archive.apache.org/dist/apr/apr-1.7.0 ...

  3. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  4. 用Linux虚拟机手工编译安装Apache

    用Linux虚拟机手工编译安装Apache Apache网站服务器:作为LAMP架构的前端,是一款功能强大.稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页.图片等文件内容. 实 ...

  5. Linux笔记-centos7编译安装svn 1.14.1

    最近准备搭个创库,方面代码备份.服务器采用Linux,在百度上,差不多都是用yum安装.而且版本都太老了,不适合新时代程序员. 对此阅读了下官方文档.记录下目前(2021-03-14 13:12:47 ...

  6. linux nginx编译详解,Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备 1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码 代码如下:# ...

  7. OpenCV在Linux下的编译安装(Ubuntu )

    OpenCV在Linux下的编译安装(Ubuntu ) 1.先安装相关的库: sudo apt-get install build-essential sudo apt-get install lib ...

  8. linux apache 安装 rewrite,linux下单独编译安装Apache rewrite_module

    Redhat linux下单独编译安装Apache rewrite_module Apache已经编译安装完了,今天弄了个lifebox,装完后发现必须得用rewrite,所以就给它装了个~~ 找到a ...

  9. Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...

最新文章

  1. mqtt session保持 订阅消息_MQTT系列 | MQTT消息的发布和订阅
  2. STM32休眠后不能烧录程序
  3. c语言中fflushstdin作用,C语言fflush(stdin)函数是什么意思,在什么情况下用它
  4. Nest Secure智能保全系统内建麦克风 引发用户反弹
  5. mysql1130_解决远程连接mysql错误1130的方法
  6. Erlang消息传递-tut15.erl
  7. Win10系统hosts文件不见了的解决方法
  8. Angular JS 列表修改
  9. 【异常】No suitable driver
  10. 3月25日 插值-样条插值
  11. CISCO OSPF-NSSA实验
  12. 【数据蒋堂】索引的本质是排序
  13. ansys workbench 静力结构分析 高阶教程
  14. 数据仓库历史数据存储-拉链表
  15. Web 中的“选区”和“光标”需求实现
  16. 云音乐vue开发日记
  17. 发散性思维对养蜂技术的提高作用
  18. redis实战第七篇 使用redis工具(redis-cli)搭建redis cluster
  19. mysql cpu 占比过高问题解决
  20. 利用Word去除图片背景色

热门文章

  1. 《Python Cookbook 3rd》笔记(5.21):序列化 Python 对象
  2. 来自前苹果高管Heidi Roizen的经验之谈
  3. 职场十个方法 让专业气质成为你的符号!
  4. 我对应聘者的面试原则
  5. Spring声明式事务管理、事务的传播行为xml配置
  6. 介绍一个对陌生程序快速进行性能瓶颈分析的技巧
  7. 一套完整的用户增长系统架构
  8. java 第11次作业:你能看懂就说明你理解了——this关键字
  9. 单例模式之恶汉模式(详解)
  10. python笔记-python编程优化:常用原则和技术介绍