小c学Linux(30)--vsftpd安装与配置

FTP:File Transfer protocol 文件传输协议

ftp不只是一个连接,它是基于tcp的两个连接,命令连接和数据连接。

数据连接的两种模式:

  • 主动模式: 服务器端通过20端口主动连接客户端,客户端监听在于服务器端的建立连接的端口+1上,服务器工作在tcp/20
  • 客户端使用自己与服务器端建立端口+1上连接客户端的随机端口

ftp是文件传输协议,数据是通过什么形式呢?数据都是以流的方式在物理线路上传送,主要有文本(文件流)、二进制。为了保证数据的安全,有sftp(ssh提供的基于ssh协议的ftp),ftps(基于ssl的ftp)

登录ftp服务器有三种方式:

  1. 系统用户:ftp服务器的用户
  2. 虚拟用户:存储在mysql或hash文件中的账号密码
  3. 匿名用户:ftp服务器开启匿名用户,即可以anonymous身份进行登录

ftp有5种不同的状态码:

  • 1xx:信息码
  • 2xx:成功状态码
  • 3xx:进一步提示补全信息的状态码
  • 4xx:客户端错误(临时错误)
  • 5xx:服务器端错误(永久性错误)

安装vsftpd

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

特点:

  1. vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;
  2. 任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;
  3. 所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;
  4. 此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

安装:

yum -y install vsftpd

服务脚本/etc/rc.d/init.d/vsftpd
配置文件/etc/vsftp/vsftpd.conf
主程序文件/usr/sbin/vsftpd
数据文件/var/ftp

配置文件/etc/vsftpd/vsftp.conf

#禁锢用户,默认为no,yes为开启禁锢,chroot为家目录
chroot_local_user={yes | no} 

#禁锢用户列表user_list的用户
chroot_list_enable={yes | no}

#user_list中的将用户禁锢在其家目录,也可对其设定黑白名单,黑名单不允许user_list登录,白名单允许user_list登陆
#黑名单:userlist_enable=YES,userlist_deny=YES
#白名单:userlist_enable=YES,userlist_deny=NO

#禁锢部分用户,将禁锢的用户名添加到chroot文件,一行一个用户名。
#与禁锢用户列表不能同时使用,两者选择一个
chroot_list_file=/etc/vsftpd/chroot

#是否需要本地用户登录
local_enable={yes | no}

#启动匿名用户登录
anonymous_enable=YES

#允许匿名用户有写权限
anon_upload_enable=YES

#允许匿名用户有删除权限
anon_other_write_enable=YES

#允许匿名用户创建文件夹权限
anon_mkdir_write_enable=YES

#注意:`在启用写入功能时,ftp用户对相应的本地文件系统也有相应的写入权限;生效的权限取决于文件系统权限和服务权限的交集`

#用户登录欢迎信息  
ftpd_banner=Welcome to my ftp
banner_file=/etc/vsftpd/bannerfile   #在文件中写欢迎信息
dirmessage_enable=YES               #在目录中创建.messages隐藏文件,里面写欢迎信息

#/etc/vsftpd/ftpusers中的用户不允许使用ftp服务器
#这是在/etc/pam.d/vsftpd中定义的

#连接限制
max_clients      #最大并发连接数
max_per_ip       #相同的ip可同时发起并发请求数

#传输速率,单位“字节/秒”
anon_max_rate    #匿名用户的传输速率
local_max_rate   #本地用户传输速率

#上传文件的umask
anon_umask       #匿名用户上传文件的umask
local_umask      #本地用户上传文件的umask

#修改匿名用户上传文件的属主属组
chown_uploads=YES
chown_username=用户名

猜你喜欢

转载自blog.csdn.net/aarron_dl/article/details/80017567
今日推荐