Linux系统下更改SSHD配置指南
linux更改sshd

首页 2025-01-21 00:49:33



Linux 系统下更改 SSHD 配置:提升安全性与性能的必备指南 在 Linux 系统中,SSH(Secure Shell)协议是一种用于安全访问远程服务器的标准方法

    SSH 守护进程(sshd)负责监听并处理来自客户端的 SSH 连接请求

    正确配置 sshd 不仅能够增强系统的安全性,还能优化性能,确保远程访问既快速又可靠

    本文将深入探讨如何在 Linux 系统中更改 sshd 配置,以实现这些目标

     一、理解 SSHD 配置文件 SSHD 的主要配置文件通常位于 `/etc/ssh/sshd_config`

    这个文件包含了 sshd 服务的所有可配置选项,如认证方法、端口号、允许/拒绝访问的 IP 地址范围等

    修改此文件前,建议备份原始配置,以防不慎导致服务无法启动

     sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 二、基本安全配置 1.更改默认端口 默认情况下,SSH 服务监听 TCP 端口 22

    这是众所周知的事实,也是攻击者首要尝试的目标

    通过更改 sshd 监听的端口号,可以显著降低被扫描和攻击的风险

     在`sshd_config`文件中找到`Port 22` 行,将其更改为其他不常用的端口号(例如 2222): plaintext Port 2222 更改后,重启 sshd 服务使配置生效: bash sudo systemctl restart sshd 同时,确保防火墙规则允许新端口,并禁止旧的 22 端口

     2.禁用密码认证,启用公钥认证 密码认证虽然方便,但安全性较低,易被暴力破解

    建议禁用密码认证,仅允许使用公钥认证

     在`sshd_config` 中设置: plaintext PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no 如果不需要 PAM 模块进行认证 并确保启用公钥认证: plaintext PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys 3.限制允许访问的用户和 IP 地址 通过`AllowUsers`和 `DenyUsers`指令可以精确控制哪些用户能够访问 SSH 服务

    同时,使用 `AllowUsers` 结合 IP 地址限制,可以进一步缩小访问范围

     plaintext AllowUsers user1@192.168.1.100, user2@10.0.0. 或者全局限制特定 IP DenyUsers@192.168.1.101 4.设置登录超时和最大重试次数 限制登录尝试次数和设置超时,可以有效防止暴力破解攻击

     plaintext LoginGraceTime 30 登录超时时间(秒) MaxStartups 10:30:60 并发未认证连接数限制 MaxAuthTries 4 最大密码尝试次数 三、性能优化配置 1.调整会话超时 通过调整会话的超时设置,可以释放长时间未活动的连接资源,提升系统性能

     plaintext ClientAliveInterval 300 每 300 秒发送一次心跳包检查客户端存活 ClientAliveCountMax 0 禁用自动断开(设置为非零值表示断开前的失败心跳次数) 或者,如果希望自动断开空闲会话,可以设置 `ClientAliveCountMax` 为一个正整数,如 2,表示两次心跳包失败后断开连接

     2.使用压缩 对于带宽有限的环境,启用 SSH 压缩可以加快数据传输速度

    但请注意,压缩会增加 CPU 负载

     plaintext Compression yes CompressionLevel 6 压缩级别,1-9,越高压缩率越好,CPU 负载也越高 3.调整内存使用 SSHD 使用了一些内存来缓存会话信息

    根据服务器的内存容量,适当调整这些设置可以帮助优化性能

     plaintext UseDNS no 禁用 DNS 解析,加快连接速度 GSSAPIAuthentication no 禁用 GSSAPI 认证,减少内存占用 四、高级安全实践 1.启用 Banner 信息 在登录前显示自定义的欢迎信息或警告信息,可以增强安全意识,也可能震慑潜在攻击者

     plaintext Banner /etc/issue.net 在`/etc/issue.net`文件中添加你的自定义信息

     2.使用防火墙规则增强安全 除了 sshd 配置本身,结合防火墙(如 iptables 或 firewalld)可以进一步加固安全

    例如,仅允许特定 IP 地址访问 SSH 端口

     bash sudo iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.100 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 2222 -j DROP 3.定期审计和更新 定期检查`sshd_config` 文件和日志文件(如`/var/log/auth.log` 或`/var/log/secure`),以及应用最新的安全补丁,是保持系统安全的关键步骤

     五、结论 通过细致地调整 Linux 系统中的 sshd 配置,不仅可以显著提升服务器的安全性,还能优化其性能,确保远程访问的高效与稳定

    从更改默认端口、禁用密码认证到限制访问控制,再到性能调优和高级安全实践,每一步都是构建坚固防线不可或缺的环节

    重要的是,实施这些更改时务必谨慎,确保不会意外锁定自己或其他合法用户

    同时,持续监控和审计是维护系统安全的长期任务

    记住,安全永远是一个动态的过程,而非一次性任务

    

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道