2021-09-02

1. 安装

# 安装 vsftpd
yum -y install vsftpd

2. 启动服务并添加到开机自启

# 启动 vsftpd
systemctl start vsftpd # 设置开机启动
systemctl enable vsftpd # 查看服务状态和端口(默认端口是 21 )
systemctl status vsftpd
netstat -nltp | grep 21 --------------------------------------
-bash: netstat: 未找到命令
执行 yum -y install net-tools
--------------------------------------

3. 防火墙设置

3.1 关闭防火墙

# 关闭防火墙
systemctl disable firewalld # 查看防火墙状态
systemctl status firewalld

3.2 关闭 selinux

# 临时关闭
getenforce
setenforce 0
getenforce #永久关闭
vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled # 重启服务器
reboot

因为我已经永久关闭 selinux 了,所以临时关闭提示信息是这些,正常情况下提示信息如下所示

4. 配置

4.1 配置文件说明

# 配置文件在 /etc/vsftpd 目录下
vsftpd.conf   核心配置文件
ftpusers     黑名单,不允许访问 FTP 服务器的用户列表,一行一个账号
user_list    白名单,允许访问 FTP 服务器的用户列表,一行一个账号

4.2 配置本地登录

(1) 修改配置文件

# 备份
mv vsftpd.conf vsftpd.conf.bak

# 编辑配置文件
vi vsftpd.conf
# 是否允许虚拟用户访问
anonymous_enable=NO
#
# 是否允许本地用户登录 ftp
local_enable=YES
#
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=6000
data_connection_timeout=1200
connect_from_port_20=YES
#
# 将不在 /etc/vsftpd/chroot_list 文件中的用户限制在其家目录下
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#
# 当用户主目录不在根目录下时需要添加此参数
allow_writeable_chroot=YES
#
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
# 本地用户的 ftp 根目录
local_root=/data/ftpdata
listen=YES
listen_ipv6=NO
#
# 认证
pam_service_name=vsftpd
#
tcp_wrappers=YES

chroot_list 在安装时是没有的,这个需要自己创建

在配置文件中 chroot_local_user=YES 和 chroot_list_enable=YES ,这表示

① 所有用户都被限制在其主目录下

② 使用 chroot_list_file 指定的用户列表 /etc/vsftpd/chroot_list ,这些用户作为“例外”,不受限制

cd /etc/vsftpd/

# 编辑 chroot_list 将 root 加进去
vi chroot_list

/var/log/xferlog 需要创建

  该日志文件记录 FTP 会话,可以显示出用户向 FTP 服务器或从服务器拷贝了什么文件。会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
  该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统 名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务 器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或 0),认证用户的ID或"*"。

cd /var/log
touch xferlog

修改了配置文件之后要重启 vsftpd 服务 systemctl restart vsftpd ,以生效配置。

(2) 创建本地用户并设置密码

# 添加用户,指定其家目录、所属组及登入后所使用的 shell,/sbin/nologin 表示不允许 login 系统
# 主用户
useradd ftpuser -d /data/ftpuser -s /sbin/nologin -g ftp # 子用户
useradd ftp_liu -d /data/ftpdata/ftp_liu -s /sbin/nologin -g ftp useradd ftp_li -d /data/ftpdata/ftp_li -s /sbin/nologin -g ftp
... # 设置密码
passwd ftpuser

(3) 添加白名单

cd /etc/vsftpd/
vi user_list
ftpuser

(4) 修改目录权限

chmod 755 /ftpuser/
chown -R ftpuser:ftp /ftpuser/

(5) 修改 /etc/pam.d/vsftpd

为什么要修改这个文件呢?

我们前面在配置文件中设置 pam_service_name=vsftpd ,即指定 vsftpd 的认证走/etc/pam.d/vsftpd 文件。

(6) 登录测试

前面在配置文件中,我们配置了 chroot_local_user=YES 和 chroot_list_enable=YES ,所以没有写进 chroot_list 中的用户都会被限制在当前用户目录下,不能往上一级切换

简单说明一下,如图所示, ljq_1 目录的权限是 700 ,即该目录除了目录的所有者具有完整的权限之外,其他所有用户对该目录完全没有任何权限。所以可以通过调整目录的权限规定每个 ftp 用户能进行的操作。

# 参数简介
r  读( 看目录有什么,如 ll ) w  可以在目录里创建、删除、移动文件、文件夹,如 touch mkdir rm mv cp x  表示用户可进入到该目录中

按照上面的配置步骤基本上就能顺利进行本地用户登录的 ftp 服务器了,如果遇到什么问题可以评论指出,大家一起解决 O(∩_∩)O

