Linux搭建SFTP服务器

打印 上一主题 下一主题

主题 507|帖子 507|积分 1521

案例:搭建SFTP服务器

   SFTP(SSH文件传输协议)

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

  

  • 安全性: SFTP通过SSH协议举行数据传输,利用了加密和身份验证机制,因此提供了高度的安全性,能够有用防止数据被窃听和篡改。
  • 功能丰富: SFTP支持文件上传、下载、删除、重命名等文件操纵,同时还支持文件夹的创建和管理,提供了丰富的功能以满意各种文件传输需求。
  • 跨平台性: SFTP是一种标准化的协议,可以在多种操纵系统上利用,包罗Linux、Windows、macOS等,因此非常灵活和通用。
  • 灵活性: SFTP答应用户利用多种客户端工具举行文件传输,包罗下令行工具、图形界面工具以及基于Web的工具,使得用户可以根据本身的偏好选择符合的工具举行操纵。
  SFTP的应用场景:

  

  • 远程服务器管理: 系统管理员可以利用SFTP来管理远程服务器,比方上传、下载和更新文件,举行日志文件的检察和分析等操纵。
  • 网站维护: 网站管理员可以利用SFTP来上传和下载网站文件,更新网站内容,管理网站的静态资源和动态脚本文件等。
  • 备份和规复: 用户可以利用SFTP来举行文件备份和规复操纵,将重要数据备份到远程服务器上,以防止本地数据丢失或损坏。
  • 文件共享: 团队成员可以利用SFTP来共享文件和资源,举行协作编辑和版本控制,保持团队之间的工作同步和一致。
  下面我们来在Linux中搭建一台SFTP服务器
步调序号步调形貌1安装OpenSSH服务器软件包2配置SSH服务,启用SFTP子系统3创建SFTP用户组4创建SFTP用户,设置家目录和访问权限5重启SSH服务使配置见效6测试SFTP连接,确认服务器能够接受SFTP客户端的连接 1、创建用户组

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

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

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

   单独设置SFTP目录是为了限定用户的访问范围,进步服务器的安全性。具体来说, 另有以下几点长处
  

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

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

  1. sshd -t
  2. # 重启 sshd
  3. systemctl restart sshd
复制代码
6、修改端口

  1. # 如果使用的是 firewall-cmd
  2.         firewall-cmd --permanent --zone=public --add-port=5678/tcp
  3. # 需要先开启防火墙端口
  4.         firewall-cmd --reload
  5. # 修改 /etc/ssh/sshd_config文件
  6.    注释进行修改 Port 5678
  7. # 查询sftp连接日志
  8.         tail -f /var/log/auth.log
复制代码
7.测试是否连接乐成





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表