基于centos7.9搭建SFTP服务

devtools/2024/9/23 1:49:32/

SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,它基于SSH协议,提供了加密的文件传输功能。

安装OpenSSH服务器,默认已经安装

yum install openssh-server -y

创建SFTP用户组和用户

groupadd sftp_users
useradd -g sftp_users -s /sbin/nologin sftp_user
passwd sftp_user

创建SFTP目录结构并设置正确的权限

mkdir -p /sftp/sftp_user/upload
chown root:root /sftp
chmod 755 /sftp
chown root:root /sftp/sftp_user
chmod 755 /sftp/sftp_user
chown sftp_user:sftp_users /sftp/sftp_user/upload
chmod 775 /sftp/sftp_user/upload

修改SSH配置文件

vi /etc/ssh/sshd_config

文件末尾添加

Match Group sftp_usersChrootDirectory /sftp/%uForceCommand internal-sftpX11Forwarding noAllowTcpForwarding no

配置参数详解

  • Match Group sftp_users
    这行开始一个条件块,指定后续的设置只适用于 sftp_users 组的成员。
  • ChrootDirectory /sftp/%u
    将用户限制在指定的目录中。%u 是一个变量,代表用户名。
    例如,对于用户 “sftp_user”,实际的 chroot 目录将是 /sftp/sftp_user。
  • ForceCommand internal-sftp
    强制使用内部 SFTP 服务器,而不允许普通的 SSH 访问。
  • X11Forwarding no
    禁止 X11 转发,这是一种图形界面转发技术。
  • AllowTcpForwarding no
    禁止 TCP 端口转发,增加安全性。

其他可以配置的参数:

  • PasswordAuthentication yes/no
    允许或禁止密码认证。
  • PermitRootLogin no
    禁止 root 用户直接登录。
  • AllowUsers user1 user2
    指定允许登录的用户列表。
  • AllowGroups group1 group2
    指定允许登录的组列表。
  • DenyUsers user1 user2
    指定禁止登录的用户列表。
  • DenyGroups group1 group2
    指定禁止登录的组列表。
  • PermitEmptyPasswords no
    禁止空密码登录。
  • MaxAuthTries 3
    设置最大认证尝试次数。
  • LoginGraceTime 60
    设置登录超时时间(秒)。
  • ClientAliveInterval 300
    设置服务器向客户端发送保活消息的间隔(秒)。
  • ClientAliveCountMax 3
    设置服务器在断开连接前等待客户端响应的最大次数。
  • UseDNS no
    禁用 DNS 反向查询,可以加快登录速度。
  • AllowAgentForwarding no
    禁止 SSH 代理转发。
  • Banner /etc/ssh/banner
    指定登录前显示的欢迎信息文件。
  • Compression delayed
    延迟压缩直到用户认证成功,可以防止某些攻击

重启

systemctl restart sshd

防火墙开启端口

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

关闭selinux

setenforce 0

测试SFTP连接;连接时会把当前位置默认设置为根目录,上传和下载的默认位置

sftp sftp_user@localhost

上传测试

[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
[root@localhost opt]# touch test.txt
[root@localhost opt]# sftp sftp_user@localhost
sftp_user@localhost's password:
Connected to localhost.
sftp> ls
upload
sftp> cd upload/
sftp> ls
sftp> put test.txt
Uploading test.txt to /upload/test.txt
test.txt                                                                              100%    0     0.0KB/s   00:00
sftp>
sftp> exit
[root@localhost opt]# ll /sftp/sftp_user/upload/
total 0
-rw-r--r--. 1 sftp_user sftp_users 0 Sep 20 23:43 test.txt
[root@localhost opt]#

下载测试

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# sftp sftp_user@localhost
sftp_user@localhost's password:
Connected to localhost.
sftp> cd /upload/
sftp> ls
test.txt
Fetching /upload/test.txt to /root/texit
sftp> get test.txt /root/test.txt
Fetching /upload/test.txt to /root/test.txt
sftp> exit
[root@localhost ~]# ls
anaconda-ks.cfg  test.txt

http://www.ppmy.cn/devtools/115740.html

相关文章

2024年自学手册 网络安全(黑客技术)

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、…

【数据仓库】数据仓库层次化设计

一、基本概念 **1. RDS(RAW DATA STORES,原始数据存储)** RDS作为原始数据存储层,用于存储来自各种源头的未经处理的数据。这些数据可能来自企业内部的业务系统、外部数据源或各种传感器等。RDS确保原始数据的完整性和可访问性&…

Vue 实现高级穿梭框 Transfer 封装

文章目录 01 基础信息1.1. 技术栈1.2. 组件设计a. 竖版设计稿b. 横版设计稿 02 技术方案(1)初定义数据(2)注意事项(3)逻辑草图 03 代码示例3.1. 组件使用3.2. 组件源码./TransferPlus/index.vue./TransferP…

98-策略模式的理解

‌策略模式是一种软件设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。这种模式允许算法的变化不会影响使用算法的客户端,通过将使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些…

Go缓存系统

1.缓存 缓存(Caching),用于提高数据访问速度和系统性能。它通过在快速的存储介质中保存数据的副本,使得数据可以被更快地检索,而不是每次都从较慢的原始数据源(如数据库或磁盘)中获取。缓存通常…

数据结构-树(基础,分类,遍历)

数据结构-树 1.什么是树? 在计算机科学中,树是一种常用的非线性数据结构,用于表示具有层次关系的数据。与线性数据结构(如数组和链表)不同,树结构以节点(Nodes)和边(Ed…

搭建 PHP

快速搭建 PHP 环境指南 PHP 是一种广泛用于 Web 开发的后端脚本语言,因其灵活性和易用性而受到开发者的青睐。无论是开发个人项目还是企业级应用,PHP 环境的搭建都是一个不可忽视的基础步骤。本指南将带您快速学习如何在不同平台上搭建 PHP 环境&#x…

CentOS入门宝典:从零到一构建你的Linux服务器帝国

目录 引言 一、CentOS简介与版本选择 1.1 CentOS是什么? 1.2 版本选择 二、安装CentOS 2.1 准备安装介质 2.2 安装过程 三、基础配置与优化 3.1 更新系统 3.2 配置防火墙 3.3 配置SELinux 3.4 系统监控与日志 四、网络配置与管理 4.1 配置静态IP 4.…