织梦CMS - 轻松建站从此开始!

欧博ABG-会员登录-网站

从此寂静无声

时间:2024-11-03 04:50来源: 作者:admin 点击: 22 次
1 需求 近期,需要通过Nginx代理内网FTP服务,以便外网用户进行访问,故针对此展开技术调研。 软件版本: Nginx: 1.18.0; vsftpd: 3.0.2; CentOS: CentOS Linux release 7.9.2009 (Core). 2 FTP模式 FTP具有两个端口,

近期,欧博官网需要通过Nginx代理内网FTP服务,以便外网用户进行访问,故针对此展开技术调研。
软件版本:

Nginx: 1.18.0;

vsftpd: 3.0.2;

CentOS: CentOS Linux release 7.9.2009 (Core).

2 FTP模式

FTP具有两个端口,分别为控制端口(完成诸如登录,目录查询/切换等命令),数据端口(负责具体数据传输).

CentOS上安装vsftpd后,启动服务可发现vsftpd在21端口上监听命令(此时无客户端接入),欧博具体如下图所示:

FTP连接模式具有两种,分别为主动模式(PORT)以及被动模式(PASV)。

主动模式:

(1)当FTP客户端以主动模式连接服务端时,客户端以动态选择的端口号向服务器的命令端口发起连接;

(2)连接建立后,用户在发出列目录或传输文件的命令后,会要求建立数据连接;

(3)FTP客户端在控制连接上发出主动模式指令,告知服务器客户端的数据连接端口号;

(4)服务端收到指令后,会使用20号端口连接客户端指定的数据连接端口号,欧博娱乐从而建立数据连接。

被动模式:

被动模式的连接过程与主动模式类似,区别点在于客户端发出列目录或传输文件的命令后,客户端会发送PASV指令至服务端;

服务端收到PASV指令后,告知客户端服务端的数据连接IP地址和端口号;

客户端根据返回的服务端数据连接IP和端口号,发起数据连接。

3 问题 & 解决思路

当前,客户端需要通过Nginx代理方能访问FTP服务端。通过Nginx stream可以实现控制命令的转发,但是对于客户端和服务端协商的数据连接,欧博allbet较难实现代理。

不过查阅相关文档,vsftpd支持设置数据连接的端口范围,亦支持设置数据连接的IP。

因此,我们可以指定vsftpd模式为被动模式(默认即为被动模式),设置数据连接IP地址为Nginx代理地址,合理设置数据连接端口范围(Nginx监听本地此端口范围内数据)。当ftp客户端与vsftpd服务端协商数据连接后,ftp客户端根据数据连接IP(已设置为Nginx代理地址)以及端口号发起连接(实际连接至Nginx服务器),Nginx将此端口上监听的数据转发至vsftpd对应的数据端口。

4 方案示例

机器信息:

Nginx代理机: 192.168.56.101;

vsftpd服务端: 192.168.56.102;

测试机: 192.168.56.106。

此处,利用开发机上安装的虚拟机完成验证,未具体限制网段。

vsftpd服务端配置:

# cat /etc/vsftpd/vsftpd.conf listen=YES listen_ipv6=NO # 修改listen配置,只允许监听在IPv4地址,这是因为在被动模式下,设置pasv_address存在bug(具体可搜索stackoverflow) pasv_enable=YES # 开启pasv模式 pasv_min_port=50000 # pasv模式下,数据连接最小端口号 pasv_max_port=50002 # pasv模式下,数据连接最大端口号 pasv_address=192.168.56.101 # pasv模式下,告知客户端的数据连接IP pasv_promiscuous=YES # 关闭pasv模式下,关闭对IP地址的检查,此检查确保控制连接和数据连接来自同一IP

pasv_promiscuous关闭存在安全隐患;
在实际组网情况下,Nginx转发时可设置保留源IP信息,但是客户端与服务端无法直接访问,因此只能放弃保留源IP信息。

Nginx配置:

