怎样用serv-U设置FTP地址

怎样用serv-U设置FTP地址,第1张

先要提到的是这里的内网是指一般我们网吧内部环境的内网,对局域网内网我没什么好说的。一个基本条件:一个公网IP,对网关有 *** 作权限。

FTP服务器端1921680100,我选用Win2K+Serv-U 6100,很普通常用的一个组合网关是最简单的双网卡PC,一接外网一接内网,这里假设外网IP为21842184,内网IP为19216801。

提一些概念性的东东:

一次完整的FTP会话,包含有两个连接,一个称之为命令通道,一个称之为数据通道。命令通道用来传递一些"命令"和反馈,包括用户名密码登陆,而且众所周知是明文数据通道用来传递实际数据----列目录、文件传输,一旦需要列目录或文件传输,数据通道就会被建立起来,这里分两种方式,一是 PORT二是PASV。

你会在因特网上找到许多FTP服务器,有的要么只支持PORT,有的要么只支持PASV,有的是因为考虑安全因素,有的是因为条件限制等等。我想把我的FTP做成PORT和PASV方式都能支持的,这样不会使客户端在连接上受到困扰,特别是一些新手,对于PORT和PASV的定义,比较容易理解的解释是针对FTP服务端而言的:

PORT是主动模式,在建立数据通道时,服务端去连接别人;

PASV是被动模式,在建立数据通道时,服务端被别人连接;

建立数据通道时,用PORT模式还是PASV模式,选择权在于FTP客户端。

现在要做的,就是端口映射了,最基本的是命令通道的映射,这里选用默认的21,我想把在网关外网接口收到的对21842184端口21的连接请求,转发到1921680100的21端口去。

Win2K网关

系统自带简单的端口转发程序,就是能给我们提供连接共享的ICS/RRAS,这两种方式原理是一样的,而且都能提供这类业务的端口转发设置过程比较简单,我也不抓图了,以前有过很多。

就是在"服务与端口"中,注册一条类似"公用网络与端口21842184:21 To 专用网络与端口1921680100:21"这样格式的规则设置好后,别人就能访问你的内网FTP服务器了,但你很快会发现你的FTP服务器只支持 PORT方式,如果客户端也在内网环境则PORT方式也用不了了这是为什么呢?我们来分析一下,因为在PASV方式,服务器接到客户端的PASV命令后,会指定一个本地的随机端口来作为PASV端口,并通知客户端,然后等待客户端的连接,在通知消息里包含有FTP服务器的IP地址和打开的PASV端口,我 FTP服务器的IP地址是什么?

现在是1921680100,那么对方收到的PASV通知将是这样格式的227 Entering Passive Mode (192,168,0,100,m,n)mn是定义了PASV端口的值,计算方式是m256+m,如果这里m是10而n是20,那么PASV端口就是 2580客户端收到这条通知后,当它想发起数据通道的连接,它会向1921680100:2580这个目标地址发送SYN请求,毫无疑问将不会收到应答,因为这个IP在公共网络事实上是不存在的解决的办法是让FTP服务器发送带公网IP的PASV通知,我们的Serv-U支持这个功能。

然后在网关上把需要打开的PASV端口跟21端口一样做映射到1921680100

你也许会疑惑了,PASV是服务器动态打开的随机端口,我怎么会知道它会用哪个?怎么映射啊?没有问题,Serv-U同样可以定义每次使用固定的PASV端口,当然为了同时承接多个连接会话,你需要多设置几个成一段,然后在网关上一一对应映射到FTP服务器上去