centos7 配置 ftp 服务器(本地用户)的更多相关文章

  1. 腾讯云下的CentOS7 配置 FTP 服务器

    第一步安装vsftp * yum -y install vsftpd 第二步配置ftp文件 要实现用户不仅可以下载ftp上的内容 还可以删改增加文件到ftp服务器 需要给ftp的目录赋予写入权限 1. ...

  2. centos7 配置ftp服务器搭建(匿名访问,以及本地登录)

    大家好,今天来给大家分享一个基于centos 7的ftp服务器搭建 实现功能:匿名访问,本地登录 查看系统版本: [root@localhost ~]# cat /etc/redhat-release ...

  3. CentOS7 配置FTP服务器

    1.安装vsftpd yum -y install vsftpd 2.在firewalld中添加规则 为确保成功 先启动firewalld服务 systemctl enable firewalld s ...

  4. Linux Centos7配置ftp服务器

    一.安装 1.安装 yum install  -y vsftpd 2.设置开机启动 systemctl enable vsftpd.service 3.启动 systemctl start vsftp ...

  5. CentOS7配置FTP服务器增强版~(零基础学会FTP配置)

    ps:原文不知出处,但是原文也不能正常启动,这里做了一些修改!如果能正常配置请在下方留言让更多的人看到,因为之前我本人照着网上的教程安装卸载了十多次也无法正常使用,不希望后面的兄弟继续浪费时间,如果不 ...

  6. Linux:ftp服务本地用户,虚拟用户配置

    本地用户 1. 修改ftp配置文件,  anonymous_enable=NO   默认为YES,修改为NO,禁止匿名访问, 监听端口,可以根据自己的需求修改,为了安全起见自定义为好 2. /etc/ ...

  7. [CentOs7]搭建ftp服务器(2)——添加用户

    摘要 上篇文章完成了ftp服务器的安装与匿名访问的内容,当然出于安全的考虑是不允许匿名访问服务器的,所以就有了本篇的内容 ,为ftp服务器添加用户,用改用户进行访问. vsftpd添加用户 FTP用户 ...

  8. windows2003通过iis配置ftp服务器

    以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...

  9. 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)

    该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置  3.腾讯云安全组 一.ftp服务器搭建 1.1  安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...

随机推荐

  1. java学习笔记之OOP(二)

    java学习笔记二.面向对象[OOP]Object Oriented Programming 一.三大特性: 1.封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用 ...

  2. odoo14--odoo前端框架owl【odoo web library】

    原文链接:https://www.alanhou.org/odoo-14-owl-todolist/ 1.组件树 Root         /   \        A     B       / \ ...

  3. odoo里面的一些ORM操作

    案例0001sale_obj=self.env['sale.order'].browse(k)通过browse查找对象找到对象里面的 sale_obj.name browse 获取一个数据库id或一个 ...

  4. C++第四十九篇 -- 将一个项目Copy到另一台电脑

    最近写项目,由于设备原因,需要将一台电脑的项目拷贝到另一台电脑上,在另一个电脑上继续编写.由于配置属性原因,最终还是在另一台电脑上创建了新项目,只是把这些cpp文件都复制过去了,然后重新部署属性. 背 ...

  5. 浏览器WEB Browser 常识

    浏览器WEB Browser 浏览器发展史 浏览器诞生与发展 浏览器的诞生 早期浏览器 Netscape Internet Explorer 与浏览器战争 chrome的崛起 时代之泪 IE浏览器终成 ...

  6. chanakya

    仅供个人娱乐 参考http://www.saulgoodman.cn/HA-Chanakya.html 靶机信息 https://www.vulnhub.com/entry/ha-chanakya,3 ...

  7. CreatFile打开驱动失败

    使用  CreateFile(DRIVER_PATH, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_AT ...

  8. silky微服务简介

    代理主机 silky微服务定义了三种类型的代理主机,开发者可以根据需要选择合适的silky代理主机托管微服务应用.代理主机定义了一个Startup模块,该模块给出了使用该种类型主机所必须依赖的模块. ...

  9. 原生js 以ajax(post)的方式传json至php,并让php解析为数组

    如题. 比如要把一个json,如 json= {name:"John Rambo", time:"3pm"},,通过js ,传到一个php服务器 fwq.php ...

  10. Java代码编写、代码优化技巧总结

    随着工作经验的积累,在代码编写和优化方面,个人的心得体会总结以及有些从网上或书本中看到的有用技巧 1. 判断何时使用keySet()和entrySet() 获取Map 的key 和value 当循环中 ...