stream { upstream ftp { # FTP控制面转发 server 192.168.56.102:21 max_fails=2 fail_timeout=3s weight=1; } server { # 转发FTP控制面请求 listen 11000; #监听端口 #失败重试 proxy_next_upstream on; proxy_next_upstream_timeout 0; proxy_next_upstream_tries 0; #超时配置 proxy_connect_timeout 1s; proxy_timeout 10m; #限速配置 proxy_upload_rate 1024k; proxy_download_rate 2048k; #上游服务器 proxy_pass ftp; } upstream ftp_pasv1 { server 192.168.56.102:50000 max_fails=2 fail_timeout=3s weight=1; } upstream ftp_pasv2 { server 192.168.56.102:50001 max_fails=2 fail_timeout=3s weight=1; } upstream ftp_pasv3 { server 192.168.56.102:50002 max_fails=2 fail_timeout=3s weight=1; } server { # 转发客户端发送到Nginx代理机的数据连接 listen 50000; proxy_pass ftp_pasv1; } server { # 转发客户端发送到Nginx代理机的数据连接 listen 50001; proxy_pass ftp_pasv2; } server { # 转发客户端发送到Nginx代理机的数据连接 listen 50002; proxy_pass ftp_pasv3; } }

此处省略对FTP数据连接的具体控制(诸如限速)。

5 验证

重启vsftpd以及Nginx,从测试机:192.168.56.103发起连接,具体如下所示:

tcpdump抓包分析:

6 弊端

使用Nginx代理FTP服务,存在以下缺点:

控制连接和数据连接是否来自同一连接无法验证,存在安全隐患;

FTP被动模式下,数据端口范围较宽时,Nginx添加配置比较麻烦;

Nginx代理机需要开放较多端口,诸如iptables等安全设置复杂。

使用SFTP,简单又可靠。

(责任编辑:)
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2024-12-22 09:12 最后登录:2024-12-22 09:12
栏目列表
推荐内容
  • Win10系统配置http、socks5代理ip教程

    文章浏览阅读5k次,点赞18次,收藏14次。本文详细指导了如何在Windows10的32/64位系统中配置HTTP和Socks5代理,包括手动设置步骤、IP和端...

  • 浏览器代理插件:SwitchyOmega

    米扑博客, 专注于IT技术与量化金融, 用技术创造人生财富。...

  • 动静态IP代理服务商【在线免费试用】

    天启HTTP专注企业级优质高匿IP代理服务,提供https代理、Socks5代理、动静态代理、爬虫代理等国内外IP代理服务器,在线网页或软件app代理IP方便快...

  • 浩欧博:9月12日获融资买入65.77万元,占当日流入资金比例28.37%

    同花顺数据中心显示,浩欧博9月12日获融资买入65.77万元,占当日买入金额的28.37%,当前融资余额2237.97万元,占流通市值的1.51%,低于历史20...

  • CroxyProxy 免费网页代理

    CroxyProxy免费Web代理 Croxyproxy是一种安全的web代理服务,欧博允许您浏览具有更高隐私级别的各种网站。您可以使用安全连接访问Facebo...

  • 《民法典》第七章 代理

    第七章 代理第一节 一般规定第一百六十一条 民事主体可以通过代理人实施民事法律行为。依照法律规定、当事人约定或者民事法律行为的性质,应当由本人亲自实施的民事法律...

  • v2rayng 分应用代理完全指南

    本文详细介绍了如何使用v2rayng软件进行分应用代理的设置和使用方法,包括软件下载、配置教程、常见问题解答等内容,帮助读者更好地了解和使用v2rayng进行分...

  • 青龙面板教程(五):代理设置

    文章浏览阅读1.7w次,点赞8次,收藏39次。本文介绍了如何在青龙面板中为Python和JavaScript脚本设置代理,以解决公网服务器上IP限制的问题。对于...

  • operaaudio

    M99 plus Integrate Tube Amplifier The fifth anniversary model, with vol...

  • 《一梦江湖》官方网站-春季特典「江湖万象」正式开启!

    春季资料片「江湖万象」正式来袭!三大场景地图全面更新,探索就有机会获得绑元、挂件、耳饰外观等专属奖励!5月10日,万道皆侠,玩你想的任何玩法即可拿齐奖励!全新巫...