Linux搭建SFTP服务器

案例:搭建SFTP服务器

SFTP(SSH文件传输协议)

SFTP(SSH文件传输协议)是一种安全的文件传输协议,用于在计算机之间传输文件。它基于SSH(安全外壳协议)的子系统,提供了加密的、可靠的数据传输通道,用于在客户端和服务器之间安全地传输文件。

SFTP的特点:
  1. 安全性: SFTP通过SSH协议进行数据传输,使用了加密和身份验证机制,因此提供了高度的安全性,能够有效防止数据被窃听和篡改。
  2. 功能丰富: SFTP支持文件上传、下载、删除、重命名等文件操作,同时还支持文件夹的创建和管理,提供了丰富的功能以满足各种文件传输需求。
  3. 跨平台性: SFTP是一种标准化的协议,可以在多种操作系统上使用,包括Linux、Windows、macOS等,因此非常灵活和通用。
  4. 灵活性: SFTP允许用户使用多种客户端工具进行文件传输,包括命令行工具、图形界面工具以及基于Web的工具,使得用户可以根据自己的偏好选择合适的工具进行操作。
SFTP的应用场景:
  1. 远程服务器管理: 系统管理员可以使用SFTP来管理远程服务器,例如上传、下载和更新文件,进行日志文件的查看和分析等操作。
  2. 网站维护: 网站管理员可以使用SFTP来上传和下载网站文件,更新网站内容,管理网站的静态资源和动态脚本文件等。
  3. 备份和恢复: 用户可以使用SFTP来进行文件备份和恢复操作,将重要数据备份到远程服务器上,以防止本地数据丢失或损坏。
  4. 文件共享: 团队成员可以使用SFTP来共享文件和资源,进行协作编辑和版本控制,保持团队之间的工作同步和一致。

下面我们来在Linux中搭建一台SFTP服务器

步骤序号步骤描述
1安装OpenSSH服务器软件包
2配置SSH服务,启用SFTP子系统
3创建SFTP用户组
4创建SFTP用户,设置家目录和访问权限
5重启SSH服务使配置生效
6测试SFTP连接,确认服务器能够接受SFTP客户端的连接

1、创建用户组

在搭建SFTP服务器时创建用户组是为了更好地管理和控制用户的访问权限。简单来说,通过创建用户组,你可以将具有相似权限和访问需求的用户组织在一起,并轻松地为他们设置统一的文件访问权限和限制。这样可以更有效地管理SFTP服务器的安全性,并确保只有授权用户能够访问和传输文件。

# 创建一个新的用户组,用于管理SFTP用户。	
groupadd GWSFTP

2、创建用户

创建用户是为了允许特定的个体或实体通过SFTP协议访问服务器并进行文件传输。单独设置用户还有以下好处

  1. 身份验证:每个用户都有自己的用户名和密码,这样可以确保只有授权的用户能够访问服务器。
  2. 访问控制:可以根据每个用户的需求和角色设置不同的访问权限,限制其对文件系统的访问范围,从而确保安全性。
  3. 跟踪和管理:通过用户账户,管理员可以追踪每个用户的活动,包括登录时间、文件传输记录等,并对用户进行管理和监控。
  4. 个性化配置:每个用户可以有自己的配置文件、家目录和设置,这样可以根据用户的需要进行个性化定制。
# 创建一个新的SFTP用户,并将其添加到 GWSFTP 组中。
useradd -m -G GWSFTP -s /bin/false hrfan_sftp# 为用户设置密码
passwd hrfan_sftp
# -m 选项表示创建用户的主目录,如果不存在则会自动创建。
# -G GWSFTP选项表示将新用户添加到GWSFTP组中。
# -s /bin/false选项表示指定用户的登录shell为/bin/false,这意味着该用户无法登录到系统。
# hrfan_sftp是新创建的用户名。

3、设置SFPT目录

单独设置SFTP目录是为了限制用户的访问范围,提高服务器的安全性。具体来说, 还有以下几点优点

  1. 限制访问范围:将用户限制在特定的目录下,可以防止其访问服务器上的其他敏感文件和目录,降低了潜在的安全风险。
  2. 减少误操作:用户只能在其指定的目录下进行操作,减少了意外删除或修改其他重要文件的风险。
  3. 简化权限管理:通过单独设置SFTP目录,管理员可以更轻松地管理用户的访问权限,而不必担心用户越权访问其他目录。
  4. 提高隔离性:将不同用户的文件隔离在不同的目录下,有助于提高文件的隔离性,减少因用户错误操作或恶意行为而造成的影响范围。
# 设置SFTP的文件目录,可以执行以下操作最好按照上面的思路来,否则可能连不上SFTP服务器:首先建立file目录,他的拥有者必须是root,并且其他用户不能拥有写入的权限(ChrootDirectory 这个选项要求的),即权限不能超过755(否则连不上)很明显,这样,我们使用SFTP用户登录就只能进行下载操作,无法上传文件;所以在/file/IN目录下建一个用于上传和下载的目录,他的拥有者可以是SFTP用户,可以无限制操作该目录下的文件;
# 创建SFTP用户目录文件
mkdir /file
# 分配文件所属的组 
chown root:GWSFTP  /file
# 修改权限
chmod 755 /file
# 创建专属用户的文件
mkdir -p /file/IN
chown hrfan_sftp:GWSFTP /file/IN
chmod 755 /file/IN

