健壮又简单文件共享服务

  
  

官方语言介绍下ftp,文件传输协议ftp(文件传输协议)是用于在网络上进行文件传输的一套标准协议,ftp的目标是提高文件的共享性。今天从ftp的两种模式,ftp用户管理主要的两方面实践使用下。

     

<强> 1。ftp两种模式
简明直接:

  
  

主动FTP:
命令连接:客户端在1024端口——→服务器21端口
数据连接:客户端在1024端口& lt;——服务器20端口
被动FTP:
命令连接:客户端在1024端口——→服务器21端口
数据连接:客户端在1024端口——→服务器在1024年端口

     

具体说明:

  
  

如图对于两种传输模式来说,控制连接的建立过程都是一样,均为服务器监听21号端口,客户端向服务器的该端口发起TCP连接。主动模式服务器通过控制连接知道客户端监听的端口后,使用自己的20号端口作为源端口,“主动”发起TCP数据连接。而被动模式服务器监听1024 - 65535的一个随机端口,并通过控制连接将该端口告诉客户端,客户端向服务器的该端口发起TCP数据连接。

     

两种模式该选择哪个了?选择被动模式。

  
  

如果FTP客户端在私网,FTP服务器在公网(云主机的应用场景)应该使用被动模式,因为这种应用场景FTP服务器访问不到在私网的FTP客户端,而FTP客户端可以访问到FTP服务器。

     

那ftp服务器放开大于1024端口,不安全,如何做了?

  
  

服务端配置高点端口,然后防火墙中限制这个端口段可以被客户端连接过来。
再者就是限制客户端的ip,指定特定的客户端地址。(谁用谁连)

     
 <代码>被动模式配置
  connect_from_port_20=没有
  PASV_enable=YES开启被动模式
  PASV_min_port=% %数量被动模式最低端口
  PASV_max_port=% %数量被动模式最高端口 
  

<强> 2。ftp创建虚拟用户(加强访问安全的措施)
简明直接:

  
  

我们登录FTP有三种方式,匿名登录,本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是FTP或匿名。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

     

具体实施:
<强> 2.1搭建
yum - y安装vsftpd
添加虚拟用户文件,添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
vim/etc/vsftpd/vuser.txt
名称#用户
密码#密码
生成虚拟用户认证文件
db_load哈希- f - t - t/etc/vsftpd/vuser.txt/etc/vsftpd/vuser.db
编辑vsftpd的pam认证文件/etc/pam。d/vsftpd
vsftpd的其他行可注释掉。
添加以下:
认证要求/lib64/安全/pam_userdb。所以db=
/etc/vsftpd vuser账户需要/lib64/安全/pam_userdb。所以db=
/etc/vsftpd vuser建立本地映射用户并设置宿主目录权限
useradd - d/数据- s/sbin/nologin vsftpd
chmod w/数据
乔恩- r vsftpd: vsftpd/数据
<强> 2.2配置文件vsftpd.conf

  
 <代码> #连接相关
  ftpd_banner=欢迎ftp服务
  #空闲超时时间,用户超过这段时间不动作被服务器提出。
  idle_session_timeout=300
  #数据连接超时时间
  data_connection_timeout=60
  connect_timeout=60
  max_clients=100
  #允许每个客户端连接3个
  max_per_ip=3
  listen_address=192.168.100.100
  listen_port=21
  
  #权限相关
  #不允许匿名用户登录
  anonymous_enable=没有
  #允许本地用户登录(这里指创建系统用户vsftpd)
  local_enable=YES
  #允许ascii模式的上传(可以防止上传脚本等恶意文件),而不会遭受拒绝服务的危险。
  ascii_upload_enable=YES
  
  guest_enable=YES
  guest_username=vsftpd
  #允许匿名用户上传(这里指系统用户下的虚拟用户)
  anon_upload_enable=YES
  #允许匿名用户创建和写入
  anon_mkdir_write_enable=YES
  
  #开启全局权限
  write_enable=YES
  #设置这个之后客户端上传目录权限就改为755年,文件权限就为644
  anon_umask=022
  #以下为系统默认设置
  #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。
  dirmessage_enable=YES
  # xferlog_enable=是的,启用记录上/下传载活动日志功能。
  xferlog_enable=YES
  # connect_from_port_20=YES启用FTP数据端口的连接请求
  connect_from_port_20=没有
  xferlog_std_format=YES
  
  #在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES
  tcp_wrappers=YES 

健壮又简单文件共享服务