Linux – 基于CentOS搭建FTP文件服务

2022-12-15 13:50:58 浏览数 (1)

下面主要是说明如何在centos下面配置一个ftp服务器,我找了几个教程,每个教程都有各自的优点,我就结合了他们的文章和我自己的实践总结出一篇更好的文章,作为备忘啦,参考文章将在末尾给出,如有侵权,请联系我,谢谢!

vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。毫无疑问,我也选择了它。

本文测试环境

  • CentOS 7
  • 测试服务器IP 192.168.0.186

1.安装并启动 FTP 服务

1.1. 安装 VSFTPD

使用 yum 安装 vsftpd

代码语言:javascript复制
yum install -y vsftpd

1.2. 启动 VSFTPD

安装完成后,启动 FTP 服务:

代码语言:javascript复制
service vsftpd start

启动后,可以看到系统已经监听了 21 端口:

代码语言:javascript复制
netstat -nltp | grep 21

此时,访问 ftp://192.168.0.186 可浏览机器上的 /var/ftp目录了。


2.配置 FTP 权限

2.1. 了解 VSFTP 配置

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

代码语言:javascript复制
vsftpd.conf -- 为主要配置文件
ftpusers -- 黑名单,配置禁止访问 FTP 服务器的用户列表
user_list -- 白名单,配置用户访问控制

2.2 阻止匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。

编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

禁用匿名用户 – YES 改为NO

anonymous_enable=NO

禁止切换根目录 打开注释,删除注释符号“#”

代码语言:javascript复制
# chroot_local_user=YES

禁止ftp用户跳出自己的根目录

编辑完成后保存配置,重新启动 FTP 服务

代码语言:javascript复制
service vsftpd restart

2.3 创建 FTP 用户

创建一个用户 ftpuser

代码语言:javascript复制
useradd -s /sbin/nologin -g ftp -d /var/www/html ftpuser

-s /sbin/nologin 限制用户只能连接FTP,无法登录系统

-g ftp 将用户加入到ftp组(vsftpd已创建)

-d /var/www/html 根目录限制在/var/www/html

ftpuser FTP用户名

执行该命令后,如果出现这样的错误提示:

代码语言:javascript复制
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

这说明目录(/var/www/html)已经存在,不可再新建此目录,并非添加用户失败,可以忽略。

为用户 ftpuser 设置密码

代码语言:javascript复制
passwd ftpuser

提示:重复输入2次

2.4 修改目录权限

代码语言:javascript复制
chown -R myftp /var/www/html

递归把所有目录及文件的拥有者设为新添加的ftp用户

代码语言:javascript复制
chmod -R 755 /var/www

递归地设置拥护者全部权限,其他用户只有读取和执行权限

2.5. 重启vsftpd服务

代码语言:javascript复制
service vsftpd restart

3. 配置防火墙(放开端口 21 )

参考iptables设置方法,这里不再展开

4. 访问FTP

根据您个人的工作环境,选择一种方式来访问已经搭建的 FTP 服务

  • 通过 Windows 资源管理器访问

Windows用户可以到资源管理器的地址栏输入以下地址进行访问:

ftp://ftpuser:password@192.168.0.186

  • 通过 FTP 客户端工具访问

WinSCP – Windows 下的 FTP 和 SFTP 连接客户端

FlashFXP – Windows 下的一款优秀的FXP和FTP链接客户端

FileZilla – 跨平台的 FTP 客户端,支持 Windows 和 M

特别提示

  • ftp根目录不能赋予ftp用户写权限,否则将无法连接例如,假设:
    1. 有目录/var/ftp,所有者(u)为root,所属组(g)为root
    2. 有ftp用户,名为myftp,所属组ftpusers,限制根目录/var/ftp

那么ftp目录的权限最高只能设置到755,即 drwxr-xr-x root root,但其下的目录如/var/ftp/www是可以赋予777权限的

参考文章:

https://www.linuxidc.com/[Linux](https://www.yiiven.cn/tag/linux/)/2017-11/148518.htm

https://www.jb51.net/os/RedHat/105909.html

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:

原文出处:Yiiven https://cloud.tencent.com/developer/article/2193129

0 人点赞