实验16 FTP服务器的安装、配置与测试
实验目的:
1)了解FTP的基本原理和作用
2)掌握Linux下配置FTP服务器的方法,
3)掌握理解vsftpd.conf配置文件的各项基本含义
实验设备
计算机一台,Ubuntu Linux操作系统
实验内容
一、安装FTP 服务器
安装方法1:
通过源文件进行安装:sudo apt-get install vsftpd
如以上命令无法安装,则按照以下步骤进行手动安装
安装方法2:
1、从ftp下载vsftpd.deb 文件
2、在下载时直接用GDebi 软件包安装程序进行安装,也可以用以下命令在终端
窗口中进行安装
通过cd命令去到相应目录,然后用命令进行安装:
sudo dpkg -i vsftpd.deb
3、安装后用以下命令查看,软件包中主要包含哪些文件
dpkg -L vsftpd
安装方法3:
1.把vsftpd-
2.2.2.tar.gz复制到Linux
2.用cd命令去到对应的目录
3.用命令:tar vsftpd-2.2.2.tar.gz 进行解压
4.用cd命令进入解压后的文件夹:vsftpd-2.2.2
5.执行编译命令: make
6.执行安装命令:make install
7.启动:/usr/local/sbin/vsftpd &
注意:以上操作要在root用户下或加sudo
二、配置FTP 服务器
配置文件所在路径:/etc/vsftpd.conf
1、备份原配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
2、只支持匿名下载
修改vsftpd.conf 文件(可用gedit或者vi命令,又或者鼠标双击),检查是否有“anonymous_enable=YES”,并用如下命令重启FTP 服务器sudo /etc/init.d/vsftpd restart
注意:根据版本的不同,匿名用户的根目录有可能为/home/ftp /var/ftp / 或者/srv/ftp,安装完成后可以查看一下对应目录以确认ftp的根目录。
配置文件中,配置命令前面有#号的表示已经注释,不发挥作用,如需启用,把#号去掉即可!
访问ftp方式:
#ftp localhost 或者 #ftp 127.0.0.1
匿名用户名为:anonymous 密码不需要
(或者直接通过ftp访问软件进行访问,如IE、cuteftp等,如需通过网络访问,需把虚拟机的网络连接方式设置成桥接模式)
3、只支持匿名用户,但可以上传文件和建立目录夹
⑴恢复配置文件sudo cp /etc/vsftpd.conf.bak /etc/vsftpd.conf
⑵修改配置文件,检查是否有如下配置命令已经启用(没有则自行添加)
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
⑶建立上传目录夹,并赋给对目录写的权限(这里的根目录指的是上文中确定的默认根目录)
sudo mkdir /根目录/upload
sudo chmod 777 /根目录/upload
⑷重启FTP 服务
sudo /etc/init.d/vsftpd restart
思考题:
现在匿名用户已经可以在upload 目录中上传文件了,但还无法上传目录或新建
目录,如果希望做到这一点,还需要修改配置文件,你自己找一找,试一试吧。
4、匿名用户只支持下载,普通用户支持上传和下载
⑴恢复配置文件sudo cp /etc/vsftpd.conf.bak /etc/vsftpd.conf
⑵修改配置文件,检查是否有如下几行
anonymous_enable=YES
write_enable=YES
local_enable=YES
⑶重启FTP 服务
sudo /etc/init.d/vsftpd restart
说明:普通用户FTP 登录后的目录就是用户帐号的家目录
补充材料:vsftpd.conf 文件注解
#接受匿名用户
anonymous_enable=YES
#匿名用户login 时不询问口令
no_anon_password=YES
#接受本地用户
local_enable=YES
#可以上传(全局控制).若想要匿名用户也可上传则需要设置
anon_upload_enable=YES,若想要匿名用户可以建立目录则需要
anon_mkdir_write_enable=YES.这里禁止匿名用户上传,所以不设置这两项. write_enable=YES
#本地用户上传文件的umask
local_umask=022
#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过
xferlog_file 选项修改
xferlog_enable=YES
#日志使用标准xferlog 格式
xferlog_std_format=YES
#login 时的欢迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#设置的话将复盖上面的ftpd_banner 设置,用户login 时将显示
/etc/vsftpd/banner 中的内容
banner_file=/etc/vsftpd/banner
#为YES 则进入目录时显示此目录下由message_file 选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login 後所在目录,若没有设置此项,则本地用户login 後将在他的home 目录(/etc/passwd 的第六个字段)中.匿名用户的对应选项是anon_root< local_root=/var/ftp
#设置为YES 则下面的控制有效
chroot_list_enable=YES
#若为NO,则记录在chroot_list_file 选项所指定的文件(默认是
/etc/vsftpd.chroot_list)中的用户将被chroot 在登录後所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES
#若设置为YES 则记录在userlist_file 选项指定文件(默认是
/etc/er_list)中的用户将无法login,并且将检察下面的
userlist_deny 选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file 选项指定文件(默认是
/etc/er_list)中的用户的login 请求.若为YES 则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd 还要检察/etc/vsftpd.ftpusers 文件,记录在这个文件中的用
户将无法login!!
#服务器以standalong 模式运行,这样可以进行下面的控制listen=YES
#匿名用户的传输比率(b/s)
anon_max_rate=51200
#本地用户的传输比率(b/s)
local_max_rate=512000
#可接受的最大client 数目
max_clients=100
#每个ip 的最大client 数目
max_per_ip=5
connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd
FTP 数字代码的意义
110 重新启动标记应答。
120 服务在多久时间内ready。
125 数据链路埠开启,准备传送。
150 文件状态正常,开启数据连接端口。
200 命令执行成功。
202 命令执行失败。
211 系统状态或是系统求助响应。
212 目录的状态。
213 文件的状态。
214 求助的讯息。
215 名称系统类型。
220 新的联机服务ready。
221 服务的控制连接埠关闭,可以注销。
225 数据连结开启,但无传输动作。
226 关闭数据连接端口,请求的文件操作成功。
227 进入passive mode。
230 使用者登入。
250 请求的文件操作完成。
257 显示目前的路径名称。
331 用户名称正确,需要密码。
332 登入时需要账号信息。
350 请求的操作需要进一部的命令。
421 无法提供服务,关闭控制连结。
425 无法开启数据链路。
426 关闭联机,终止传输。
450 请求的操作未执行。
451 命令终止:有本地的错误。
452 未执行命令:磁盘空间不足。
500 格式错误,无法识别命令。
501 参数语法错误。
502 命令执行失败。
503 命令顺序错误。
504 命令所接的参数不正确。
530 未登入。
532 储存文件需要账户登入。
550 未执行请求的操作。
551 请求的命令终止,类型未知。
552 请求的文件终止,储存位溢出。
553 未执行请求的的命令,名称不正确。