1 / 27

FTP 服务器的设置

FTP 服务器的设置. FTP 协议. FTP 概述 FTP 就是 File Transport Protocol 文件传输协议的缩写, FTP 服务器能够在网络上提供文件传输服务。 FTP 最初与 WWW 服务和邮件服务 一起被列为因特网的三大应用,可见其在网络应用中的地位举足轻重。 FTP 服务器根据服务对象的不同可分为 匿名服务器 ( Anonymous Ftp Server )和 系统 FTP 服务器 。前者是可以让任何人登录上去获取文件的 FTP 服务器,后者就只能是在 FTP 服务器上有合法账号的人才能使用。. FTP 协议. FTP 工作原理:

feryal
Download Presentation

FTP 服务器的设置

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FTP服务器的设置

  2. FTP协议 • FTP概述FTP就是File Transport Protocol文件传输协议的缩写,FTP服务器能够在网络上提供文件传输服务。FTP最初与WWW服务和邮件服务一起被列为因特网的三大应用,可见其在网络应用中的地位举足轻重。 • FTP服务器根据服务对象的不同可分为匿名服务器(Anonymous Ftp Server)和系统FTP服务器。前者是可以让任何人登录上去获取文件的FTP服务器,后者就只能是在FTP服务器上有合法账号的人才能使用。

  3. FTP协议 FTP工作原理: 建立一个ftp会话包括五个软件元素的交互: 用户接口(UI):提供了一个用户接口并使用客户端协议解释器的服务 客户端协议解释器(CPI):向远程服务器协议机发送命令并且驱动客户 数据传输过程 服务端协议解释器(SPI):响应客户协议机发出的命令并且驱动服务器端数据 传输过程 客户端数据传输协议(CDTP):负责完成和服务器数据传输过程及客 户端本地文件系统的通信 服务端数据传输协议(SDTP):负责完成和客户数据传输过程及服务器端文件 系统的通信

  4. FTP协议 • 控制连接:主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应(服务器监听21号端口) • 数据连接:用来传输用户的数据。

  5. FTP协议 • FTP的数据传输模式: 主动传输模式:ftp服务器使用一个标准的端口(20)作为服务器端的数据连接端口与客户建立数据连接。 被动传输模式:ftp服务器在非20端口的其他数据传输端口上监听客户的请求。 单端口传输模式:ftp服务器就会使用ftp协议的数据传输端口(20)和客户端的控制连接源端口建立一个数据传输连接。

  6. FTP协议 • ftp的典型消息 • 在用于ftp客户程序与ftp服务器进行通信时,经常会看到一些由ftp服务器发送消息,这些消息是ftp协议所定义的。下面列出典型的ftp消息: • 消息号 • 125:数据连接打开,传输开始 • 200:命令OK • 226:数据传输完毕 • 331:用户名OK • 425:不能打开数据连接 • 426:数据连接被关闭,传输被中断 • 452:错误写文件 • 500:语法错误,不可识别的命令

  7. FTP服务器的设置 • 目前在UNIX和LINUX下常用的免费FTP服务器软件主要是Wu-FTP和ProFTP这两种。Wu-FTP广泛应用在众多的Unix和Linux系统中,曾经是RedHat Linux默认的FTP服务器软件,其全称是Washington University FTP。 • Wu-FTP软件的特性: • 1、让用户在下载文件的同时可以对文件做自动的压缩或解压缩操作; • 2、可以对不同网络的机器做不同的存取限制和存取时间; • 3、可以记录文件上传和下载的时间; • 4、可以显示传输时的相关信息,以便让用户知道目前的传输状态; • 5、可以设定连接的数量限制,以提高工作效率。

  8. FTP服务器的设置 • 这些功能都适于吞吐量较大的FTP服务器的管理要求。 • 但是,Wu-FTP最致命的弱点是安全性比较差。由于推出的时间比较早,所以在功能上和安全性上,都不能满足现在的需求。所以,在Red Hat Linux 8.0中,默认的FTP服务器已经改成了vs-ftpd这个软件

  9. vsftpd 简介 • vsftpd 是一个基于GPL 发布的类UNIX 系统上使用的FTP 服务器软件。其中的vs 是“Very Secure”的缩写,从此名称缩写可以看出,编制者的初衷就是代码的安全性。

  10. Vsftpd 的特性 • 安全性是编写vsftpd 代码的初衷,除了与生俱来的安全性能之外,高速、稳定的性能是vsftpd 的两个特性。 • 在速度方面:使用ASCII 模式下载数据时,vsftpd 的速度是WU-FTPd 的两倍;如果Linux的主机使用2.4.X 版本的内核,在千兆以太网上的下载速度可达86Mbytes/sec。 • 在稳定性方面:vsftpd 可以在单机(非集群)上支持4000 个以上的并发用户同时连接。据ftp.redhat.com 的数据,vsftpd 可以支持15000 个并发用户。 • 除了安全、高速、稳定之外,vsftpd 还具有如下的特性: • 支持基于IP 的虚拟FTP 服务器 • 支持虚拟用户 • 支持PAM 或xinetd/tcp_wrappers 的认证方式 • 支持两种运行方式:独立和Xinetd • 支持每个虚拟用户具有独立的配置 • 支持带宽限制等

  11. 谁在使用vsftpd • 由于vsftpd 具有上述的特性,现在越来越多的FTP 服务器使用vsftpd。例如: • ftp.redhat.com • ftp.suse.com • ftp.debian.org • ftp.gnu.org • ftp.gnome.org • ftp.openbsd.org • rpmfind.net

  12. 配置vsftpd • Redhat 8.0自带了vsftpd,在安装时如果选择了FTP服务的话,已经安装好了如下的部分软件:vsftpd-1.1.0-1.i386.rpm,anonftp-4.0-12.i386.rpm。 • 其中: • vsftpd包用于创建一个安全的FTP服务器。 • anonftp 包用于创建匿名FTP服务器目录。若要架设匿名FTP服务器就应该安装此包。anonftp 包安装的匿名FTP服务器目录是/var/ftp,匿名下载目录为/var/ftp/pub。

  13. vsftpd的配置文件 • 在RedHat9.0中vsftpd的默认配置文件有三个,分别是: • /etc/vsftpd.conf • /etc/vsftpd.ftpusers • /etc/vsftpd.user_list • 其中,/etc/vsftpd.conf 是主配置文件。/etc/vsftpd.ftpusers 中指定了哪些用户不能访问FTP服务器。/etc/vsftpd.user_list 中指定的用户默认情况( 即在/etc/vsftpd.conf 中设置了userlist_deny=YES)下也不能访问FTP 服务器,当在/etc/vsftpd.conf 中设置了userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list 中指定的用户访问FTP 服务器。

  14. 默认配置文件 • 默认的配置文件如下:

  15. 默认配置文件 • 这个默认的配置文件达到的效果是: • (1)允许匿名用户和本地用户登录; • (2)匿名用户的登录名为ftp 或anonymous,口令为一个Email地址; • (3)匿名用户不能离开匿名服务器目录/var/ftp,且只能下载不能上传; • (4)本地用户的登录名为本地用户名,口令为此本地用户的口令; • (5)本地用户可以离开自家目录切换至有权访问的其他目录,并在权限允许的情况下进行上传/下载; • (6)写在文件/etc/vsftpd.ftpusers 中的本地用户禁止登录。

  16. 进一步配置vsftpd • 启用ASCII 传输方式 • 默认情况下,vsftpd 为了提高传输效率,禁止了ASCII 传输方式。虽然在ftp 客户软件中可以使用asc命令,但是传输文件时仍然使用二进制传输方式。 • 可以分别启用上传和下载的ASCII 传输方式,方法是编辑/etc/vsftpd 配置文件,将如下两行前的#去掉即可启用。 • #ascii_upload_enable=YES • #ascii_download_enable=YES

  17. 进一步配置vsftpd • 设置连接服务器后的欢迎信息 • 为了使用户连接服务器后显示信息,vsftpd 提供了两个选项,分别是: • ftpd_banner • banner_file • 例如:可以设置如下的ftpd_banner 选项的值: • ftpd_banner=Welcome to wnt FTP service. • 即:用户连接服务器后显示信息“Welcome to wnt FTP service.”。 • 也可以设置如下的banner_file 选项的值: • banner_file=/var/vsftpd_banner_file • 即:用户连接服务器后显示文件/var/vsftpd_banner_file 中的信息。

  18. 进一步配置vsftpd • 配置基本的性能和安全选项 • 1. 设置空闲的用户会话的中断时间 • 例如下面的配置: • idle_session_timeout=600 • 将在用户会话空闲10 分钟后被中断。 • 2. 设置空闲的数据连接的的中断时间 • 例如下面的配置: • data_connection_timeout=120 • 将在数据连接空闲2 分钟后被中断。 • 3. 设置客户端空闲时的自动中断和激活连接的时间 • 例如下面的配置: • accept_timeout=60 • connect_timeout=60 • 将使客户端空闲1 分钟后自动中断连接,并在中断1 分钟后自动激活连接。

  19. 进一步配置vsftpd • 设置最大传输速率限制 • 例如下面的配置: • local_max_rate=50000 • anon_max_rate=30000 • 将使本地用户的最大传输速率为50kbytes/sec,匿名用户的传输速率为30kbytes/sec。 • 5. 设置客户端连接时的端口范围 • 例如下面的配置: • pasv_min_port=50000 • pasv_max_port=60000 • 将使客户端连接时的端口范围在50000 和60000 之间。这提高了系统的安全性。

  20. 进一步配置vsftpd • 6. 设置chroot • 在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP 服务器来说是不安全的。 • 如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot 选项,涉及如: • chroot_local_user • chroot_list_enable • chroot_list_file • 有两种设置chroot 的方法: • (1)设置所有的本地用户执行chroot • 只要将chroot_local_user 的值设为YES 即可,即: • chroot_local_user=YES • (2)设置指定的用户执行chroot • 需要如下的设置: • chroot_local_user=NO • chroot_list_enable=YES • chroot_list_file= /etc/vsftpd.chroot_list • 这样,只有/etc/vsftpd.chroot_list 文件中指定的用户才执行chroot。

  21. 进一步配置vsftpd • 配置基于本地用户的访问控制 • 要配置基于本地用户的访问控制,可以通过修改vsftpd 的主配置文件/etc/vsftpd.conf 来进行,有如下两种限制方法: • 1. 限制指定的本地用户不能访问,而其他本地用户可访问 • 例如下面的设置: • userlist_enable=NO • userlist_deny=YES • userlist_file= /etc/vsftpd.user_list • 使文件/etc/vsftpd.user_list 中指定的本地用户不能访问FTP 服务器,而其他本地用户可访问FTP服务器。

  22. 进一步配置vsftpd • 2. 限制指定的本地用户可以访问,而其他本地用户不可访问 • 例如下面的设置: • userlist_enable= YES • userlist_deny=NO • userlist_file= /etc/vsftpd.user_list • 使文件/etc/vsftpd.user_list 中指定的本地用户可以访问FTP 服务器,而其他本地用户不可以访问FTP服务器。

  23. 进一步配置vsftpd • 配置基于主机的访问控制 • 由于vsftpd 有两种运行方式,即:由xinetd 启动和独立启动。这两种运行方式的主机访问控制配置是不同的,下面介绍的是由xinetd 启动的vsftpd 的主机访问控制的配置。显然,要配置这种主机访问控制,需要修改配置文件/etc/xinetd.d/vsftpd。 • 1. 只允许指定的主机访问 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • only_from <主机表> • 例如:only_from 166.111.219.0 • 表示只允许166.111.219.0网段内的主机访问。

  24. 进一步配置vsftpd • 2. 指定不能访问的主机 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • no_access <主机表> • 例如:no_access 202.106.138.0 • 表示202.106.138.0网段内的主机不能访问。 • 3. 配置每个客户机的最大连接数 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • per_source = 数值 • 例如:per_source = 5 • 表示每个客户机的最大连接数为5。

  25. 进一步配置vsftpd • 4. 配置服务器总的并发连接数 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • instances = 数值 • 例如:instances = 200 • 表示FTP 服务器总共支持的最高连接数为200。 • 5. 配置访问时间限制 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • access_time = hour:min-hour:min • 例如:access_time = 18:00-23:59 • 表示只有在下午6 点到午夜0 点之前才能访问此FTP 服务器; • 又如:access_time = 8:30-11:30 13:00-18:00 • 表示只有在上午8 点半到11 点半和下午1 点到下午6 点才能访问此FTP 服务器。

  26. 进一步配置vsftpd • 6. 指定连接失败时显示的信息 • 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: • banner_fail = 文件名 • 例如:banner_fail = /etc/vsftpd.busy_banner • 表示当连接失败时显示文件/etc/vsftpd.busy_banner 中的内容。

  27. 仅仅更改vsftpd.conf这个主配置文件是不够的,还要更改/etc/xinetd.d/vsftpd这个文件,来控制vsftpd的一些启动参数。仅仅更改vsftpd.conf这个主配置文件是不够的,还要更改/etc/xinetd.d/vsftpd这个文件,来控制vsftpd的一些启动参数。 • [root@linux8 /etc]# cat /etc/xinetd.d/vsftpd • service ftp • { • disable = no • socket_type = stream • wait = no • user = root • server = /usr/sbin/vsftpd • nice = 10 • per_source = 5 • instances = 200 • banner_fail = /etc/vsftpd.busy_banner • log_on_success += PID HOST DURATION • log_on_failure += HOST • } • 这种近乎偏执的配置会大大增加FTP服务器的安全性,使得vsftpd可以应用在Internet上而不用担心其安全性与稳定性。

More Related