CentOS.7下安装FTP服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37050372/article/details/84819648

Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装

sftp使用22端口,ftp使用21端口

1、安装并启动FTP服务

1.1 安装vsftpd

使用 yum 安装 vsftpd

yum install -y vsftpd

1.2、修改配置文件

vi /etc/vsftpd/vsftpd.conf

1.2 启动vsftpd

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

service vsftpd start

保证下面3项为YES

扫描二维码关注公众号,回复: 4475486 查看本文章

    anonymous_enable=YES

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

1.3、设置vsftpd开机启动

systemctl enable vsftpd.service

1.4、启动并查看vsftpd服务状态,systemctl启动服务成功不会有任何提示,绿色的active表示服务正在运行

systemctl start vsftpd.service
systemctl status vsftpd.service

2、本地验证ftp是否可以正常访问

2.1、安装ftp

yum -y install ftp

2.2、使用anonymous登陆,无需密码

ftp localhost

220表示服务正常,可以登陆;230表示登陆成功。

2.3、查看FTP服务器文件夹信息

启动后, 可以看到系统已经监听了 21 端口(Ubuntu下命令为: lsof -i:21)

netstat -nltp | grep 21

3.此时, 访问ftp://IPaddr 就可浏览主机上的 /var/ftp目录了

4、文件读写。

     到上面为止,我们发现ftp目录下并不能读写文件,这是由文件夹权限和selinux引起的。

4.1、设置文件夹权限,将pub文件夹的权限设置为777

chmod 777 -R /var/ftp/pub

4.1、关闭selinux服务

vi /etc/selinux/config

    将SELINUX=enforcing改为:SELINUX=disabled

4.3、系统重启,让配置生效

shutdown -r now

至此,ftp完全安装完成

5、配置 FTP 权限

5.1 了解 vsftpd 配置

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

        a. vsftpd.conf 为主要配置文件

        b. ftpusers 配置禁止访问 FTP 服务器的用户列表

        c. user_list 配置用户访问控制

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

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

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

# 禁用匿名用户  YES 改为NO

anonymous_enable=NO

# 禁止切换根目录 删除或#

chroot_local_user=YES

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

service vsftpd restart

5.3 创建 FTP 用户

创建一个用户 ftpuser

useradd ftpuser

为用户 ftpuser 设置密码

passwd ftpuser  或  echo "new_password" | passwd ftpuser --stdin

5.4 限制该用户仅能通过FTP访问

限制用户 ftpuser 只能通过 FTP 访问服务器, 而不能直接登录服务器

usermod -s /sbin/nologin ftpuser

5.5 为用户分配主目录

为用户 ftpuser创建主目录并约定

/data/ftp 为主目录, 该目录不可上传文件

/data/ftp/pub 文件只能上传到该目录下

在/data中创建相关的目录

mkdir -p /data/ftp/pub

设置访问权限

chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

设置为用户的主目录

usermod -d /data/ftp ftpuser

6、OK

至此, FTP服务已经搭建完成, 可以使用各种第三方客户端来测试访问FTP服务器

访问前, 记得关闭防火墙

systemctl stop firewalld.service

如果需要使用root登录连接FTP服务, 需要配置 /etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers, 将文件中的root注释

猜你喜欢

转载自blog.csdn.net/qq_37050372/article/details/84819648