第八章用 Linux构建 Intranet 82.1安装 vsftpd服务器 Vsftpd是目前 Linux最好的FTP服务器工具之一,其中的vs就是“ very secure” (很安全)的缩写,可见它的最大特点是安全,除此之外,它还具有体积小,可定 制性强,效率高等优点 如果选择完全安装 Redhat linux9.0,则系统就默认安装 vsftpd服务器。可以 在终端命令窗口输入以下命令进行验证 rpm -ga grep vsftpd 如果结果显示为“ vsftpd-1.1.3-8”,则说明系统己经安装了 vsftpd服务器。 如果安装 Redhat linux9.0时没有选择 vsftpd服务器,则可以在图形窗口下单 击【主菜单】|【系统设置】|【添加删除应用程序】菜单项,在出现的【软件包管 理】对话框里选中“FTP服务器”选项,然后单击【更新】按钮,插入第三张安装 光盘,按照屏幕提示完成安装。 也可以直接插入第三张安装光盘,定位到/ RedHat/RPMS下的 vsftpd-1.1.3-8.i386.rpm安装包,然后在终端命令窗口执行以下命令即可开始安 装。 rpm -ivh vsftpd-1. 1.3-8. 1386. rpm 82.2配置 vsftpd服务器 在 Redhat linux90中, vsftpd共有3个配置文件,它们是 vsftpd. ftpusers位于/etc目录下。指定哪些用户帐号不能访问FIP服务器。 vsftpd. usr list位于ltc目录下。该文件里的用户帐号在默认情况下也不能访问 FTP服务器,仅当 vsftpd. conf配置文件里启用 userlist enable=No选项时才允许访问 sftpd. conf位于/ /etc/vsftpd目录下。它是一个文本文件,可以用Kate、v等文 本编辑工具对它进行修改,该文件定义用户登录控制、用户权限控制、超时设置、 服务功能选项、服务器性能选项、服务器响应消息等FIP服务器的配置 (1)用户登录控制 anonymousenable=YES,允许匿名用户登录。 no_ anon password=YES,匿名用户登录时不需要输入密码。 local enable=YES,允许本地用户登录 deny email enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单, 以防止这些人使用Dos攻击。 (2)用户权限控制 write enable=YES,开启全局上传权限。 anon upload enable=YES,允许匿名用户具有上传权限,很明显,必须启用 write enable=YES,才可以使用此项。 anon mkdir wirte enable=YES,允许匿名用户有创建目录的权利 chown uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户帐 号,注意,这里建议不要指定root帐号为匿名上传文件的属主用户! 161
第八章 用 Linux 构建 Intranet 8.2.1 安装 vsftpd 服务器 Vsftpd 是目前 Linux 最好的 FTP 服务器工具之一,其中的 vs 就是“very secure” (很安全)的缩写,可见它的最大特点是安全,除此之外,它还具有体积小,可定 制性强,效率高等优点。 如果选择完全安装 RedHat Linux9.0,则系统就默认安装 vsftpd 服务器。可以 在终端命令窗口输入以下命令进行验证: # rpm –qa | grep vsftpd 如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装了 vsftpd 服务器。 如果安装 RedHat Linux9.0 时没有选择 vsftpd 服务器,则可以在图形窗口下单 击【主菜单】|【系统设置】|【添加删除应用程序】菜单项,在出现的【软件包管 理】对话框里选中“FTP 服务器”选项,然后单击【更新】按钮,插入第三张安装 光盘,按照屏幕提示完成安装。 也可以直接 插入第三张安装光 盘,定位到 /RedHat/RPMS 下 的 vsftpd-1.1.3-8.i386.rpm 安装包,然后在终端命令窗口执行以下命令即可开始安 装。 # rpm –ivh vsftpd-1.1.3-8.i386.rpm 8.2.2 配置 vsftpd 服务器 在 RedHat Linux9.0 中,vsftpd 共有 3 个配置文件,它们是: vsftpd.ftpusers 位于/etc 目录下。指定哪些用户帐号不能访问 FTP 服务器。 vsftpd.usr_list 位于/etc 目录下。该文件里的用户帐号在默认情况下也不能访问 FTP 服务器,仅当 vsftpd.conf 配置文件里启用 userlist_enable=No 选项时才允许访问。 vsftpd.conf 位于/etc/vsftpd 目录下。它是一个文本文件,可以用 Kate、vi 等文 本编辑工具对它进行修改,该文件定义用户登录控制、用户权限控制、超时设置、 服务功能选项、服务器性能选项、服务器响应消息等 FTP 服务器的配置。 (1)用户登录控制 anonymous.enable=YES,允许匿名用户登录。 no_anon_password=YES,匿名用户登录时不需要输入密码。 local_enable=YES,允许本地用户登录。 deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单, 以防止这些人使用 Dos 攻击。 (2)用户权限控制 write_enable=YES,开启全局上传权限。 anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用 write_enable=YES,才可以使用此项。 anon_mkdir_wirte_enable=YES,允许匿名用户有创建目录的权利。 chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户帐 号,注意,这里建议不要指定 root 帐号为匿名上传文件的属主用户! 161
算机网络技术及应用 chown username= whoever,当启用 chown uploads=YES时,所指定的属主用户 帐号,此处的 whoever用合法的用户帐号来代替 chroot list enable=YES,用一个列表限定哪些本地用户只能在自己目录下活动, 如果 chroot local user=YES,那么这个列表里指定的用户是不受限制的 hroot list file=/ etc/vsftpd chroot list,如果 chroot local user=YES,则指定该列 表( chroot local user)的保存路径(默认是/ etc/vsftpd chroot list)。 cii upload enable=YES; ascii download enable=YES,默认情况下服务器假装 接受ASCI模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务 器真正实现ASCI模式的传输 注意:启用 ascii download enable选项会让恶意远程用户在ASCI模式下用 “SIZE/big/fle”这样的指令大量消耗FTP服务器的O资源。 (3)用户连接和超时选项 idle session timeout=600,设定默认的空闲超时时间,用户超过这段时间不动作 将被服务器踢 data connection timeout=120,设定默认的数据连接超时时间 (4)服务器日志和欢迎信息 dirmessage enable=YES,允许为目录配置显示信息,显示每个目录下面的 message file文件的内容 ftpd banner= Welcome to ftp service,自定义FTP用户登录到服务器所看到的欢 迎信息。 xferlog enable=YES,启用记录上传/下载活动日志功能。 xferlog file=var/ log/vsftpd log,自定义日志文件的保存路径和文件名,默认是 /var/log/vsftpd. log. 8.2.3启动/重新启动/停止 vsftpd服务 在终端命令窗口执行以下命令启动/重新启动/停止 vsftpd服务: 启动 vsftpd服务: /etc/rc. d/init. d/vsftpd start 重新启动 vsftpd服务: # /etc/rc. d/init. d/vsftpd restart 关闭 vsftpd服务 # /etc/rc. d/init. d/vsftpd stop 确认 vsftpd服务已经启动后,可以在任意一台 Windows主机的DOS命令窗口 里输入“ ftp FTPAddress”"(用实际的FTP服务器P地址或者域名代替 FTPAddress), 注意用户名、密码都是fp(fp是匿名用户的映射用户帐号),例如: F:\ Peter ftp FTPAddress Connected to ftpaddress 220( vsFTPd1.3)/stpd的响应请求 162
计算机网络技术及应用 chown_username=whoever,当启用 chown_uploads=YES 时,所指定的属主用户 帐号,此处的 whoever 用合法的用户帐号来代替。 chroot_list_enable=YES,用一个列表限定哪些本地用户只能在自己目录下活动, 如果 chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。 chroot_list_file=/etc/vsftpd.chroot_list,如果 chroot_local_user=YES,则指定该列 表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。 ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器假装 接受 ASCII 模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务 器真正实现 ASCII 模式的传输。 注意:启用 ascii_download_enable 选项会让恶意远程用户在 ASCII 模式下用 “SIZE/big/file”这样的指令大量消耗 FTP 服务器的 I/O 资源。 (3)用户连接和超时选项 idle_session_timeout=600,设定默认的空闲超时时间,用户超过这段时间不动作 将被服务器踢出。 data_connection_timeout=120,设定默认的数据连接超时时间。 (4)服务器日志和欢迎信息 dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的 message_file 文件的内容。 ftpd_banner=Welcome to FTP service,自定义 FTP 用户登录到服务器所看到的欢 迎信息。 xferlog_enable=YES,启用记录上传/下载活动日志功能。 xferlog_file=/var/log/vsftpd.log,自定义日志文件的保存路径和文件名,默认是 /var/log/vsftpd.log。 8.2.3 启动/重新启动/停止 vsftpd 服务 在终端命令窗口执行以下命令启动/重新启动/停止 vsftpd 服务: 启动 vsftpd 服务: # /etc/rc.d/init.d/vsftpd start 重新启动 vsftpd 服务: # /etc/rc.d/init.d/vsftpd restart 关闭 vsftpd 服务: # /etc/rc.d/init.d/vsftpd stop 确认 vsftpd 服务已经启动后,可以在任意一台 Windows 主机的 DOS 命令窗口 里输入“ftp FTPAddress”(用实际的 FTP 服务器 IP 地址或者域名代替 FTPAddress), 注意用户名、密码都是 ftp(ftp 是匿名用户的映射用户帐号),例如: F: \ Peter > ftp FTPAddress Connected to FTPAddress 220(vsFTPd1.1.3) //vsftpd 的响应请求 162