vsftp服务--如何区分主被动使用场景

Vsftp服务有两种模式,原理上跟web服务一样,都遵从C/S模式访问。
区别是:
Port主动模式:客户端大于1024的随机端口N访问服务器端21命令端口
并告知server端开启大于1024 N+1端口处于监听状态,等待server端连接。
然后server端20端口负责数据传输20端口对client端N+1端口发起主动连接请求。
在实际生产中一般server端都处于内网必须通过nat到公网地址(承载网地址)
Client端一般都在防火墙内 server端也在防火墙内,所以主动模式情况下
ftp-client端开启N+1端口是随机的,等待server的20端口发起连接请求时候,会被客户端client防火墙拦截,导致请求超时或者导致ls dir查寻命令执行成功后,返回的结果无法进入防火墙。
所以主动模式下,nat公网地址后防火墙策略开启20 21 端口,而客户端client也必须放开大于1024的所有端口,若客户端是集团办公网络的话或者家庭私有网络经过路由共用公网IP地址暴露所有端口,这种状态就不现实了。若是两台服务器间的 通讯,客户端服务器暴露所有端口也不现实,因为客户端无法确定1024-65535随机端口的占用。客户端服务器若再经过nat的话也必须做地址映射,简单的端口映射无法实现。

  1. 客户端防火墙默认所有出去的包放行,进来的包必须进入放行端口才可以,但这种随机端口处于监听状态,等待server 20端口建立连接的请求,防火墙侧无法做判断,也无法指定放行策略,客户端是无法配置放行端口的。
  2. ftp客户端网络环境只有两种:(1)好多电脑共用一个公网IP的,比如民用宽带。这种就无法实现ftp-server主动模式即20端口对路由后的私网(无法随机nat)client随机端口建立连接请求
    (2)ftp客户端也是服务器环境的配置有 公网IP的多网卡环境,公网承载网也受到承载网前端防火墙控制,有大的拦截关系,也无法随机配置。公网ip暴露所有端口在外边
    可以想象多可怕,也不现实。因为作为服务器肯定有业务。
    被动模式:建立通信连接端口也是server端21 端口处于监听状态,然后客户端N>1024随机端口请求建立连接,21端口为命令端口,建立连接后等待客户端选择工作模式passive(ls dir也是这个端口接受)为被动也是默认模式,服务端收到passive命令后开启一个M随机端口处于监听状态,等待客户端N+1 发起连接到M获取数据,这种情况就是server端21端口跟M端口都处于监听状态,被动的等待客户端client主动来建立连接,所以客户端不管是开启了防火墙或者nat的ip映射或则是内网的私有地址,都可以直接出防火墙来主动建立连接。只要server端在配置文件里指定随机端口范围就可以了,指定IP映射关系放开指定范围的端口防火墙策略即可。
    配置文件如下:

是否允许匿名登录

anonymous_enable=NO

是否允许本地用户登录

local_enable=YES

是否允许本地用户对FTP服务器文件具有写权限

write_enable=YES

本地用户主目录

local_root=/var/ftp

匿名用户主目录

anon_root=/var/ftp/pub

是否允许匿名用户上传文件,如允许,须将全局的write_enable=YES

anon_upload_enable=YES

是否允许匿名用户创建新文件夹

anon_mkdir_write_enable=YES

容许匿名用户除了新建和上传外的其他权限

anon_other_write_enable=YES

本地用户掩码

local_umask=022

设置匿名登入者新增或上传档案时的umask值

anon_umask=022

是否激活目录欢迎信息功能

dirmessage_enable=YES
xferlog_enable=YES

主动模式数据传输20端口

connect_from_port_20=NO
xferlog_std_format=YES

是否监听ipv4

listen=YES

listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

是否设置被动模式

pasv_enable=YES

被动模式传输使用端口

pasv_min_port=20020
pasv_max_port=20020

被动模式返回给客户端的ip地址(服务器内网穿透时使用)

pasv_address=0.0.0.0( 服务器外网ip nat后的公网地址 )

设置用户访问目录,默认只允许用户自己的ftp目录

需要同时设置allow_writeable_chroot,允许受限用户的写权限,不然会报错

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES

总结:如果是局域网内使用ftp服务,主动被动模式都可以使用。
如果客户端跟服务器端需要走公网分两种情况:

  1. 服务器端server多网卡有公网IP只需要放开防火墙策略即可21端口跟范围随机端口
  2. 服务器端处于公网ip服务器后端设备的私有网络地址的话,现在nat转换然后前端防火墙放开端口策略,nat可以做ip地址映射直接放开防火墙策略即可,如果做nat端口映射,需要防火墙放开端口 nat还需要映射端口,注意映射端口时候来源端口映射和回源端口映射。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值