Linux中的ftp文件传输服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中的ftp文件传输服务相关的知识,希望对你有一定的参考价值。


实验要求:

一、构建可匿名访问的ftp服务器

1.匿名用户能下载和上传文件到pub目录中。

2.本地用户登录ftp后禁锢在自己的宿主目录中,并禁止本人名账户访问ftp

3.所有上传的文件都去除非宿主位读写权限,使用ftp命令验证效果。

二、构建虚拟用户服务器

1.添加benet、班级名、本人名三个虚拟账户。

2.Benet用户只允许下载文件,班级名账户可以下载上传文件,本人账户可以下载上传文件和目录并可以删除、修改文件和目录的名称。

3.服务器最多允许1000个并发连接,每个ip最多可以同时连接两个,benet用户限速100kb/s





1.构建匿名访问的FTP服务

技术分享

安装vsftpd软件包


技术分享

RHEL6.5系统中,FTP匿名用户对应的系统用户为ftp,其宿主目录/var/ftp就是匿名访问vsftpd服务时所在的FTP根目录。

注意:FTP根目录的权限不允许匿名用户或其他用户有写入权限

这里,将子文件夹pub的宿主改为ftp,便于匿名用户ftp拥有上传数据的权限。

 

技术分享

在修改配置文件之前,一定要将其备份。


技术分享

修改vsftpd.conf配置文件,以下列出涉及的配置项:


技术分享

启用vsftpd服务的写入权限(全局性的选项,针对所有用户,若要允许其上传,都必须启用此配置项)。


技术分享

允许匿名用户访问


技术分享

允许匿名用户在可写入的目录中上传文件


技术分享

此配置项用于设置匿名用户所上传的文件或目录的权限掩码,拥有的权限=777-权限掩码。

这里,仅属主用户拥有权限。


技术分享

禁用本地用户登录


技术分享

将所有的宿主目录禁锢在其宿主目录中,使用户不能够任意切换到服务器的其他文件夹中。


技术分享

配置完成后,启动vsftpd服务,并使用netstat命令查看监听状态。


技术分享

linux字符界面访问FTP服务器,需要安装ftp安装包,从而可以执行ftp命令。


技术分享

用户名为ftp,不用输入密码直接回车,成功登录FTP服务器。

具体的指令可以通过执行?或help来查看在线帮助信息。(lcd指令可以在ftp目录和本地目录之间进行切换)

 

补充:用户验证的FTP服务

技术分享

技术分享

技术分享

技术分享

技术分享


技术分享

启用user_list用户列表文件

技术分享

仅允许列表中的用户登录


技术分享

技术分享

修改user_list配置文件,添加用户。


技术分享

清空其他内容,输入允许访问的用户。


技术分享

重新加载服务

 

2.构建虚拟用户访问的FTP服务

技术分享

创建文本格式的用户名、密码列表


技术分享

奇数行为用户名,偶数行用户对应的密码。


技术分享

使用db_load工具创建出Berkeley DB格式的数据库文件

选项:-T允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件

  -t hash指定读取数据文件的基本方法

  -f指定数据源文件

 

技术分享

查看转换后的文件类型


技术分享

创建FTP根目录,添加虚拟用户的映射账号。

注意:vsftpd服务器对虚拟用户的控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户的宿主目录作为所有虚拟用户登录后共用的FTP根目录。


技术分享

调整权限以允许浏览目录


技术分享

技术分享

为虚拟用户创建PAM认证文件

db=/etc/vsftpd/vusers指定了要使用的虚拟用户数据库文件位置

注意:vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以linux主机的系统用户账号进行认证。

 

技术分享

技术分享

技术分享

需要映射本地用户,所以开启此项


技术分享

技术分享

启用用户映射功能


技术分享

指定映射的系统用户名称


技术分享

指定新的PAM认证文件


技术分享

为不同的虚拟用户建立独立的配置文件(指定了配置文件位置)


技术分享

限制并发客户连接最多为1000


技术分享

限制每个IP地址的连接数最多为两个

修改完vsftpd.conf配置文件后保存


技术分享

创建用户配置文件夹,并且切换到该文件夹中。


技术分享

技术分享

为不同的用户创建配置文件,默认具有访问FTP服务器的权限,根据需求添加其他权限即可。

该配置项表示用户最大传输速率为100kb/s


技术分享

技术分享


技术分享

技术分享

注意:需要为虚拟用户指定根目录,可以添加配置项:local_root=/指定的目录




附录:

常用的全局配置项

listen=YES:是否以独立运行的方式监听服务

listen_address=192.168.4.1:设置监听的 IP 地址

listen_port=21:设置监听 FTP 服务的端口号

write_enable=YES:是否启用写入权限

download_enableYES:是否允许下载文件

userlist_enable=YES:是否启用 user_list 列表文件

userlist_deny=YES:是否禁用 user_list 中的用户

max_clients=0:限制并发客户端连接数

max_per_ip=0:限制同一 IP 地址的并发连接数

 

常用的匿名 FTP 配置项

anonymous_enable=YES:启用匿名访问

anon_umask=022:匿名用户所上传文件的权限掩码

anon_root=/var/ftp:匿名用户的 FTP 根目录

anon_upload_enable=YES:允许上传文件

anon_mkdir_write_enable=YES:允许创建目录

anon_other_write_enable=YES:开放其他写入权

anon_max_rate=0:限制最大传输速率(字节/秒)

 

常用的本地用户 FTP 配置项

local_enable=YES:是否启用本地系统用户

local_umask=022:本地用户所上传文件的权限掩码

local_root=/var/ftp:设置本地用户的 FTP 根目录

chroot_local_user=YES:是否将用户禁锢在主目录

local_max_rate=0:限制最大传输速率(字节/秒)


本文出自 “网络技术” 博客,请务必保留此出处http://fjc365.blog.51cto.com/11891287/1869780

以上是关于Linux中的ftp文件传输服务的主要内容,如果未能解决你的问题,请参考以下文章

56.xftp传输文件使用pure-ftpd搭建ftp服务

Linux下FTP服务器搭建

FTP文件传输原理

LINUX:FTP服务

ftp介绍和搭建

Linux 中实现文件传输服务(FTPSFTP)