centos

CentOS SFTP服务器搭建步骤

小樊
56
2025-04-20 18:59:16
栏目: 云计算

在CentOS系统上搭建SFTP服务器通常涉及安装OpenSSH服务器,并对其进行相应的配置。以下是详细的搭建步骤:

安装OpenSSH服务器

确保你的CentOS系统已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:

sudo yum install openssh-server

启动并启用SSH服务

安装完成后,启动SSH服务,并设置其开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

检查SSH服务状态

确保SSH服务正在运行,并且没有错误:

sudo systemctl status sshd

创建SFTP用户

假设我们要创建一个名为 sftpuser 的用户,限制他只能访问 /sftp 目录,并且使用特定的SSH配置文件。

  1. 创建SFTP用户:
sudo useradd -m -s /sbin/nologin sftpuser
  1. 设置用户密码:
sudo passwd sftpuser
  1. 创建用户的SFTP根目录:
sudo mkdir /sftp
  1. 设置根目录的权限(根目录必须是root用户):
sudo chown root:root /sftp
sudo chmod 755 /sftp
  1. 在根目录下创建子目录,并设置写入权限:
sudo mkdir /sftp/sharedata
sudo chown sftpuser:sftpuser /sftp/sharedata
  1. 创建新用户的SSH配置文件目录:
sudo mkdir /home/sftpuser/.ssh
  1. 复制系统SSH配置文件到用户目录:
sudo cp /etc/ssh/sshd_config /home/sftpuser/.ssh/sshd_config
  1. 编辑用户的SSH配置文件:
sudo vi /home/sftpuser/.ssh/sshd_config

在配置文件中,添加以下配置:

Match User sftpuser
    ChrootDirectory /sftp
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

注意将这个配置节放到最后,否则会出现“Directive ‘UseDNS’ is not allowed within a Match block”的错误。

  1. 给新用户的用户目录递归设置归属:
sudo chown -R sftpuser:sftpuser /home/sftpuser
  1. 给配置文件设置读取权限:
sudo chmod 755 /home/sftpuser/.ssh/sshd_config
  1. 修改SSH服务启动选项(可选):

如果你需要为多个用户指定不同的配置,可以在SSH服务的启动选项中指定这些文件。

sudo systemctl daemon-reload
sudo systemctl restart sshd

至此,你已经成功在CentOS上搭建了一个SFTP服务器,并且创建了一个受限访问的SFTP用户。你可以使用任何支持SFTP的客户端(如WinSCP、FileZilla等)连接到服务器,并使用SSH协议(端口22)进行连接,确保使用具有适当权限的用户凭据进行身份验证。

配置防火墙

如果系统的防火墙开启了FTP端口(默认为21),需要添加规则允许FTP流量通过防火墙。

使用以下命令添加FTP的防火墙规则:

sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
sudo firewall-cmd --reload

额外的安全设置

为了提高服务器的安全性,可以考虑以下额外的安全设置:

  1. 禁用root登录

    编辑 /etc/ssh/sshd_config 文件,找到以下行并注释掉或修改为:

    PermitRootLogin no
    
  2. 更改SSH端口

    将SSH端口改为10000以上,以减少被自动扫描到的几率。

    sudo vi /etc/ssh/sshd_config
    

    将以下行:

    Port 22
    

    改为:

    Port 10001
    
  3. 限制用户访问权限

    使用 chroot 将用户限制在其主目录中,防止用户访问其他系统目录。

    sudo chroot_local_user=YES
    
  4. 关闭不必要的服务

    关闭不必要的服务以减少攻击面。

    sudo systemctl stop sshd
    sudo systemctl disable sshd
    

通过以上步骤,你可以在CentOS系统上成功搭建一个安全的SFTP服务器。确保在进行任何配置更改后,都重新加载或重启相应的服务以使更改生效。

0
看了该问题的人还看了