centos ssh安全设置有哪些关键步骤和注意事项?

在CentOS系统中,SSH(Secure Shell)是远程管理服务器的核心工具,但其默认配置可能存在安全风险,通过合理的安全设置,可以有效防止未授权访问、暴力破解等威胁,以下从多个维度详细说明CentOS SSH安全配置的最佳实践,帮助构建更安全的远程管理环境。

centos ssh安全设置有哪些关键步骤和注意事项?

修改默认SSH端口

默认的SSH端口22是攻击者最先尝试的目标,修改为非标准端口可显著降低自动化扫描攻击的风险,编辑SSH配置文件/etc/ssh/sshd_config,找到#Port 22一行,取消注释并修改为其他端口(如2222),确保端口未被其他服务占用:

Port 2222

修改后重启SSH服务使配置生效:systemctl restart sshd,需注意,防火墙需同步放行新端口,firewall-cmd --permanent --add-port=2222/tcp && firewall-cmd --reload

禁用root用户直接登录

直接使用root用户登录SSH会增加权限泄露风险,建议通过普通用户登录后切换至root身份,在/etc/ssh/sshd_config中找到PermitRootLogin行,设置为no

PermitRootLogin no

若需临时使用root权限,可创建普通用户并赋予sudo权限:useradd admin && passwd admin && visudo,在文件中添加admin ALL=(ALL) ALL

使用密钥认证替代密码认证

密码认证易遭受暴力破解,而SSH密钥认证基于公私钥对,安全性更高。

  1. 生成密钥对:在客户端执行ssh-keygen -t rsa -b 4096,按提示生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa)。
  2. 上传公钥到服务器:使用ssh-copy-id -i ~/.ssh/id_rsa.pub admin@服务器IP将公钥传输到服务器的~/.ssh/authorized_keys文件中。
  3. 禁用密码认证:在/etc/ssh/sshd_config中设置PasswordAuthentication no,并确保PubkeyAuthentication yes已启用,重启SSH服务后,仅密钥认证有效。

配置SSH访问控制(Allow/Deny)

通过限制允许登录的IP地址,可大幅减少攻击面,在/etc/ssh/sshd_config中添加以下配置(示例仅允许192.168.1.0/24网段访问):

AllowUsers admin@192.168.1.0/24
# 或使用Deny拒绝特定IP
DenyUsers 192.168.1.100

配置后重启SSH服务,未授权的IP将无法建立连接。

centos ssh安全设置有哪些关键步骤和注意事项?

启用Fail2Ban防止暴力破解

Fail2ban是一款通过监控日志自动封禁恶意IP的工具,可有效抵御SSH暴力破解。

  1. 安装Fail2banyum install -y fail2ban
  2. 配置规则:编辑/etc/fail2ban/jail.local(若无则复制jail.conf),添加以下SSH规则:
    [sshd]
    enabled = true
    port = 2222
    filter = sshd
    logpath = /var/log/secure
    maxretry = 3
    bantime = 3600
  3. 启动服务systemctl enable fail2ban && systemctl start fail2ban
    当检测到连续3次登录失败时,IP将被封禁1小时。

定期更新SSH服务与系统

漏洞是安全风险的根源,保持SSH服务和系统版本最新至关重要。

  1. 更新系统yum update -y,定期执行此命令修复已知漏洞。
  2. 升级SSH软件包yum update openssh-server openssh-clients,确保使用最新版本的SSH协议和安全补丁。

优化SSH超时与连接设置

通过调整超时时间和连接参数,可减少资源占用并提升安全性,在/etc/ssh/sshd_config中添加以下配置:

ClientAliveInterval 300  # 每5秒发送一次心跳包
ClientAliveCountMax 3    # 最多发送3次心跳后断开连接
LoginGraceTime 60       # 登录超时时间(秒)
MaxAuthTries 2          # 每次连接最大认证尝试次数

重启SSH服务后,闲置连接将自动断开,避免长时间占用资源。

禁用不必要的SSH协议版本

SSHv1存在严重安全漏洞,仅启用SSHv2,在/etc/ssh/sshd_config中确保以下配置生效:

Protocol 2

若配置为Protocol 2,1,需修改为Protocol 2以禁用不安全的SSHv1。

限制SSH访问用户与命令

通过Match指令可细化访问控制,例如仅允许特定用户执行特定命令:

centos ssh安全设置有哪些关键步骤和注意事项?

Match User backup
    ChrootDirectory /home/backup
    ForceCommand /usr/bin/rsync --server

此配置将backup用户限制在/home/backup目录下,且仅允许执行rsync命令,降低权限滥用风险。

审计SSH日志与监控异常

SSH日志记录了所有登录尝试,定期审计可及时发现异常,日志文件位于/var/log/secure,使用以下命令分析登录情况:

# 查看最近登录失败IP及次数
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
# 查看当前登录用户
last -n 10

设置日志轮转(/etc/logrotate.d/sshd)避免日志文件过大,确保历史日志可追溯。


相关问答FAQs

Q1:修改SSH端口后无法连接,如何排查?
A:首先检查防火墙是否放行新端口(firewall-cmd --list-ports),确认端口已添加,其次检查SSH服务状态(systemctl status sshd),确保配置无语法错误(sshd -t),若使用云服务器,还需检查安全组规则是否开放新端口。

Q2:如何验证SSH密钥认证是否生效?
A:在客户端尝试使用密钥登录:ssh -i ~/.ssh/id_rsa admin@服务器IP,若成功登录且无需输入密码,说明密钥认证生效,此时可测试密码登录(ssh admin@服务器IP),若提示“Permission denied”且输入正确密码仍失败,则密码认证已被成功禁用。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-12-11 18:31
下一篇 2025-12-11 18:36

相关推荐

  • CentOS常见指令盘点,有哪些是你不知道的?

    在Linux系统中,CentOS是一个广泛使用的发行版,它提供了丰富的命令行工具和指令,使得系统管理和日常操作变得高效便捷,以下是一些CentOS中常用的开始指令,它们可以帮助用户快速启动和执行各种任务,查看系统信息1 uname -a这个指令用于显示系统的完整信息,包括内核版本、硬件架构等,[root@cen……

    2026-01-13
    002
  • 在Windows下新手如何将CentOS 7.3的ISO镜像刻录成启动光盘?

    在系统部署与维护的领域,制作一个可启动的安装光盘是一项基础且重要的技能,特别是对于 CentOS 7.3 这样的经典稳定版本,拥有一张物理安装介质,可以在无网络环境或对新机进行初始化安装时提供极大的便利,本文将详细介绍如何制作一张 CentOS 7.3 的安装光盘,涵盖从准备工作到刻录完成的全过程,并提供一些实……

    2025-10-13
    006
  • centos ssh是什么?如何配置与使用?

    CentOS SSH是一种在CentOS操作系统中广泛使用的安全远程登录协议,它允许用户通过网络安全地连接到远程服务器,执行命令、传输文件或管理系统,SSH(Secure Shell)协议通过加密技术确保数据传输的安全性,有效防止信息泄露和中间人攻击,在CentOS系统中,SSH通常由OpenSSH软件包提供支……

    2025-12-06
    005
  • centos 6.3系统安装后,网络和软件源怎么配置?

    CentOS 6.3 作为一款基于 Red Hat Enterprise Linux 6.3 的社区企业操作系统,在2012年发布时曾是稳定服务器的首选,时至今日,它已非常古老,并于2020年11月正式停止生命周期支持(EOL),这意味着它不再接收安全更新和官方技术支持,除非是为了维护特定的遗留系统或学习目的……

    2025-10-23
    007

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信