ftp 服务器的设置

27
FTP 服服服服服服

Upload: feryal

Post on 13-Jan-2016

164 views

Category:

Documents


7 download

DESCRIPTION

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

TRANSCRIPT

Page 1: FTP 服务器的设置

FTP 服务器的设置

Page 2: FTP 服务器的设置

FTP 协议

FTP 概述FTP 就是 File Transport Protocol 文件传输协议的缩写, FTP服务器能够在网络上提供文件传输服务。 FTP 最初与 WWW 服务和邮件服务一起被列为因特网的三大应用,可见其在网络应用中的地位举足轻重。

FTP 服务器根据服务对象的不同可分为匿名服务器( Anonymous Ftp Server )和系统 FTP 服务器。前者是可以让任何人登录上去获取文件的 FTP 服务器,后者就只能是在 FTP 服务器上有合法账号的人才能使用。

Page 3: FTP 服务器的设置

FTP 协议FTP 工作原理:建立一个 ftp 会话包括五个软件元素的交互:用户接口( UI ):提供了一个用户接口并使用客户端协议解释器的服务客户端协议解释器( CPI ):向远程服务器协议机发送命令并且驱动客户 数据传输过程服务端协议解释器( SPI ):响应客户协议机发出的命令并且驱动服务器端

数据 传输过程客户端数据传输协议( CDTP ):负责完成和服务器数据传输过程及客 户端本地文件系统的通信服务端数据传输协议( SDTP ):负责完成和客户数据传输过程及服务器端

文件 系统的通信

Page 4: FTP 服务器的设置

FTP 协议

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

数据连接:用来传输用户的数据。

Page 5: FTP 服务器的设置

FTP 协议 FTP 的数据传输模式: 主动传输模式: ftp 服务器使用一个标准的端口( 20 )作为服务

器端的数据连接端口与客户建立数据连接。

被动传输模式: ftp 服务器在非 20 端口的其他数据传输端口上监听客户的请求。

单端口传输模式: ftp 服务器就会使用 ftp 协议的数据传输端口( 20 )和客户端的控制连接源端口建立一个数据传输连接。

Page 6: FTP 服务器的设置

FTP 协议 ftp 的典型消息 在用于 ftp 客户程序与 ftp 服务器进行通信时,经常会看到一些

由 ftp 服务器发送消息,这些消息是 ftp 协议所定义的。下面列出典型的 ftp 消息:

消息号 125: 数据连接打开,传输开始 200 :命令 OK 226 :数据传输完毕 331 :用户名 OK 425 :不能打开数据连接 426 :数据连接被关闭,传输被中断 452 :错误写文件 500 :语法错误,不可识别的命令

Page 7: FTP 服务器的设置

FTP 服务器的设置 目前在 UNIX 和 LINUX 下常用的免费 FTP 服务器软件主要是 Wu-FTP

和 ProFTP 这两种。 Wu-FTP 广泛应用在众多的 Unix 和 Linux 系统中,曾经是 RedHat Linux 默认的 FTP 服务器软件,其全称是 Washington University FTP 。

Wu-FTP 软件的特性: 1 、让用户在下载文件的同时可以对文件做自动的压缩或解压缩操作; 2 、可以对不同网络的机器做不同的存取限制和存取时间; 3 、可以记录文件上传和下载的时间; 4 、可以显示传输时的相关信息,以便让用户知道目前的传输状态; 5 、可以设定连接的数量限制,以提高工作效率。

Page 8: FTP 服务器的设置

FTP 服务器的设置

这些功能都适于吞吐量较大的 FTP 服务器的管理要求。

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

Page 9: FTP 服务器的设置

vsftpd 简介

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

Page 10: FTP 服务器的设置

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 支持每个虚拟用户具有独立的配置 支持带宽限制等

Page 11: FTP 服务器的设置

谁在使用 vsftpd 由于 vsftpd 具有上述的特性,现在越来越多的

FTP 服务器使用 vsftpd 。例如: ftp.redhat.com ftp.suse.com ftp.debian.org ftp.gnu.org ftp.gnome.org ftp.openbsd.org rpmfind.net

Page 12: FTP 服务器的设置

配置 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。

Page 13: FTP 服务器的设置

vsftpd 的配置文件

在 RedHat9.0 中 vsftpd 的默认配置文件有三个,分别是: /etc/vsftpd.conf /etc/vsftpd.ftpusers /etc/vsftpd.user_list 其中, /etc/vsftpd.conf 是主配置文件。 /etc/vsftpd.ftpuse