在Linux下,默认端口1024下的程序是要在root下才能使用的,在其他用户下,如果尝试使用将会报错。在有的时候,我们可能考虑程序运行在root帐户下,可能会给Linux系统带来安全风险。那如何能够让非root用户运行的程序能够对外启用小于1024的端口呢?本文尝试给出一些方法: \x0d\\x0d\第一种方法:\x0d\SetUID\x0d\为用户的应用程序在执行位设置user ID能够使程序可以有root权限来运行,这个方法让程序能够像在root下运行有同样的效果,不过需要非常小心,这种方法同样会带来安全风险,特别是当要执行的程序本身存在安全风险。使用的方法是:\x0d\chown rootroot /path/to/application #使用SetUID chmod u+s /path/to/application \x0d\\x0d\我们可以看到在系统下,/usr/bin/passwd这种文件,就使用了SetUID,使得每个系统的用户都能用passwd来修改密码——这是要修改/etc/passwd的文件(而这个只有root有权限)。\x0d\既然要使用非root用户运行程序,目的就是要降低程序本身给系统带来的安全风险,因此,本方法使用的时候需要特别谨慎。 \x0d\第二种方法:\x0d\CAP_NET_BIND_SERVICE\x0d\从21开始,Linux内核有了能力的概念,这使得普通用户也能够做只有超级用户才能完成的工作,这包括使用端口1。\x0d\获取CAP_NET_BIND_SERVICE能力,即使服务程序运行在非root帐户下,也能够banding到低端口。使用的方法:\x0d\#设置CAP_NET_BIND_SERVICE setcap cap_net_bind_service =+ep /path/to/application \x0d\\x0d\Note:\x0d\1 这个方法并不是所有Linux系统通适,内核在21之前的并没有提供,因此你需要检查要使用此方法所在系统是否支持(Linux must support capacity);\x0d\2 另外需要注意的是,如果要运行的程序文件是一个脚本,这个方法是没有办法正常工作的(Script won't work)。 \x0d\第三种方法:\x0d\Port Forwarding\x0d\如果要运行的程序有权限监听其他端口,那么这个方法是可以使用的,首先让程序运行在非root帐户下,并绑定高于1024的端口,在确保能正常工作的时候,将低端口通过端口转发,将低端口转到高端口,从而实现非root运行的程序绑定低端口。要使用此方法可以使用下面的方式:\x0d\# Enable the IP FORWARD kernel parameter sysctl -w netipv4ip_forward=1 # Use iptables rules to redirect packets iptables -F -t nat iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to:8088 \x0d\\x0d\第一步使用sysctl确保启用IP FORWARD功能(此功能在Red Hat/CentOS默认是被禁用的),注意,代码中使用的sysctl设置是临时性设置,重启之后将会被重置,如果要长久保存,需要在/etc/sysctlconf文件内修改:\x0d\# Default value is 0, need change to 1 # netipv4ip_forward = 0 netipv4ip_forward = 1 \x0d\\x0d\然后从文件中加载新的配置\x0d\# load new sysctlconf sysctl -p /etc/sysctlconf # or sysctl -p # default filename is /etc/sysctlconf \x0d\\x0d\第二步就是使用iptables的规则来实现端口转发到程序所在的端口,示例中我们要将80端口转发到8088。\x0d\此种方法能够比较好的达到我们的目的,我们的程序可以通过非root用户来运行,并能够对外提供低端口号的服务。 \x0d\第四种方法:\x0d\RINETD2\x0d\这种方法使用的也是端口转发,此工具可以将本地端口映射到远程端口,但此功能对于我们当前的功能来说,有点鸡肋,毕竟我们新增了一个额外的程序,这将可能会增加我们系统的风险性。在此不做推荐。

可以使用iptables或者nginx进行连接搭建。

Linux下端口转发一般都使用iptables来实现,使用iptables可以很容易将TCP和UDP端口从防火墙转发到内部主机上。但是如果需要将流量从专用地址转发到不在您当前网络上的机器上,可尝试另一个应用层端口转发程序Rinetd。Rinetd短小、高效,配置起来比iptables也简单很多。

如果你要配>

数据中转站中安装有数据中转应用服务器,由计划任务或者其他唤醒程序启动。

运行时注意的三步如下:

1、开启源服务器网络连接,连接源服务器,约定下次通讯的方式(可选),获取数据。

2、关闭与源服务器网络的连接,开启目标服务器网络连接,向目标服务器写入数据。

3、关闭与目标服务器网络的连接,进入缄默模式,等待下一次被唤醒。

由于安全方面的考虑,很多组织和企业会在网络边界上设置防火墙和其他安全设备,这些设备通常会限制某些端口的使用,包括>

每个条目都可以在路由器上定义一个公共端口或者端口范围来转接到内部LANIP地址和LAN端口。端口转发参数解释:名称-为虚拟服务器分配一个有意义的名称,例如WebServer。有些常用的虚拟服务器类型可在"常用程序名词"下拉菜单中找到。选择这些条目之一然后用该类服务器标准的值来填入剩余的参数。IP地址-您内部网络上将提供虚拟服务系统的IP地址,例如192168050。您可以在"计算机名词"下拉菜单中的DHCP客户端中选择一台计算机,或者您也可以手动输入一个服务器的IP地址。应用程序名称-预先定义好的经常使用的应用程序名称。用户可用来进行快速配置。计算机名称-DHCP客户端列表。协议类型-选择服务使用的协议。常用的选择—UDP,TCP和任意—可从下拉菜单中选取。要指定其他的协议,从列表中选择"其他",然后在协议对话框输入相应的协议名称。私有端口-将会在内部网使用的端口。公共端口-将通过因特网被访问的端口例:在DIR-605上设置内网FTP和WEB服务器。端口转发功能与DI-504路由器的虚拟服务器功能类似。 

以上就是关于怎样用serv-U设置FTP地址全部的内容,包括:怎样用serv-U设置FTP地址、如何让Linux下非root用户程序使用小于1024端口、如何搭建一个中转服务器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9336275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存