CentOS7 配置FTP

安装 vsftpd

sudo yum install -y vsftpd
安装后, /etc/vsftpd目录说明

/etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
/etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。

设置FTP服务开机自启动
systemctl enable vsftpd.service
启动 FTP 服务
systemctl start vsftpd.service
查看 FTP 服务监听的端口
sudo netstat -antup | grep ftp

配置 vsftpd

vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。

配置匿名用户上传文件权限

匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。

sudo vim /etc/vsftpd/vsftpd.conf 编辑文件

write_enable=YES
anon_upload_enable=YES

更改/var/ftp/pub目录的权限
sudo chmod o+w /var/ftp/pub/
重启服务
systemctl restart vsftpd.service

配置本地用户登录

本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。

  1. 创建一个用户
    sudo useradd test
  2. 修改test 用户的密码
    sudo passwd test
  3. /http/htdocs为FTP目录及更改所有者
    sudo chown -R test:test /http/htdocs
  4. 修改配置

FTP服务器可以配置为主动模式或被动模式

主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在的目录
local_root=/http/htdocs
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list

#配置其他参数
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在目录
local_root=/http/htdocs
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
#FTP服务器公网IP
pasv_address=<FTP服务器公网IP>
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=port number
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=port number

#配置其他参数
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

建议您把端口范围设在比较高的一段范围内,比如50000-50010,有助于提高访问FTP服务器的安全性。

  1. sudo vim /etc/vsftpd/chroot_list命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名单。

如果没有例外用户也必须要有 chroot_list文件,内容可为空。

  1. 重启vsftpd服务
    systemctl restart vsftpd.service

vsftpd.conf 的配置文件参数说明

用户登录控制:

anonymous_enable=YES    接受匿名用户
no_anon_password=YES    匿名用户login时不询问口令
anon_root=(none)    匿名用户主目录
local_enable=YES    接受本地用户
local_root=(none)   本地用户主目录

用户权限控制:

write_enable=YES    可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO   匿名用户可以上传
anon_mkdir_write_enable=NO  匿名用户可以建目录
anon_other_write_enable=NO  匿名用户修改删除
chown_username=lightwiter   匿名上传文件所属用户名
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 4,274评论 1 9
  • FTP服务概述 简单FTP构建及访问 VSFTP服务基础 用户禁锢、黑白名单 FTP并发及带宽限制 一、FTP服务...
    紫_轩阅读 8,126评论 3 25
  • 阿里云CentOS7搭建任何网络服务,需要配置相应的安全组规则。 开启阿里云端口权限 阿里云服务器端口权限是由安全...
    薛定喵的鹅阅读 2,650评论 1 3
  • 图片更清晰,文字在最下面 FTP是TCP/IP的一种应用,使用TCP而不是UDP,所以是可靠的,面向连接的。 FT...
    停下浮躁的心阅读 1,845评论 0 4
  • 2018.12.28 星期五 晴 (-11℃/-26℃) 时间都去哪了,或许你会说这是一首歌的名字,但是这...
    留白简话阅读 659评论 2 45

友情链接更多精彩内容