rs 中指定了哪些用户不能访问 FTP 服务器。 /etc/vsftpd.user_list 中指定的用户默认情况( 即在 /etc/vsftpd.conf 中设置了 userlist_deny=YES )下也不能访问 FTP 服务器,当在/etc/vsftpd.conf 中设置了 userlist_deny=NO 时,仅仅允许/etc/vsftpd.user_list 中指定的用户访问 FTP 服务器。

Page 14: FTP 服务器的设置

默认配置文件

默认的配置文件如下:

Page 15: FTP 服务器的设置

默认配置文件 这个默认的配置文件达到的效果是: ( 1 )允许匿名用户和本地用户登录; ( 2 )匿名用户的登录名为 ftp 或 anonymous ,口令为一个Email 地址;

( 3 )匿名用户不能离开匿名服务器目录 /var/ftp ,且只能下载不能上传;

( 4 )本地用户的登录名为本地用户名,口令为此本地用户的口令;

( 5 )本地用户可以离开自家目录切换至有权访问的其他目录,并在权限允许的情况下进行上传 /下载;

( 6 )写在文件 /etc/vsftpd.ftpusers 中的本地用户禁止登录。

Page 16: FTP 服务器的设置

进一步配置 vsftpd

启用 ASCII 传输方式 默认情况下, vsftpd 为了提高传输效率,禁止了 ASCII

传输方式。虽然在 ftp 客户软件中可以使用 asc 命令,但是传输文件时仍然使用二进制传输方式。

可以分别启用上传和下载的 ASCII 传输方式,方法是编辑/etc/vsftpd 配置文件,将如下两行前的 #去掉即可启用。

#ascii_upload_enable=YES #ascii_download_enable=YES

Page 17: FTP 服务器的设置

进一步配置 vsftpd 设置连接服务器后的欢迎信息 为了使用户连接服务器后显示信息, vsftpd 提供了两个选项,分别是:

ftpd_banner banner_file 例如:可以设置如下的 ftpd_banner 选项的值: ftpd_banner=Welcome to wnt FTP service. 即:用户连接服务器后显示信息“Welcome to wnt FTP se

rvice.”。 也可以设置如下的 banner_file 选项的值: banner_file=/var/vsftpd_banner_file 即:用户连接服务器后显示文件 /var/vsftpd_banner_file

中的信息。

Page 18: FTP 服务器的设置

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

动激活连接。

Page 19: FTP 服务器的设置

进一步配置 vsftpd 设置最大传输速率限制 例如下面的配置: local_max_rate=50000 anon_max_rate=30000 将使本地用户的最大传输速率为 50kbytes/sec ,匿名用户的传输速率为 30kbytes/sec 。

5. 设置客户端连接时的端口范围 例如下面的配置: pasv_min_port=50000 pasv_max_port=60000 将使客户端连接时的端口范围在 50000 和 60000 之间。这提高了系

统的安全性。

Page 20: FTP 服务器的设置

进一步配置 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 。

Page 21: FTP 服务器的设置

进一步配置 vsftpd 配置基于本地用户的访问控制 要配置基于本地用户的访问控制,可以通过修改 vsftpd 的主配置文件 /etc/vsftpd.conf 来进行,有如下两种限制方法:

1. 限制指定的本地用户不能访问,而其他本地用户可访问 例如下面的设置: userlist_enable=NO userlist_deny=YES userlist_file= /etc/vsftpd.user_list 使文件 /etc/vsftpd.user_list 中指定的本地用户不能访问 FT

P 服务器,而其他本地用户可访问 FTP 服务器。

Page 22: FTP 服务器的设置

进一步配置 vsftpd 2. 限制指定的本地用户可以访问,而其他本地用户不可访问

例如下面的设置: userlist_enable= YES userlist_deny=NO userlist_file= /etc/vsftpd.user_list 使文件 /etc/vsftpd.user_list 中指定的本地用户可以访问

FTP 服务器,而其他本地用户不可以访问 FTP 服务器。

Page 23: FTP 服务器的设置

进一步配置 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 网段内的主机访问。

Page 24: FTP 服务器的设置

进一步配置 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 。

Page 25: FTP 服务器的设置

进一步配置 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 服务器。

Page 26: FTP 服务器的设置

进一步配置 vsftpd 6. 指定连接失败时显示的信息 在配置文件 /etc/xinetd.d/vsftpd 的{}

中添加如下的配置语句: banner_fail = 文件名 例如: banner_fail = /etc/vsftpd.busy_b

anner 表示当连接失败时显示文件 /etc/vsftpd.bu

sy_banner 中的内容。

Page 27: FTP 服务器的设置

仅仅更改 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 上而不用担心其安全性与稳定性。