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服 ...
随机推荐
- 【知识详解】Https详解
Https详解 1.什么是Https Http + SSL = Https 一句话说:Https是身披SSL的Http,当使用了SSL后,Http先和SSL通信,再由SSL和TCP通信, 2.为什么需 ...
- Flask 之linux部署
1.装python > `[root ~]# yum install gcc [root ~]# wget https://www.python.org/ftp/python/3.6.5/Pyt ...
- python虚拟环境之Pyenv
一.windows下安装 1.使用命令安装 pip install pyenv-win --target %USERPROFILE%/.pyenv %USERPROFILE%/是具体的路径,例如 ## ...
- Clip Studio Paint EX 1.10.6安装破解教程
clip studio paint是一款牛逼的绘图软件,简称csp.做动漫.漫画设计的同学的必备神器.本文教大家如何安装并破解 clip studio paint ex 1.10.6版本,文章教程提供 ...
- java获取日出日落时间
import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- Solon 1.5.22 发布
Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...
- 程序员被老板要求两个月做个APP,要不比京东差,网友:做一个快捷方式,直接链到京东
隔行如隔山,这句话说得一点都没错.做一个程序员,很多人都会羡慕,也有很多人会望而却步. 作为一个外行人,你别看程序员每天坐在电脑前敲敲键盘打打代码,以为很简单,其实啊也只有程序员自己明白,任何一个看似 ...
- 建立局域网内使用的CentOS7-OpenStack源
by 无若 1. 先建立局域网内使用的CentOS7源 这个参看 http://www.cnblogs.com/gleaners/p/5735472.html 2. 抓取所有OpenStack的包,文 ...
- javaScript学习关于节点
节点的常用属性和方法: 个人理解,对于节点来说,他就是html里面的标签对象. 通过具体的元素节点调用: getElementsByTagName()方法,获取当前节点的指定标签名孩子节点 appen ...
- PrismWPF网盘
技术点 文件分片上传与下载 Vue 正在努力中.... 客户端 采用 WPF:Net5+Prism8+RestSharp 客户端基本结构如下 模块说明 Model: 主要放置Prism模块 ZFile ...