centos7 搭建 vsftpd

参考:https://wiki.archlinux.org/title/Very_Secure_FTP_Daemon

教程:https://help.aliyun.com/document_detail/92048.html

1、配置 vsftpd

# umask 含义见下方说明
local_umask=077

# 全部用户被限制在主目录
chroot_local_user=YES

# 关闭例外用户名单 ignore all chroot_list, ensure all user can not toggle home dir arbitrarily
chroot_list_enable=NO

#指定例外用户列表文件,列表中用户不被锁定在主目录。
#chroot_list_file=/etc/vsftpd/chroot_list

# home dir can write/upload files
allow_writeable_chroot=YES

# 开启被动模式(模式介绍见下方说明,貌似就开启了,不用设置)
#pasv_enable=YES
#本教程中为Linux实例的公网IP (也可不设置)
#pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
#pasv_min_port=<port number>
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
#pasv_max_port=<port number>

① FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:

主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。

被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。

② FTP支持以下三种认证模式:

匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。 虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。

③ umask 决定目录和文件被创建时得到的初始权限:

当 umask = 022时 新建文件的权限是 644,新建的目录 权限是755

当 umask = 077时 新建文件的权限是 600,新建的目录 权限是700

2、添加 ftp 用户

adduser ftptest
passwd ftptest
usermod -d /var/ftp/test ftptest
chown -R ftptest:ftptest /var/ftp/test

3、设置 selinux

setsebool -P tftp_home_dir on
setsebool -P allow_ftpd_full_access on

4、开启防火墙

firewall-cmd --add-service=ftp --permanent

如果设置了被动模式的端口范围,如

pasv_min_port=2222
pasv_max_port=2225

则还需开放这些端口

# 这里需要改成用 firewall-cmd 命令去处理,我懒得找命令了
sudo iptables -A INPUT -p tcp --dport 2222:2225 -j ACCEPT

5、客户端登录

ncftp  -P 21 -u<username> -p<password> 127.0.0.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章