Technical 技术

CentOS 配置 FTP Server

1. 安装并设置 vsftpd

1.1. 安装 vsftpd

# yum install vsftpd

1.2. 开启 vsftpd 服务

# systemctl start vsftpd

1.3. 设置 vsftpd 开机自启动

# systemctl enable vsftpd

1.4. 查看 ftp 端口,默认为 21

# netstat -antup | grep ftp

2. 设置匿名访问模式

2.1. 通过 vim 打开 vsftpd.conf

# vim /etc/vsftpd/vsftpd.conf

2.2. 分别找到匿名模式(anonymous_enable)以及匿名上传权限(anon_upload_enable),并确认已修改为开启状态。

anonymous_enable=YES
anon_upload_enable=YES

2.3. 在文件尾增加如下三行。

#开启被动模式。
pasv_enable=YES
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#阿里云建议把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010

2.4. 更改/var/ftp/pub目录的权限,为FTP用户添加写权限。/var/ftp/pub 是FTP服务默认的文件目录。

# chmod o+w /var/ftp/pub/

2.5. 重启 FTP 服务。

# systemctl restart vsftpd.service

2.6. 在阿里云安全组中打开 21 端口和 50000/50010 端口。

2.7. 大功告成!在 FileZilla 中测试吧。匿名模式无需输入账号密码,任何人都能无需密码随意访问。如果要设置账号密码可以接着往下看。


3. 设置本地用户模式

3.1. 为FTP服务创建一个Linux用户。

# adduser <用户名>

3.2. 修改该用户的密码。

# passwd <用户名>

3.3. 创建一个供 FTP 服务使用的文件目录。

# mkdir /var/ftp/filestore

3.4. 更改/var/ftp/test目录的拥有者为<用户名>。

# chown -R <用户名>:<用户名> /var/ftp/filestore

3.5. 再次用 vim 修改 vsftpd.conf。

# vim /etc/vsftpd/vsftpd.conf

3.6. 修改 vsftpd.conf 文件。

#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
#在行首添加#注释掉以下参数:
#关闭监听IPv6 sockets。
#listen_ipv6=YES

3.7. 在配置文件末尾加入以下几行内容。

#设置本地用户登录后所在目录。
local_root=/var/ftp/filestore
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#服务器的公网IP。
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#阿里云建议把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010

3.8. 创建chroot_list文件,并在文件中写入例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。即便没有例外用户,也必须创建chroot_list文件,内容可为空。

vim /etc/vsftpd/chroot_list

3.9. 重启 FTP 服务。

# systemctl restart vsftpd.service

3.10. 大功告成!在 FileZilla 中输入你的用户名密码开始访问 FTP 服务器吧!

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x