centos7 配置 ftp 服务器(本地用户)
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 服务器(本地用户)的更多相关文章
- 腾讯云下的CentOS7 配置 FTP 服务器
第一步安装vsftp * yum -y install vsftpd 第二步配置ftp文件 要实现用户不仅可以下载ftp上的内容 还可以删改增加文件到ftp服务器 需要给ftp的目录赋予写入权限 1. ...
- centos7 配置ftp服务器搭建(匿名访问,以及本地登录)
大家好,今天来给大家分享一个基于centos 7的ftp服务器搭建 实现功能:匿名访问,本地登录 查看系统版本: [root@localhost ~]# cat /etc/redhat-release ...
- CentOS7 配置FTP服务器
1.安装vsftpd yum -y install vsftpd 2.在firewalld中添加规则 为确保成功 先启动firewalld服务 systemctl enable firewalld s ...
- Linux Centos7配置ftp服务器
一.安装 1.安装 yum install -y vsftpd 2.设置开机启动 systemctl enable vsftpd.service 3.启动 systemctl start vsftp ...
- CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
ps:原文不知出处,但是原文也不能正常启动,这里做了一些修改!如果能正常配置请在下方留言让更多的人看到,因为之前我本人照着网上的教程安装卸载了十多次也无法正常使用,不希望后面的兄弟继续浪费时间,如果不 ...
- Linux:ftp服务本地用户,虚拟用户配置
本地用户 1. 修改ftp配置文件, anonymous_enable=NO 默认为YES,修改为NO,禁止匿名访问, 监听端口,可以根据自己的需求修改,为了安全起见自定义为好 2. /etc/ ...
- [CentOs7]搭建ftp服务器(2)——添加用户
摘要 上篇文章完成了ftp服务器的安装与匿名访问的内容,当然出于安全的考虑是不允许匿名访问服务器的,所以就有了本篇的内容 ,为ftp服务器添加用户,用改用户进行访问. vsftpd添加用户 FTP用户 ...
- windows2003通过iis配置ftp服务器
以前习惯于用filezilla作为windows的ftp服务器,但是现在新版本的filezilla已经不支持windows2003了,所以趁机试一下iis配置ftp服务器. 前面都是很常规的配置 参考 ...
- 【腾讯云服务器】基于centos7搭建ftp服务器(vsftpd)
该博客分为三部分设置,1.ftp服务器搭建.2.防火墙设置 3.腾讯云安全组 一.ftp服务器搭建 1.1 安装vsftpd yum install vsftpd -y 1.2 启动vsftpd服 ...
随机推荐
- ThinkPHP 2.x 任意代码执行漏洞
直接访问 http://192.168.49.2:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D
- 论文笔记:(CVPR2019)PointWeb: Enhancing Local Neighborhood Features for Point Cloud Processing
目录 摘要 一.引言 二.相关工作 3D数据表示 点云深度学习 三.我们的方法 3.1 自适应特征调整(AFA)模块 3.1.1 影响函数fimp 3.1.2 关系函数frel 3.1.3 逐元素影响 ...
- CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数
CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数 线性代数回顾与参考 1 基本概念和符号 1.1 基本符号 2 矩阵乘法 2.1 向量-向量乘法 2.2 矩阵-向量乘法 2.3 矩阵- ...
- .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2
系列目录 [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...
- 解析java源文件
尝试从java源文件中解析出类.方法.属性等信息,但下面的代码没有完全实现. Sub parseJava() Dim package_name as String 'read a file Docum ...
- 微信SDK的使用
一.导入依赖 <!--微信支付--> <dependency> <groupId>com.github.wxpay</groupId> <arti ...
- 构建工具之Maven的使用(一)
一.前言 对于开发一个Java项目,上线之前会通过编译,测试,打包,部署这几个构建过程,如果文件较少,我们可以使用java-->javac-->jar这些命令去完成上述的构建流程.但是当工 ...
- WPS:利用数据透视表将数据按指定列进行分组求和
1.场景 如图所示:根据日期计算日期当天的总金额 2.利用数据透视表完成该操作 (1)选择金额列的某一格数据,点击上方插入--数据透视表 !!请确保表格第一行为表头 (2)在弹出的页面中直接点击&qu ...
- 【文件格式探究】EP.1 对ePub文件格式的初探
这是"文件格式探究"专题的第 1 期--初探 "ePub" 文件格式.这个专题将会给各位读者呈现笔者探索各种文件格式的过程,具体则是文件的内容是如何呈现出来的. ...
- GIT-版本管理-初阶使用
目前我用的比较多的git指令 git clone -b [branch-name]: 拉取远程指定分支代码 git status: 查看工作区修改状态 在将修改添加进暂存区的时候需要git add . ...