Linux入门——FTP(1)

常见的三大共享服务:ftp,nfs,samb。ftp是一种应用层服务,nfs是基于内核来实现网络文件共享服务,samba是linux上实现CIFS(SMB)协议来解决跨平台的文件共享服务。本篇主要介绍FTP服务,后续会为大家介绍nfs,与samb。

FTP简介

ftp是互联网诞生以来最古老的三大协议之一(另外俩是http,和邮件服务)用来阐述文件共享服务,最主要的功能是在服务器与客户端之间进项文件传输。因为古老所以他用的是明码传输,在使用过程中存在很大的安全隐患。我们主要介绍安全但功能较少的vsftpd。

ftp的传输使用的是TCp协议,是一种基于c/s的架构模式,服务端通过FTP服务向用户提供FTP服务,客户端通过客户端命令连接服务端进行指令的执行与数据的传输。TCP在建立连接前会先进行三次连接握手建立TCP会话连接,不过FTP在建立连接时建立两个通道,分别是命令通道与数据通道,这两个通道的建立都必须通过三次握手。此外FTP的数据传输连接还分主动连接与被动连接。主动是指数据传输连接由服务端主动创建,服务端主20号端口主动去连接客户端的某个随机端口;被动连接时有客户端的发起的,由客户端的某个随机端口去连接服务端的某个随机端口,过程如下:

主动连接:

1、客户端先开一个随机端口如9527,然后客户端以这个端口去连接服务端的21号端口,建立命令通道;

2、命令通道建立完成后,服务端会以tcp的20号端口主动去连接对应的客户端的9528端口,建立数据通道;

3、建立通道后开始传输数据;

被动连接:

1、客户端先开一个随机端口如4396,然后客户端以这个端口去连接服务端的21号端口,建立命令通道;

2、命令通道建立后,服务会根据当前配置开启一个随机的端口如7777,并告诉客户端,请连接我的7777端口建立数据通道;

3、客户端就以4397端口去连接服务端的7777端口建立数据通道;

4、在数据通道建立后开始传输数据;

FTP的功能

1、数据传输;

2、实现对不同等级用户的身份验证,可以根据不同用户的身份来分配不同的数据操作权限。FYP默认有三种不同的身份:实体账号、访客、匿名用户。不同用户的群贤自然不同;

3、限制用户的活动目录。我们可以限之不同用户在不同的目录中,而不用担心不同用户之间蜜蜜的泄露,同时对系统起到一定的保护作用;

4、虚拟用户,即非系统用户,通过虚拟用户可以一定程度上减少ftp攻击对系统的威胁,因为用户本就不存在

VSFTPD安装

vsftp对应的包就叫做vsftpd ;所以就用yum -y install vsftpd,安装后会产生这几个文件和目录;

1、/etc/pamd.d/vsftpd    用户认认证配置文件;

2、/etc/vsftpd      配置文件目录;

3、vsftpd.conf      主配置文件;

4、/var/ftp        匿名用户(映射的ftp用户)共享资源位置;

5、用户自己家目录    系统用户通过ftp访问的资源的位置 ;

6、给虚拟哦用户制定的映射成为的系统用户的家目录    虚拟用户通过ftp访问的资源的位置;

VSFTP常用的配置

1、匿名用户的而配置

anonymous_enable=YES (Default: YES) 是否开启匿名用户

anon_upload_enable=YES (Default: NO) 是否允许匿名用户上传,如启动,还需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限

anon_mkdir_write_enable=YES (Default: NO) 是否允许匿名用户创建目录,如启动,还需让ftp用户对/var/ftp/pub及其他需要上传的目录设置wx权限
no_anon_password=YES (Default: NO) 使用ftp客户端登录匿名时,是否密码,如为NO,即默认,则需要输入任意密码,如为YES,直接登录,不用输入。
anon_world_readable_only (Default: YES) 匿名用户下载文件时,文件一定要other上也有r权限。
anon_other_write_enable=YES (Default: NO) 匿名用户是否可以删除及重命名
anon_umask (Default: 077) 匿名用户上传时的默认权限。
chown_uploads=YES (Default: NO) 匿名用户上传文件的所属人是否要更改。如YES,则更改为chown_username所指定的

