温馨提示×

centos sftp配置有哪些关键点

小樊
54
2025-07-28 20:54:13
栏目: 智能运维

在CentOS系统上配置SFTP(Secure File Transfer Protocol)服务时,有几个关键点是需要注意的,以确保服务器的安全性和稳定性。以下是配置CentOS SFTP时的一些关键点:

安装必要的软件包

确保你的CentOS系统是最新的,并安装OpenSSH服务器。

sudo yum update -y
sudo yum install openssh-server -y

配置SSH服务

编辑SSH服务的主配置文件 /etc/ssh/sshd_config。确保以下配置项已经启用(删除或注释掉前面的 #):

  • PubkeyAuthentication yes:启用公钥认证,禁用密码认证。
  • PasswordAuthentication no:如果需要允许密码认证,可以取消注释此行。
sudo vi /etc/ssh/sshd_config

创建SFTP用户目录

为每个需要使用SFTP的用户创建一个目录,并设置适当的权限。

sudo useradd -m sftpuser1
sudo passwd sftpuser1
sudo mkdir /home/sftpuser1
sudo chown sftpuser1:sftpuser1 /home/sftpuser1
sudo chmod 755 /home/sftpuser1

配置SELinux(可选)

如果你的CentOS系统启用了SELinux,可能需要调整相关策略以允许SFTP访问。

sudo setsebool -P sftp_home_dir on
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/home/sftpuser1(/.*)?"
sudo restorecon -Rv /home/sftpuser1

重启SSH服务

保存并退出配置文件后,重启SSH服务以应用更改。

sudo systemctl restart sshd

测试SFTP连接

你可以使用 sftp 命令测试连接,或者使用文件管理器(如FileZilla)进行连接。

sftp sftpuser1@your_server_ip

配置防火墙规则

确保防火墙允许SSH连接(默认端口22)。

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

强化用户认证

  • 禁用root登录:通过编辑 /etc/ssh/sshd_config 文件,将 PermitRootLogin 设置为 no,并重启SSH服务。
  • 使用密钥认证:鼓励使用SSH密钥对进行身份验证,而不是密码,以增加安全性。

限制用户访问权限

  • 配置chroot环境:通过 Match UserMatch Group 指令在 /etc/ssh/sshd_config 文件中限制用户只能访问其主目录。
  • 设置目录权限:确保SFTP用户的家目录及其所有上级目录的属主和属组都是root,并且权限设置为755。

配置SSH服务

  • 禁用不必要的服务:例如,如果不需要X11转发,可以在SSH配置文件中添加 X11Forwarding no
  • 启用内部SFTP子系统:确保 /etc/ssh/sshd_config 文件中启用了内部SFTP子系统,如 Subsystem sftp internal-sftp

定期更新和维护

  • 更新软件包:定期更新OpenSSH和其他相关软件包,以确保及时应用安全补丁。
  • 监控和日志记录:定期检查 /var/log/secure 文件,以便及时发现并响应任何可疑活动。

0