centos7安装FTP服务器

目录

实验背景

一、配置yum源

1、本地yum

2、阿里云yum

二、安装vsftpd

1、安装vsftp服务

2、启动服务并设置开机自启动

3、开放防火墙和SELinux

三、创建用户和FTP目录

1、创建文件目录并配置权限

2、创建ftp组以及用户

四、修改vsftpd.conf文件

[1、备份 vsftpd.conf 配置文件](#1、备份 vsftpd.conf 配置文件)

2、需要去除注释配置

3、添加配置文件

4、最终文件配置信息

[5、创建 /etc/vsftpd/chroot_list 文件](#5、创建 /etc/vsftpd/chroot_list 文件)

五、启动FTP服务


实验背景

1.FTP服务器配置要求

企业内部现在有一台FTP服务器和Web服务器,FTP服务器主要用于维护企业的网站内容,包括上传文件、创建目录、更新网页等。企业现有两个部门负责维护任务,两者分别用team1和team2账号进行管理。要求仅允许team1和team2账号登录FTP服务器,但不能登录本地系统,并将这两个账号的根目录限制为/web/www/html,不能进入该目录以外的任何目录。

2. 需求分析

将FTP服务器和Web服务器放在一起是企业经常采用的方法,这样方便实现对网站的维护。为了增强安全性,首先需要仅允许本地用户访问,并禁止匿名用户登录。其次,使用chroot功能将team1和team2锁定在/web/www/html目录下。如果需要删除文件,则还需要注意本地权限。

本实验在centos7系统下完成实验

一、配置yum源

1、本地yum

local.repo的配置文件内容:

[centos]
name=centos
baseurl=file:///opt/centos/
gpgcheck=0
enable=1

2、阿里云yum

在保证能联外网的情况下,输入以下命令

bash 复制代码
wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

二、安装vsftpd

1、安装vsftp服务

bash 复制代码
yum -y install vsftpd

2、启动服务并设置开机自启动

bash 复制代码
systemctl start vsftpd    #启动vsftpd
systemctl enable vsftpd.service    #设置开机自启动

3、开放防火墙和SELinux

减少麻烦的产生,关闭防火墙和selinux,等搭建成功可以开启防火墙和相应的端口

bash 复制代码
systemctl stop firewalld.service    #关闭防火墙
systemctl disable firewalld.service    #并设置开机自启

#修改 /etc/selinux/config 将SELINUX=enforcing改为disabled
vim /etc/selinux/config
setenforce 0    #使修改后的配置文件生效

三、创建用户和FTP目录

team1和team2为该FTP服务创建的用户,而/web/www/html作为两个用户的访问目录(限制)

1、创建文件目录并配置权限

bash 复制代码
mkdir -p /web/www/html    
chmod -R 775 /web/www/html

2、创建ftp组以及用户

我们创建的team1和team2用户,为了系统安全考虑,当然不希望能让这两个账号的登录系统,要使得FTP组的用户不能的登录系统,则需要为FTP用户统一建立在不能登录系统的shell中,就拿 /sbin/nologin 来实现

-g:指定所属组

-d:指定家目录

-M:不创建家目录

-s:不登录系统

bash 复制代码
#创建组ftp
groupadd ftp 

#创建用户
useradd -g ftp -d /web/www/html -M -s /sbin/nologin team1
useradd -g ftp -d /web/www/html -M -s /sbin/nologin team2
#为用户创建密码
passwd team1
passwd team2

#修改/web/www/html目录为ftp组
chown root:ftp /web/www/html

四、修改vsftpd.conf文件

1、备份 vsftpd.conf 配置文件

先将/etc/vsftpd/vsftpd.conf配置文件备份(防止后面出错后没法还原),然后进行修改

bash 复制代码
vim vsftpd.conf    #进入配置文件

2、需要去除注释配置

进入该配置文件后,将100、101、103行的内容去掉注释


将剩下注释的内容全部删除后剩下的内容


这里也就解释常用的

anonymous_enable=YES #是否开启匿名用户,因为这里指定用户所以修改为NO

local_enable=YES #是否允许本地用户登录,默认允许

write_enable=YES #是否允许账号有写的权限

local_umask=022 :掩码

#本地用户创建文件目录都会默认777-022=755,最终文件目录的权限为755

#然而创建文件会默认666-022=644,最终创建的文件权限为644

dirmessage_enable=YES #进入某个目录会提示

根据实验要求创建的两个用户只能在受限于/web/www/html文件目录下,跟以下两条命令的搭配效果有关:

chroot_local_user=YES

chroot_list_enable=NO #激活chroot功能

#在文件 /etc/vsftpd/chroot_list 中列出的用户不能切换到其他目录

chroot_list_file=/etc/vsftpd/chroot_list #设置锁定用户在根目录列表的文件

3、添加配置文件

除了以上的还需添加以下的配置

local_root=/web/www/html #设置本地用户的根目录

allow_writeable_chroot=YES #允许 chroot限制,否则出现连接错误。

4、最终文件配置信息

其实修改的内容也就如下

5、创建 /etc/vsftpd/chroot_list 文件

bash 复制代码
vim /etc/vsftpd/chroot_list

添加 team1 和 team2 注意换行

五、启动FTP服务

重启 vsftpd

bash 复制代码
systemctl restart vsftpd

在客户端上需要先安装 ftp 服务

bash 复制代码
yum -y install ftp

上图可以看到,已经把 team1、team2用户限制在了/web/www/html目录下

相关推荐
中云DDoS CC防护蔡蔡25 分钟前
微信小程序被攻击怎么选择高防产品
服务器·网络安全·微信小程序·小程序·ddos
HPC_fac130520678161 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
yaoxin5211232 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin2 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
sinat_384241097 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ7 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream7 小时前
Linux的桌面
linux
xiaozhiwise7 小时前
Makefile 之 自动化变量
linux
Kkooe8 小时前
GitLab|数据迁移
运维·服务器·git