美文网首页
vsftpd server的两种配置策略

vsftpd server的两种配置策略

作者: Able7 | 来源:发表于2019-04-08 11:36 被阅读0次

核心点:
ftp server主动模式、被动模式的差别以及适用场景。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

(ftp server)主动模式:服务器向客户端敲门,然后客户端开门
(ftp server)被动模式:客户端向服务器敲门,然后服务器开门

所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门 ;
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口

linux客户端开启主动被动:
>passive
Passive mode off.

windows ftp client:
quote PORT  //主动模式
quote PASV  //被动模式

centos:

yum install -y vsftpd   //安装vsftpd 服务。

添加ftp用户:

#useradd -d /var/ftp/  -s /sbin/nologin ftp
#chsh -s $(command -v nologin) ftp   //修改ftp 用户为不可登录用户
#chmod -R 755 /var/ftp/
#usermod -u 1001 ftp   //修改ftp 用户的uid,gid
#groupmod -g 1001 ftp 
#id ftp
  • vsftpd被动模式

比如用户是nat网络的情况下,vsftpd server就只能配置成被动模式,等待ftp client主动发起请求,与server建立连接。vsftpd服务的配置文件/etc/vsftpd/vsftpd.conf,被动模式配置:

anonymous_enable=NO
local_enable=YES
local_root=/var/ftp/third
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pasv_promiscuous=YES
pasv_enable=YES
pasv_address=xx.xx.xx.xx   //ecs的外网IP地址
pasv_min_port=9001
pasv_max_port=9010  //vsftpd被动模式下,数据连接的端口范围。
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES

这需要ftp client在连接进来的时候,需要关闭被动模式,如下:

#ftp xx.xx.xx.xx (ftp server的公网ip)
Name: ftp
Password:  XXX //输入ftp设置的对应密码。
ftp > passive
Passive mode off.    //关闭被动模式
ftp > dir

在client端,开通如下如下防火墙策略:

-A  INPUT -s 47.103.33.182 -p tcp -m tcp  --dport 9001:9010  -j ACCEPT

  • vsftpd主动模式

这个适用于客户端是带外网ip的场景。
我们有个aliyun ecs,在分配机器的时候,分配的外网ip是nat模式,并没有分配虚拟网卡到主机上。导致vsftp server只能用主动模式,还要求ftp client必须是带外网IP的主机,支持主动模式
配置如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
local_root=/var/ftp/test
max_per_ip=0
anon_upload_enable=YES    //允许用户上传文件。

上传文件脚本:

ftp -v -n xx.xx.xx.xx<<EOF
user [username] [passwd]
binary
passive
cd test
put x.txt
bye
EOF

参考配置:
https://linux.die.net/man/5/vsftpd.conf

相关文章

网友评论

      本文标题:vsftpd server的两种配置策略

      本文链接:https://www.haomeiwen.com/subject/azkuiqtx.html