FTP服务(File Transfer Protocol,文件传输协议)是典型的C/S结构 的应用层协议,需要由服务端软件,客户端软件两部分共同实 现文件传输功能。既可以在局域网使用,又可以在广域网使 用。
在Windows系统中,常见的FTP服务器软件包括FileZilla Sener, Serv-U等,而在linux系统中,vsftpd是目前在linux/UNIX领域 应用 十分广泛的一款FTP服务软件
本次实验主要讲解vsftpd,在虚拟机上以redhat6.5为服务端,Windows7为客户端。
FTP传输模式
文本模式:ASCII模式,以文本序列传输数据
二进制模式:Binary模式,以二进制序列传输数据(更适合传输 程序,图片等非纯文本文件的传输)
FTP用户的类型
匿名用户:anonymous或ftp
本地用户:帐号名称,密码等信息保存在passwd,shadow文件 中
虚拟用户:使用独立的账号/密码数据文件
首先在服务端redhat6.5上面挂载光盘,用rpm安装vsftpd的软件包,并开启服务。
1)匿名访问配置
进入vsftpd的配置文件进行相关设置,赋予匿名用户上传文件,创建文件目录,以及其他写入权限(重命名等)。更改好设置保存并退出
开启ftpd服务,关闭防火墙,关闭增强型功能
在ftp站点创建一个文件并写入内容,修改站点权限,赋予普通用用读写执行权限
进入客户端(Windows7,前提两者能够互联互通),打开运行程序,匿名访问FTP服务,并上传下载文件
可以在C盘看到下载的文件,
把刚才的文件重命名,在上传到ftp服务端
在linux服务端查看vsftpd站点内容,可以看到刚刚上传的文件
2)本地用户登录
在Windows7系统的客户端使用本地用户张三进行登录访问FTP服务,并上传文件,可以看到本地用户登录的默认位置为用户的家目录,如果不进行高级别的安全设置,本地用户可以自由切换目录。
1)禁锢宿主目录(家目录)
若我们对本地用户只是采用vsftpd服务配置文件的默认设置,则用户将能够随意地切换到服务器的/var,/etc,/boot等宿主目录以外的文件夹,这样一来便存在很大的安全隐患。因此我们需要添加“chroot_local_user”配置项,将所有的本地用户禁锢在其宿主目录下
修改好配置文件,再重启vsftpd服务,然后从客户端用本地用户进行登录,测试一下是否被禁锢在宿主目录,可以看到用户已经被禁锢在宿主目录,而不能随意进行切换目录
2)黑白名单(使用user_list用户列表文件)
首先查看一下user_list文件,里面有两行注释,代表的含义分别为白名单和黑名单,系统默认设置该用户列表文件为黑名单。
那么我们把用户加入到这个列表文件里,则该用户就无法使用服务端提供的FTP服务
把用户zhangsan加入该列表文件,进行验证一下(每次修改完配置文件需要重启服务)
进入客户机使用zhangsan登陆不上,而使用lisi用户则可以,
我们也可以根据该列表文件的注释将其变成白名单(仅允许该列表文件内的用户访问FTP服务)
修改配置文件,添加设置“userlist_deny=NO”,然后保存修改设置并退出,重启服务,进入客户端进行验证。
进入客户机使用lisi登陆不上,而使用lzhangsan用户则可以,此时该列表文件变成了白名单。
3,虚拟账户
在实际工作环境,为了安全考虑我们往往会使用虚拟账户。
首先要在/etc/vsftpd目录下建立虚拟用户帐户,加入两个用户lisa和tom
然后将该虚拟用户帐户转换成数据库文件
修改权限,不让其他人看到虚拟账户的内容,并建立vuser用户,指定家目录/opt/vuser,并不使用shell登录
编辑pam认证模块支持虚拟用户的登录
对vsftpd配置文件进行编辑设置:开启虚拟用户,使用pam认证登录
设定好之后,保存并退出,重启服务。再进入客户端用lisa用户进行登录,并上传一个文件。
打开服务端查看虚拟用户vuser的家目录/opt/vuser,可以看到刚刚上传的文件,
再进入客户端用tom用户进行登录,并上传一个文件。
打开服务端查看虚拟用户vuser的家目录/opt/vuser,可以看到刚刚上传的文件,
我们可以看到lisa和tom上传的文件显示的所有者,所属组都不是本用户,而是一个虚拟用户vuser。这样安全性就提高了。
我们还可以给虚拟用户里面的单个用户配置不同的权限。
修改vsftpd配置文件,添加“user_config_dir=/etc/vsftpd/vu_dir”(单独用户配置文件夹)配置设定。
在配置文件夹里创建用户配置文件,给tom单独设置权限,然后重启服务。
在客户机分别用这两个用户进行登录访问ftp服务,并各自上传一个文件,查看它们的权限,有何不同。
在虚拟用户vuser的家目录下可以看到各自上传的文件,它们的权限不同。
原文地址:http://blog.51cto.com/13728740/2140089