RHEL 5服务篇―部署FTP文件传输服务(一)

时间:2021-01-03 21:49:44

部署FTP文件传输服务(一)

FTP典型的C/S结构的应用层协议,需要有服务端软件和客户端软件两个部分共同实现文件传输功能。

1、FTP连接及传输模式

FTP服务器默认使用TCP协议的20、21端口与客户机进行通信。20端口用于建立数据连接。并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令。

主动模式:服务器主动发起数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以ROTR命令告知服务器”我打开了某端口,你来连接我“,于是服务器从20端口向客户端的该端口发送请求并建立数据连接。

被动模式:服务器被动等待数据连接。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端”我打开了某端口,你来连接我“。于是客户端向服务器的该端口(非20)发送请求并建立数据连接。


2、FTP用户类型

匿名用户:其用户名为ftp或anonymous,提供任意密码(包括空密码)都可以登录ftp。

本地用户:直接使用本机系统用户账号来登录ftp。

虚拟用户:使用ftp服务器软件独立的用户数据库文件中的虚拟用户登录ftp。


3、vsftpd的配置文件

安装vsftpd可使用rpm命令,vsftpd软件在系统光盘中的Server目录下。

[root@localhost /]#rpm -ivh /media/Server/vsftpd-2.0.5-12.el5.i386.rpm

vsftpd的配置文件默认在”/etc/vsftpd/”目录下,包括用户列表文件(ftpusers、user_list)和主配置文件(vsftpd.conf)等。

用户列表配置文件

ftpusers :此文件中列出的用户将禁止登录vsftpd服务器,不管该用户是否在user_list文件中出现。

user_list :此文件中包含用户可能被禁止登录,也可能被允许登录,具体取决于主配置文件vsftpd.conf中的设置。

主配置文件vsftpd.conf

在vsftpd的主配置文件中,配置行采用“配置项=参数”的格式。

常见全局配置项如下:

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

listen_address=0.0.0.0         :设置监听FTP服务的IP地址

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

write_enable=YES                :启用任何形式的写入权限,需要开启

download_enable=YES         :是否允许下载,需要开启

dirmessage_enable=YSE     :用户切换进入目录是显示.message(如果存在)文件的内容

xferlog_enable=YES              :启用xferlog日志,默认记录到“/var/log/xferlog”

xferlog_std_format=YES       :启用xferlog标准日志格式,若禁用此项将使用vsftpd自己的格式。

connect_from_port_20=YES :允许服务器主动模式(从20端口建立数据连接)

pasv_enable=YES                 :允许被动模式连接

pasv_max_port=24600          :设置用户被动模式的服务器最大端口

pasv_min_port=24500           :设置用户被动模式的服务器最小端口

pam_service_name=vsftpd   :设置用于用户认证的PAM文件位置

userlist_enable=YES             :是否启用suer_list用户类表文件

userlist_deny=YES                :是否禁止user_list列表文件中的用户账号

max_clients=0                       :最多允许多少个客户端同时连接(0无限制)

max_per_ip=0                        :对于来自同一个IP地址的客户端。最多允许多少个并发连接(0无限制)

tcp_wrappers=YES               :是否启用TCP_Wrappers主机访问控制

常见匿名用户配置项如下:

RHEL 5服务篇―部署FTP文件传输服务(一)

常见本地用户配置项如下:

RHEL 5服务篇―部署FTP文件传输服务(一)

关于vsftpd.conf文件中的更多配置项,可执行“man vsftpd.conf”命令查看相关的帮助。


4、搭建匿名FTP访问的目录

搭建匿名访问的FTP需要修改配置文件“vsftpd.conf”,修改如下:

[root@localhost /]#vim /etc/vsftpd/vsftpd.conf

RHEL 5服务篇―部署FTP文件传输服务(一)

在上述配置内容中。使用了“anon_umask”配置项,此配置项用于设置匿名用户所上传文件或目录的权限权限掩码。权限掩码的作用与子网掩码的作于有点类似,用于去掉特定的权限。列如:若上传权限掩码设为022,则所上传的文件或目录将减去022对应的这不分权限,实际结果是所上传文件的默认权限为644、目录的实际权限是755。

默认匿名用户访问的FTP根目录在“/var/ftp”下,匿名用户的上传下载权限取决于本地权限加上FTP的权限,也就是说如果要实现匿名用户上传文件,在FTP根目录下必须有匿名用户ftp可以写入的目录,否则将不能够上传文件,哪怕是在配置文件中允许了匿名用户上传选项也不能上传。

修改完配置文件后,启动vsftpd服务即可在客户端访问了。

[root@localhost /]#service vsftpd start


5、搭建本地用户验证的FTP访问目录

搭建本地用户访问的FTP也需要修改“vsftpd.conf”配置文件,修改如下:

[root@localhost /]#vim /etc/vsftpd/vsftpd.conf

local_enable=YES                 --启用本地系统用户

write_enable=YES                --启用服务器的写入权限

local_umask=077                 --权限掩码设为077,及上传的文件和目录只有属主才有权限

chroot_local_user=YES       --将用户禁锢在宿主目录下,否则用户将能够任意切换到服务器的/var,/etc,/boot...等目录下

......省略部分内容

默认本地用户访问的FTP根目录也在“/var/ftp”下。

修改完配置文件后,重新加载vsftpd服务的配置文件即可在客户端访问了。

[root@localhost /]#service vsftpd reload

6、Linux客户端访问FTP

在客户端访问ftp可以是专门的ftp客户端工具,也可以使用ftp命令来访问,在Linux下使用ftp命令还是较多一些。

格式 ftp [目标ip地址]

[root@localhost /]#ftp 192.168.1.1

输入正确的用户名和密码就可以访问ftp了,如果是匿名用户输入ftp或anonymous,空密码即可登录ftp了。

登录ftp后可以使用cd命令切换不同的目录,使用lcd可以切换本机的目录。

使用ls可以查看ftp中的文件或目录,使用pwd可以显示ftp的路径,使用!ls可以查看本机的目录,使用!pwd可以查看本机的路径。

使用get命令可以下载,使用put命令可以上传,mget下载多个文件或目录,mput上传多个文件或目录。

在知道要下载的完成URL路径地址的情况下,用户也可以使用wget命令工具直接下载文件,省出了交互式的登录过程。

[root@localhost /]#wget ftp://192.168.1.1/put/linux_qq.tar.gz



本文出自 “邓奇的Blog” 博客,谢绝转载!

相关文章