阿里云centos搭建ftp服务器

时间:2024-02-22 22:01:36

一、简介

vsftpd 全称是:very secure FTP daemon 非常安全的ftp后台程序,及ftp 服务端

 

二、服务器端部署

1.安装服务   yum install vsftpd -y

2.启动服务   systemctl start  vsftpd.service

3.查看状态   systemctl status vsftpd.service

4.关闭服务   systemctl stop vsftpd.service

5.检查端口   netstat -anp | grep 21   (找不到netstat命令时运行yum install net-tools)

 

三、创建ftp访问用户

1.创建用户目录   mkdir -p /home/wwwroot/ftptest

2.创建用户          useradd -d /home/wwwroot/ftptest -g ftp -s /sbin/nologin ftptest   

                         (-d  新用户每次登陆时所使用的家目录)(-g  指定用户对应的用户组 ftp分组是内置的,本来就存在,不需要自己创建)( -s /sbin/nologin 表示这个用户不能用来登录xshell这样的客户端。 这种不能登陆的用户又叫做虚拟用户)

3.设置目录权限   chown -R  ftptest  /home/wwwroot/ftptest   (拥有者设置为ftptest)

                            chmod -R  775  /home/wwwroot/ftptest      (使ftptest用户拥有这个目录的读写权限)
4.设置用户密码    echo "123456" | passwd --stdin ftptest         (修改ftptest用户密码为123456)
 
 
四、在vsftpd服务器中配置用户
1.编辑vsftpd配置文件禁止匿名登陆 
 vi /etc/vsftpd/vsftpd.conf   
将   
anonymous_enable=YES
改为
anonymous_enable=NO
2.限制ftptest用户访问其他目录         
vi /etc/vsftpd/vsftpd.conf   
将 
 # chroot_list_enable=YES
 # (default follows)
 # chroot_list_file=/etc/vsftpd.chroot_list
改为
chroot_list_enable=YES   (表示对用户访问进行限制)
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list   (表示对chroot_list里面指定的用户进行限制)
3.编辑用户清单

vi /etc/vsftpd/chroot_list   (此文件本来是空的) 增加一行: ftptest

4.增加用户允许写权限

(vsftpd服务器是这样的,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。
这个时候,就需要打开此用户的写权限)

vi /etc/vsftpd/vsftpd.conf  在最后面新加一行:allow_writeable_chroot=YES

 

五、配置端口

1.vsftpd有两种端口,一个是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
                                  另一种是,一旦获取到请求之后,再专门用用户服务端和客户端传输数据的端口。

2.编辑配置文件 

vi /etc/vsftpd/vsftpd.conf

在最后添加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010

(表示使用被动模式,用于传输数据的端口分配从30000-30010之间)

 

六:解决用户鉴权问题

(因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 )

1.编辑pam.d/vsftpd 文件

vi /etc/pam.d/vsftpd    注释掉  #auth required pam_shells.so (这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.)

2.编辑shells 文件

vi /etc/shells    增加一行:/sbin/nologin  (允许不能登录系统的用户通过鉴权)

 

七、重启vsftpd服务器

通常重启命令:service vsftpd restart
centos7改用命令:systemctl restart vsftpd.service
查看状态:systemctl status vsftpd.service

 

八、阿里云服务器还需配置安全组,新增21和 30000/30010端口

 

九、客户端

1.ftp客户端工具

FileZilla (所有平台)、WinSCP (Windows)、Transmit (Mac OS X)、FireFTP (所有平台与Firefox)、Cyberduck (Mac OS X)、ftprush(Windows)