4、修改服务器的SFTP配置

# 编辑/etc/ssh/sshd_config文件,注释其中的Subsystem sftp /usr/libexec/openssh/sftp-server,然后新增配置如下:
# 我的SFTP配置
Subsystem sftp internal-sftp  # SFTP子系统使用内置的SFTP服务器
Match Group GWSFTP            # 以下配置仅适用于属于该组的用户
ChrootDirectory /file         # 目录限制
ForceCommand internal-sftp    # 强制用户使用内置的SFTP服务器进行会话,而不允许执行其他命令
AllowTcpForwarding no         # 禁止TCP转发
X11Forwarding no              # 禁止X11转发

5、检查配置是否正确

sshd -t# 重启 sshd
systemctl restart sshd

6、修改端口

# 如果使用的是 firewall-cmdfirewall-cmd --permanent --zone=public --add-port=5678/tcp
# 需要先开启防火墙端口firewall-cmd --reload
# 修改 /etc/ssh/sshd_config文件 注释进行修改 Port 5678
# 查询sftp连接日志 tail -f /var/log/auth.log

7.测试是否连接成功

image-20240302192258177

image-20240302192242501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/504682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 基础(核心知识搭配代码)

前言 java的学习分为了上部分以及下部分进行学习,上部分就是对于java的基础知识,面向对象上,面向对象下,异常操作,javaApi;下部主要是集合,泛型,反射,IO流,J…

加密隧道技术

在现在的互联网上传输数据,首要考虑的就是安全。这关乎到你的隐私,个人信息,财产安全等等重大问题。如果你的程序本身传输的信息没有加密,也可以通过其他辅助方式让你的通信加密。一些工具的就是为了解决这样的场景的,…

ubuntu20下使用 torchviz可视化计算图

安装 torchviz: pip install torchviz示例代码:下面是一个简单的示例代码,展示如何使用 torchviz 可视化计算图: python import torch from torchviz import make_dot# 创建一个简单的模型 model torch.nn.Sequential(torch.nn…

《求生之路2》服务器如何选择合适的内存和CPU核心数,以避免丢包和延迟高?

根据求生之路2服务器的实际案例分析选择合适的内存和CPU核心数以避免丢包和延迟高的问题,首先需要考虑游戏的类型和对服务器配置的具体要求。《求生之路2》作为一款多人在线射击游戏,其服务器和网络优化对于玩家体验至关重要。 首先,考虑到游…

二维码门楼牌管理系统技术服务的分类与应用

文章目录 前言一、二维码门楼牌管理系统的分类二、二维码门楼牌管理系统的应用优势三、结论 前言 随着城市管理的精细化和智能化,二维码门楼牌管理系统成为了现代城市管理的重要工具。该系统将传统的门牌、楼牌、户牌与二维码技术相结合,实现了信息的快…

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统) 部署ffmpeg用来处理视频的各种操作 想使用ffmpeg,要先安装nasm,yasm,x264之后,否则会报错 nkvers 查看麒麟操作系统版本 cat /proc/version #查看linux版本信息 uname -a …

提升工作能力的方法

1.接受工作,只问标准 2.请示工作,必带方案; 3.汇报工作,突出成果; 4.分享工作,细说流程; 5.复盘工作,总结SOP 如果能这么做,那将是一个非常通透的高手,所以高…

Java学习-简单算法与正则表达式

1.排序算法 a.冒泡排序: 每轮找出当前最大值,冒到前面,循环长度减一次,每轮从1个比较到长度减i个 b.选择排序: 每一轮选择每一个位置的数组元素和后面的元素比较,从第i1个比较到最后一个 选择排序的优化&am…

芯科科技为全球首批原生支持Matter-over-Thread的智能锁提供强大助力,推动Matter加速成为主流技术

智能锁领域的先锋企业U-tec和Nuki选择芯科科技解决方案,成为Matter-over-Thread应用的领先者 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)今…

Linux 常用的文本处理工具

目录 cat 连接 more/less 分页 tail 实时 cat 连接 将一个或多个文件的内容连接并显示在终端上,创建新文件或将内容追加到已有文件。 不会分屏显示文件内容,适用于较小的文件。 cat 文件1.txt 文件2.txt # 连接并显示文件1.txt和文件2.txt的内容 …

【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱

1 基本定义 SG 滤波算法(Savitzky - Golay 滤波算法)是一种数字信号处理算法,用于对信号进行平滑处理。该算法利用最小二乘法拟合局部数据段,然后用拟合的函数来估计每个数据点的值,从而实现平滑处理。 SG 滤波算法的…

C++/数据结构:AVL树

目录 一、AVL树的概念 二、AVL树的实现 2.1节点定义 2.2节点插入 三、AVL树的旋转 3.1新节点插入较高左子树的左侧:右单旋 3.2新节点插入较高右子树的右侧:左单旋 3.3新节点插入较高左子树的右侧---左右:先左单旋再右单旋 3.4新节点插…