guest_enable (Default: NO) 所有的非匿名用户都映射为了guest用户

guest_username (Default: ftp) guest用户是谁,默认ftp

2、系统用户的配置

local_enable=NO (Default: NO) 是否开启Linux本地用户登录

local_root=(Default: (none)) 非匿名用户登录时所在的目录,默认是各自的家目录

write_enable=NO (Default: NO) 是否允许Linux本地用户上传文件
local_umask=022 (Default: 077) 本地用户上传文件的默认权限

chroot_local_user=YES 将linux系统用户的根目录设置为家目录,注意在Centos7中该目录对用户不能有w权限,当为YES时,所有人都不能越狱,当为NO时,所有人都能越狱。
chroot_list_enable=YES 越狱例外,下一行一定要有。当上一行为YES是,为白名单,当为NO时,为黑名单

chroot_list_file=/etc/vsftpd/chroot_list

3、日志

xferlog_enable=YES (Default: no) 是否开启上传、下载日志
xferlog_std_format (Default: no) 是否使用wuftp格式 
xferlog_file (Default: /var/log/xferlog) xferlog的存放路径
dual_log_enable (Default: NO) 是否同时开启vsftpd格式的日志,该格式记录信息更多,不只upload/downloads
vsftpd_log_file (Default: /var/log/vsftpd.log) vsftpd格式日志的存放路径 

4、改变文件上传的属主

chown_username (Default: root)   改变文件上传的属主 
chown_upload_mode=0755 (Default: 0600)在chown_uploads生效的前提下,设置匿名用户的上传权限,一旦设置anon_umask失效。且权限一定要权限为4

5、是否启用控制用户登录的列表文件

userlist_enable=YES (Default: NO) 是否启用用户过滤功能。如YES,则开启,过滤文件由userlist_file决定
userlist_file (Default: /etc/vsftpd/user_list) 过滤文件路径 
userlist_deny (Default: YES) 当该值为YES时userlist为黑名单,反之为白名单
/etc/vsftpd/ftpuser 固定是黑名单,写入其中的用户一定不能登录ftp

6、连接限制

max_clients (Default: 2000) 允许同时登录的客户端请求数
nopriv_user (Default: nobody) 客户端建立命令通道时,服务端与之连接的进程的所属用户
connect_timeout (Default: 60) 主动模式数据连接超时时长
accept_timeout (Default: 60) 被动模式数据连接超时时长
data_connection_timeout (Default: 300) 数据连接无数据传输时的超时时长
idle_session_timeout (Default: 300) 无命令操作超时时长

7、传输速率

anon_max_rate (Default: 0) 匿名用户上传和下载的最大速度,单位字节。
local_max_rate (Default: 0) Linux本地用户上传和下载的最大速度,单位字节。

8、其他相关参数

listen_port (Default: 21) FTP命令通道的监听端口
connect_from_port_20 (Default: YES) 是否允许主动传输
ftp_data_port (Default: 20) 主动模式使用的数据传输端口
pasv_min_port=9527 (Default: 0) 被动模式,服务端开启的随机端口的最小值
pasv_max_port=9529 (Default: 0) 被动模式,服务端开启的随机端口的最大值
ftpd_banner (Default: none) 登录时的欢迎信息。不是所有客户端都可见
banner_file Default: (none) 登录时的欢迎信息。不是所有客户端都可见,当该行存在时,则优先于ftpd_banner
dirmessage_enable (Default: NO) 每进入一个目录时,如果该目录下有.message文件,则将其内容展现出来,不是所有客户端都可见
message_file (Default: .message)       .message文件路径
ascii_upload_enable=NO       ascii上传开启
ascii_download_enable=NO     ascii下载开启

 

 

posted @ 2018-10-09 15:49  正在来的4号  阅读(479)  评论(0编辑  收藏  举报