Linux----------ftp的介绍及安装使用
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
一、ftp简介
FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。
FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
ftp既可以上传也可以下载。
ftp工作在应用层,监听在21号端口,也是一种C/S架构。
二、常用的ftp软件有:
客户端工具 服务端软件
ftp wu-ftpd
lftp,lftpget proftpd(提供web接口的一种ftp服务端程序)
wget,curl pureftp
filezilla vsftpd (常用的)
gftp (linux GUI图形化) ServU(windows平台的一种强大ftp服务端程序)
商业软件(flashfxp,cuteftp)
三、ftp数据连接模式
ftp有两种连接模式:命令连接和数据连接
1.命令连接是指文件管理类命令,始终保持连接,直到用户退出
2.数据连接是指数据传输时创建和关闭的连接
数据连接需要注意数据连接格式和数据连接模式
1)数据连接格式分为文件格式和二进制格式
2)数据连接模式分为主动模式和被动模式
主动模式:由服务器端创建数据连接
被动模式:由客户端创建数据连接
(一)主动模式:
命令连接: client(1025) --> server(21)
客户端以一个大于1024的随机端口连接服务器端21号端口
数据连接:server(20/tcp) --> client(1025+1)
服务器端20/tcp端口连接客户端命令连接使用的随机端口+1的端口
(二)被动模式:
命令连接: client(1110) --> server(21)
客户端以一个非提供服务的随机端口连接服务器端21号端口,服务器端让客户端数据连接时连接到一个随机端口
数据连接: client (1110+1) --> server (随机端口)
客户端以命令连接时的端口+1去连接服务器端提供的随机端口
#主动模式的弊端是客户端的端口是随机的,服务器端去连接可能被防火墙拒绝,但是客户端不开启防火墙就安全性太差
#被动模式的弊端是服务器端提供的端口是随机的,服务器也不能开启防火墙,优点是客户端比较安全
四、用户验证方式
ftp的用户访问方式有三种:
虚拟用户:仅用于访问特定服务中的资源
本地用户:可以登录系统的真实用户(有权限,有安全隐患)
匿名用户
虚拟用户通过ftp访问的指定用户目录的资源
系统用户通过ftp访问的是用户的家目录
匿名用户通过ftp访问的是映射用户的家目录
五、安装并使用vsftp
用户配置认证文件 /etc/pam.d/vsftpd
配置文件目录 /etc/vsftpd
主配置文件 /etc/vsftpd/vsftpd.conf
主配置文件常用参数:
参数 | 作用 |
---|---|
anonymous_enable=YES | 启用匿名用户登录 |
anon_upload_enable=YES | 允许匿名用户上传 |
anon_mkdir_write_enable=YES | 允许匿名用户创建目录,但是不能删除 |
anon_other_write_enable=YES | 允许匿名用户创建和删除目录 |
local_enable=YES | 启用本地用户登录 |
write_enable=YES | 允许本地用户有写权限 |
local_umask=022 | 通过ftp上传文件的默认遮罩码 |
chroot_local_user=YES | 禁锢所有的ftp本地用户于其家目录中 |
chroot_list_enable=YES | 开启禁锢文件列表 需要与chroot_list_file参数一起使用 |
chroot_list_file=/etc/vsftpd/chroot_list | 指定禁锢列表文件路径 在此文件里面的用户将被禁锢在其家目录中 |
allow_writeable_chroot=YES | 允许被禁锢的用户家目录有写权限 |
xferlog_enable=YES | 是否启用传输日志,记录ftp传输过程 |
xferlog_std_format=YES | 传输日志是否使用标准格式 |
xferlog_file=/var/log/xferlog | 指定传输日志存储的位置 |
chown_uploads=YES | 是否启用改变上传文件属主的功能 |
chown_username=whoever | 指定要将上传的文件的属主改为哪个用户 此用户必须在系统中存在 |
pam_service_name=vsftpd | 指定vsftpd使用/etc/pam.d下的 哪个pam配置文件进行用户认证 |
userlist_enable=YES | 是否启用控制用户登录的列表文件: 默认为/etc/vsftpd/user_list文件 |
userlist_deny=YES | 是否拒绝userlist指定的列表文件中存在的用户登录ftp |
max_clients=# | 最大并发连接数 |
max_per_ip=# | 每个IP可同时发起的并发请求数 |
anon_max_rate | 匿名用户的最大传输速率,单位是“字节/秒” |
local_max_rate | 本地用户的最大传输速率,单位是“字节/秒” |
dirmessage_enable=YES | 启用某目录下的.message描述信息 假定有一个目录为/upload,在其下创建一个文件名为.message, 在文件内写入一些描述信息,则当用户切换至/upload目录下时会自动显示.message文件中的内容 |
message_file | 设置访问一个目录时获得的目录信息文件的文件名,默认是.message |
idle_session_timeout=600 | 设置默认的断开不活跃session的时间 |
data_connection_timeout=120 | 设置数据传输超时时间 |
ftpd_banner="Welcome to chenlf FTP service." | 定制欢迎信息,登录ftp时自动显示 |
