阿里云ECS安装FTP服务

主机镜像Alibaba Cloud Linux3.2.104 TLS 64BIT

vsftpd  3.0.3-35.0.1.al8

今天收到一个需求,需要在测试阿里机器上面安装FTP服务用于测试,于是查阅了各种资料,汇总内容如下

先认识了解vsftp服务

FTP是仅基于TCP的服务,不支持UDP。 与众不同的是FTP使用2个端口,一个数 据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端 口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主 动与被动FTP的最大不同之处。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,
建立一条数据链路来传送数据。

开启主动模式:(阿里云vsftpd默认没有这个参数,实测发现阿里云默认是主动模式?这块知道的小伙伴告之一下)
pasv_enable=no
若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据
链路来传送数据。

开启被动模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
pasv_enable=yes
若设置为YES,则使用PASV工作模式;若设置为NO,则使用PORT模式。默认值为YES,即使用PASV工作模式。
pasv_min_port=30000
在PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为0。
pasv_max_port=30999
在PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为0。
————————————————
版权声明:本文为CSDN博主「qq_37705525」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37705525/article/details/123779263

1.安装vsftpd

1.1检查是否安装vsftpd

rpm  -qa  vsftpd

1.2 yum install vsftpd -y

2.配置vsftpd.conf配置文件,配置项参考如下,根据自己实际需要开启或者注释不需要的配置项

常用的全局配置项:
listen=YES:当“listen”指令被启用时,vsftpd以独立模式运行,并且侦听IPv4套接字。此指令不能与listen_ipv6指令一起使用,两者不能同时设置为YES,否则启动报错

500 OOPS: run two copies of vsftpd for IPv4 and IPv6
listen_ipv6=NO:是否开启ipv6监听
write_enable=YES:是否启用写入权限
download_enable=NO:是否允许下载文件(默认是 yes)
userlist_enable=YES:是否启用 user_list 列表文件
userlist_deny=YES:是否禁用 user_list 中的用户(NO 代表拒绝)
userlist_file=/etc/vsftpd/user_list 限制的用户文件
allow_writeable_chroot=YES:允许写入用户主目录(重要,不配置无法上传文件)
常用的匿名 FTP 配置项:
anonymous_enable=YES:启用匿名访问
anon_umask=022:匿名用户所上传文件的权限掩码
anon_root=/var/ftp:匿名用户的 FTP 根目录
anon_upload_enable=YES:允许匿名用户上传文件
anon_mkdir_write_enable=YES:允许匿名用户创建目录
anon_other_write_enable=YES:开放匿名用户其他写入权
常用的本地用户 FTP 配置项:
local_enable=YES:是否启用本地系统用户
local_umask=022:本地用户所上传文件的权限掩码
local_root=/var/ftp:设置本地用户的 FTP 根目录
chroot_local_user=YES:是否将用户禁锢在主目录
设置用户访问目录,默认只允许用户自己的 ftp 目录
需要同时设置 allow_writeable_chroot,允许受限用户的写权限,不然会报错
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
————————————————
版权声明:本文为CSDN博主「yahui huang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zyhanzh/article/details/109777179

3.创建ftp用户,ftp用户有3种匿名用户,本地用户,虚拟用户,本文使用第二种

3.1、环境:ftp为vsftp。被限制用户名为ftpuser。被限制路径为/home/ftpuser
3.2、建用户,命令行状态下,在root用户下:
//增加用户ftpuser,并制定ftpuser用户的主目录为/home/ftpuser
useradd -d /home/ftpuser ftpuser
//为ftpuser设置密码,运行后输入两次相同密码
passwd ftpuser

3.3、更改用户相应的权限设置:
usermod -s /sbin/nologin ftpuser  //限定用户ftpuser不能telnet,只能ftp
usermod -s /bin/bash ftpuser  //用户ftpuser恢复正常,否则,客户端链接报错503login incorrect,/sbin/bash同样报错
usermod -d /home/ftpuser ftpuser  //更改用户ftpuser的主目录为/ftpuser

3.4、限制用户只能访问/home/ftpuser,不能访问其他路径
修改/etc/vsftpd/vsftpd.conf如下:
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list //这个文件中的用户允许切换到其他目录,不在的只能进入ftp账号自己的目录

3.5、不允许切换根目录的账号必须执行这个,去除写权限,不然可能会报500 OOPS: cannot change directory:/home/ftpuser
chmod go-w /home/ftpuser     //去除用户主目录的写权限,这里注意保留了主用户写权限,实测阿里云这边如果如果属主目录不加写权限,会报coud not create file错误,这里需配置主配置文件中增加 allow_writeable_chroot=YES 允许写入属主目录一起使用.
————————————————
版权声明:本文为CSDN博主「日常记录」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhx_0323/article/details/128098365

4.重启vsftpd

systemctl restart vsftpd

客户端验证访问,可以正常上传下载文件,无法删除远程目录文件.访问时需注意,阿里云安全组只开通了20 21两个端口,ftp访问方式使用主动模式,被动模式客户端链接比如阿里云本地链接测试需关闭被动模式

客户端登录FTP服务器后,用passive命令关闭客户端的PASV方式,代码如下:

ftp> passive

Passive mode off

5.ftp创建虚拟用户可参考,未经过实测 FTP创建虚拟用户_ftp 虚拟用户_冬雪似黎明的博客-CSDN博客

如有问题请及时指出,共同学习

你可能感兴趣的:(阿里云,服务器,linux)