vsftpd的配置(中)
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6中使用的。
4。ip监控与连接控制
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6网络环境中使用的,而两个阶段参数只能有一个值是的。
在实际的网络环境中,服务器通常有多个IP地址,每个IP地址连接不同的网段。我们不可能期望计算机访问所有网段的服务器。默认情况下,命令将所有IP地址进行监控,因此我们需要以下两行:
listen_address =听IP
listen_address6 =听IP
这两行分别用于IPv4和IPv6环境。
两项下面是vsftpd并发连接控制:
max_clients =数
max_per_ip =数
参数max_clients设置服务器可以接受的最大并发连接数,和max_per_ip套,每个客户端IP可以启动的最大连接数。为了正确地对服务器的性能设置这两个参数,你可以找到连接,服务器接受连接的速度和数量之间的平衡。两个默认值都是0,表示没有限制。
accept_timeout =数
connect_timeout =数
data_connection_timeout =数
idle_session_timeout =数
以上的数字都在seconds.access_timeout代表数据连接超时当PASV数据连接模式的使用。connect_timeout代表当端口模式连接到数据连接超时时间;数据连接数据连接空闲时间等待超时,过段时间说会有关于FTP服务连接mode.data_connection_timeout详细介绍,数据连接将被断开;idle_session_timeout时间设定在发呆,多久没有客户机和服务器FTP命令交互作用时,能自动断开的FTP服务。
5。关于连接端口设置
我们知道FTP服务不同于其他服务。FTP服务使用TCP双加盟渠道,即FTP服务器和FTP数据连接。我们可以这样理解:FTP服务器的连接,接受客户端的连接请求,并发控制,身份和权限认证,和命令传输客户端到端。FTP数据连接负责传输数据,即它将有此连接发送数据时,我们需要在FTP服务器设置一看。
listen_port =端口号
此设置可以设置FTP服务器端口号,默认值为21。如果我们指定其他端口号,那么当连接到服务器时客户机必须使用指定的端口号:
listen_port = 2121
# ftp 127.0.0.1
连接:拒绝连接
FTP >打开127.0.0.1 2121
连接到127.0.0.1。
220(vsftpd 2.0.5)
530请登录用户和通行证。
hellip;hellip;
我们已经看到了效果,然后讨论FTP数据连接的问题。
FTP数据传输有两种模式:ftp端口模式和FTP被动模式,两种工作模式完全不同。
FTP端口模式
在FTP端口模式下,客户端和服务器建立FTP服务器连接后,如果某个指令涉及数据传输,则需要一个FTP数据连接:
(1)客户端启用另一个自由港高于XX 1024做连接,使用FTP服务器信道向服务器发送一个数据包的端口命令,数据包包括客户端的IP地址和端口的XX,XX港告诉客户端服务器连接的。端口命令还支持第三方(方)模式,第三方模式是客户端告诉服务器开放到另一个主机的连接。
(2)服务器通过FTP数据端口主动连接到客户机xx端口(默认为20)。
(3)当客户机响应服务器连接并继续完成三次握手时,FTP数据连接被设置并传输数据。当数据完成时,服务器FTP数据端口等待关闭。
我们看到,在端口模式的FTP数据连接请求,由服务器发起的。现在看对vsftpd端口模式报表设置:
port_enable =是的 / /端口模式启用
是否有一个固定的20端口默认情况下使用的connect_from_port_20 =是的 / / /端口模式
指定的端口号ftp_data_port = port_number / /端口模式
是否使用安全port_promiscuous =是的 / / /端口模式
设置port_enable是,端口模式使用。在港模式,如果端口使用一个固定的20端口,该connect_from_port_20选项设置为是,这是默认设置为许多服务器规则。我们也可以指定其他端口,所以这也是ftp_data_port指定一个固定的端口。port_promiscuous默认值是没有的,这是否表明数据连接目标IP房客户在FTP数据连接。否则,它不会检查。除非您确定服务器已连接到真正的客户机,否则不要将此参数值更改为yes。
审查:4。ip监控与连接控制
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6中使用的。
我们将以下两行添加到配置文件中:
port_enable =是的
connect_from_port_20 =没有
登录服务器运行3 LS(显示文件列表)命令,然后运行在服务器端的效果查看netstat命令。
# ftp 127.0.0.1
连接到127.0.0.1。
hellip;hellip;
230登录成功。
远程系统类型是UNIX。
使用二进制模式传输文件。
被动FTP >
被动模式关闭。
FTP > LS
hellip;hellip;
226目录发送ok。
FTP > LS
hellip;hellip;
FTP > LS
hellip;hellip;
FTP >再见
# netstat - |更多
hellip;hellip;
TCP 00 127.0.0.1:1069 127.0.0.1:1068 time_wait
TCP 00 127.0.0.1:21 127.0.0.1:1065 time_wait
TCP 00 127.0.0.1:1071 127.0.0.1:1070 time_wait
TCP 00 127.0.0.1:1067 127.0.0.1:1066 time_wait
hellip;hellip;
我们看到,服务器开了3个1024以上的端口连接到客户端,和3连接由3个ls命令产生的。如果我们改变了connect_from_port_20参数值是做实验,我们会发现,3个连接的服务器固定开放20端口。如果我们把ftp_data_port = 2020声明做上述试验,服务器将开启2020端口。
net.webp(39.08 KB)
2007-5-15 3点06分
当你看这张照片,局域网客户端使用私有IP地址,使用NAT(网络地址转换)通过出口路由器网络,FTP服务器使用的端口模式,当客户端使用的端口发出命令,包括它自己的IP地址和端口的数据包给服务器,该数据包通过路由器必须检查IP地址和端口转换到指定地址和端口的客户包的内容,与此操作要求路由器必须在应用层的工作!我们不能要求每个客户的路由器都有这个功能,但是如果路由器做得不好,FTP数据传输失败。
此外,由于第三方三方模式的支持,黑客也可以在端口命令设置IP地址和端口号的参数来发动攻击指定地址和另一个主机端口号(称为FTP反弹攻击)。虽然一些防火墙设备已经纠正了问题,大多数防火墙和路由器这是一个很严重的问题。
FTP被动模式
描述了在被动模式中建立FTP数据连接的以下步骤:
(1)当用户请求数据传输,客户端软件发送PASV命令到服务器端,客户端想要进入被动模式。
(2)服务器响应回复。包中有一个服务器的IP地址和一个临时端口。临时端口是客户机在打开数据传输连接时应该使用的端口。
(3)客户机服务器发出连接请求。源端口是客户端选择的一个临时端口。目的港是临时端口号在PASV命令指定的服务器回复。
(4)在服务器响应客户端请求并继续完成TCP三握手之后,设置FTP数据连接并传输数据。
让我们在SET语句在被动模式重新看一看:
pasv_enable =是的/没有
pasv_min_port =是的/没有
pasv_max_port =是的/没有
pasv_promiscuous =是的/没有
pasv_address = ip_address
第一行设置为启用PASV mode.pasv_min_port和pasv_max_port是设置在PASV模式端口范围。一般来说,如果设置为PASV模式,我们最好指定端口范围,便于设置防火墙打开端口这个范围,接受客户端的连接request.pasv_promiscuous为port_promiscuous参数相同,无论是在被动模式,是否设置安全传输。我们还需要将其值设置为无(默认值是没有)。pasv_address其次是一个有效的IP地址来打开端口指定了PASV IP地址,但默认情况下,这条线是因为服务知道在TCP连接的套接字连接的IP地址取消吧。变化的主要配置文件来这看看设置效果。
听=是的
anonymous_enable =是的
pasv_enable =是的
pasv_min_port = 3000
pasv_max_port = 3003
3登录服务器运行ls命令,然后运行在服务器端的效果查看netstat命令。
# netstat -
hellip;hellip;
TCP 00 192.168.0.105:3000 192.168.0.122:11066 time_wait
TCP 00 192.168.0.105:3002 192.168.0.122:11065 time_wait
TCP 00 192.168.0.105:3001 192.168.0.122:11063 time_wait
我们看到,每一个命令生成一个连接,并且服务器3000和3003之间打开。在vsftpd2.0.3版本,PASV端口允许我们打开多次,这是不是在以前的版本中允许的,也就是说,同一个端口可以在同一时间与客户建立多个连接,你自己能做的事。
大多数人认为网络环境下的被动模式的防火墙比问题的端口模型,但我们注意到,在被动模式下,客户端临时目的地端口发起连接的服务器、防火墙或设备的访问控制列表(ACL)可以防止这种连接;同时服务器的响应是由临时的临时端口到另一个端口,防火墙或访问列表将停止此连接。许多路由器和防火墙(包括iptables)允许您使用访问列表关键词建立了避免二问题。建立关键词告诉路由器和ACK标志的包被允许通过。对于第一个问题,虽然我们用pasv_min_port和pasv_max_port语句限制临时端口范围,所以我们可以打开这些端口在防火墙,但仍有一定的安全漏洞。幸运的是,大多数国家检测防火墙,如Linux netfileters,支持FTP协议的深层状态检测和进行准确的PASV动态端口过滤。
审查:4。ip监控与连接控制
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6中使用的。
五、vsftpd高级操作
在本节中,我们将介绍vsftpd等一些知识,包括双模式切换,基于IP的虚拟FTP站点,基于虚拟用户建立和管理数据库,并基于OpenSSL的加密数据传输。
1。vsftpd双模式切换
如前所述,vsftpd服务的服务模式,支持Linux:独立模式和守护进程(xinetd)模式。在独立模式下,vsftpd过程开始总是会占用系统资源,当有一个连接请求,它将迅速作出反应;在xinetd模式,FTP服务是一个守护进程统一管理,当FTP连接请求,守护进程将启动FTP服务,这种方法是没有连接的最大优势,当FTP服务不占用系统资源,在睡眠状态,但是因为它需要时间来叫醒服务,所以响应时间长。
以前的实验一直在独立模式做vsftpd,然后我们把它移动到后台。注意一些参数不工作的时候,工作在后台,并参照vsftpd的帮助信息(个人vsftpd .conf)详细。
我们需要建立在后台配置目录 /等/ xinetd vsftpd守护文件。D /。我们已经把文件 / / xinetd等。D /目录当我们安装它。我们修改内容略:
#六 / / xinetd等。D / vsftpd
使用FTP
{
禁用=没有
socket_type =流
等待=没有
用户为根
服务器= / usr / / / vsftpd就是当地
server_args = / / / vsftpd.conf vsftpd等
好= 10
}
下一步,将听=是或listen_ipv6 = YES,停止vsftpd服务,并重新启动xinetd服务:
# sesrvice vsftpd停止
# xinetd服务重新启动
经过进程重启vsftpd服务将通过后台管理,后台管理的过程中,我们不需要如果我们修改主配置文件再重新启动服务。
2。基于ip的虚拟ftp站点
在这一节中我们讨论同一服务器上的多个FTP站点的建立,每一个都是相互独立的,有独立的配置文件。当然,服务器必须有两个以上的IP地址。在独立模式下,我们可以考虑从多个FTP服务流程;在xinetd模式,你可以让后台管理。我们在这里讨论的两例。为了简单起见,我们设置了两个匿名的虚拟网站的服务器上。下面是两个站点信息:
站点1站点2
IP地址192.168.0.105
192.168.0.106
主配置文件 / / / vsftpd.conf vsftpd等
/ / / vsftpd2.conf vsftpd等
匿名用户映射的本地用户名
FTP来创建一个新的FTP2默认
匿名用户主目录
/ / / FTP2 VaR
独立模式下虚拟站点的建立
首先,我们通过修改配置文件 / / / vsftpd.conf vsftpd等对以下网站1:
听=是的
listen_address = 192.168.0.105
anonymous_enable =是的
local_enable =是的
pam_service_name = vsftpd
审查:4。ip监控与连接控制
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6中使用的。
write_enable =是的
ftpd_banner =这是ftp1网站
1站是这样配置的。其次,建立网站2 FTP2用户:
# mkdir / / / FTP2 VaR
因为D / / / var FTP2 FTP2 #
为了网站2知道匿名用户的主目录是/ var / FTP2,我们需要手动配置文件中的用户登录指定网站FTP2 2,所以我们需要使用以下语句:
ftp_username = local_username
设置配置文件 / / / vsftpd2.conf vsftpd等部位2,如下:
听=是的
listen_address = 192.168.0.106
anonymous_enable =是的
local_enable =是的
pam_service_name = vsftpd
write_enable =是的
ftp_username = FTP2
ftpd_banner =这是FTP2网站
接着我们启动vsftpd服务,你就可以看到效果。需要注意的是,没有服务重新启动命令启动服务在这里很重要,必须在在第三节中描述的开始。
# / usr /局部/ sbin / / / vsftpd vsftpd等 / vsftpd.conf
{ 1 } 2287
# / usr /局部/ sbin / / / vsftpd vsftpd等 / vsftpd2.conf
{ 1 } 2288
# FTP 192.168.0.105
连接到192.168.0.105。
220这是ftp1网站
530请登录用户和通行证。
hellip;hellip;
# FTP 192.168.0.106
连接到192.168.0.106。
220这是FTP2网站
hellip;hellip;
我们在各自的配置文件中设置了不同的横幅,已经看到效果。
守护模式下虚拟站点的建立
在独立模式下,IP的绑定是在配置文件中配置的。配置文件名及其位置是在启动服务的命令参数中指定的。在xinetd模式,两步骤需要配置在服务配置文件。所以在守护我们使用这两个设置:
绑定IP
server_args =配置文件为每个站点
让我们来做守护程序文件,首先编写站点1的守护程序文件:
#六 / / xinetd等。D / vsftpd
使用FTP
{
禁用=没有
socket_type =流
等待=没有
用户为根
服务器= / usr / / / vsftpd就是当地
server_args = / / / vsftpd.conf vsftpd等
好= 10
192.168.0.105绑定=
}
然后设置站点2的守护程序文件并输入以下内容
# VI /等/ D / vsftpd2 xinetd。
使用FTP
{
禁用=没有
socket_type =流
等待=没有
用户为根
服务器= / usr / / / vsftpd就是当地
Server_args = /etc/vsftpd/vsftpd2.conf
好= 10
192.168.0.106绑定=
审查:4。ip监控与连接控制
有两个启动参数对vsftpd独立模式下工作(独立):
听=是/否
listen_ipv6 =是的/没有
第一个已经提到过,第二个是在IPv6中使用的。
}
两个守护进程文件完成,并且用户已经在最后的测试中建立起来的。下一步,继续修改两站点配置文件,所有的听,listen_address两线可以删除。现在我们可以重新启动xinetd服务,而且检测结果不公布。