我有一个 ftp 服务器,我的客户端在早上安静地连接,但是下午连接被拒绝(不是全部,但只有其中一个),而使用 http 的客户端则可以正常工作。
具体来说,看起来好像身份验证凭据被接受,但文件传输被阻止。
是否有可能下午客户端可以使用较低的频段,然后 linux 或 vsftpd 拒绝连接?
ftp 服务器是被动的,配置文件是vsftpd 配置文件(AAA.BBB.CCC.DDD是服务器 ip 地址)是:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=0666
xferlog_enable=YES
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
chroot_local_user=YES
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50010
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
file_open_mode=0666
anon_umask=000
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf
pasv_address=aaa.bbb.ccc.ddd
pasv_addr_resolve=NO
secure_chroot_dir=/usr/share/empty
allow_writeable_chroot=YES
isolate=NO
isolate_network=NO
答案1
我会咨询您的防火墙团队。某些更先进的防火墙在某些情况下可能会以这种方式做出反应。
使用被动 FTP(常见设置)时,连接从端口 21 开始,然后移至高数字随机端口。在您的例子中,使用 50000-50010 端口。防火墙可能(并且应该)设置为阻止这些端口,因为它们不用作专用端口。防火墙可以允许端口 21 上的连接,然后如果连接已建立,它将跟踪该连接并允许动态端口通过。
我怀疑您的用户(不经常使用连接)在这种情况下会面临超时。虽然端口 21 始终处于打开状态,但动态端口确实存在与之相关的超时。文件传输将在动态端口上进行,这解释了为什么它们可以连接但不能传输。