Linux 服务器 SSH 安全加固

2025-12-16 17:30:53 279

Linux 服务器 SSH 安全加固

欢迎来到8455线路检测中心技术小课堂,每天分享一个技术小知识。在Linux服务器运维中,SSH服务是远程管理的核心入口,也是黑客攻击的主要目标——弱密码暴力破解、默认端口暴露、密钥权限不当等问题,都可能导致服务器被入侵。很多新手因忽视SSH安全配置,刚部署的服务器就遭遇挖矿程序植入,数据被窃取的案例屡见不鲜。今天我们就聚焦“Linux 服务器 SSH 安全加固”,从几个关键维度讲透配置技巧,构建起 SSH 安全防线。


一、基础加固:从端口和密码下手

SSH 默认配置存在明显安全隐患,先从最易被攻击的“端口”和“密码”两个点进行加固,成本低且效果显著。

1. 修改 SSH 默认端口(避开扫描)

SSH默认22端口是黑客扫描重点,改至10000-65535间随机端口(如23456),可大幅降低攻击风险。

1. 改SSH配置(去掉Port 22前#号,改为自定义端口)

vim /etc/ssh/sshd_config

Port 23456

 

2. 重启服务(CentOS用sshd,Ubuntu用ssh)

systemctl restart sshd

systemctl restart ssh

 

3. 防火墙开放新端口

firewall-cmd --add-port=23456/tcp --permanent && firewall-cmd --reload


2. 强化密码策略(抵御暴力破解)

设置8位以上复杂密码(含大小写、数字、特殊符号),限制90天有效期,禁止空密码登录。

1. SSH配置禁用空密码

vim /etc/ssh/sshd_config

PermitEmptyPasswords no

 

2. CentOS安装密码策略工具,配置复杂度

yum install -y pam_cracklib

vim /etc/pam.d/system-auth

password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

 

3. 设密码有效期90天(root及全局)

chage -M 90 root

sed -i 's/PASS_MAX_DAYS.*/PASS_MAX_DAYS   90/' /etc/login.defs

 

重启SSH生效

systemctl restart sshd


二、进阶防护:登录控制与权限限制

通过限制登录用户、禁止root直接登录等方式,进一步缩小攻击面,即使密码泄露也能降低风险。

1. 禁止 root 直接登录(核心防护)

禁止root直接登录,需通过普通用户(如admin)登录后sudo切换,避免root账号暴露。

1. 建普通用户并设密码

useradd admin && passwd admin

 

2. 配置sudo权限

echo "admin ALL=(ALL) ALL" >> /etc/sudoers

 

3. 禁用root SSH登录,重启服务

sed -i 's/PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config

systemctl restart sshd


2. 限制允许登录的用户

仅允许指定用户/组登录,实现白名单防护,拒绝所有未授权用户。

编辑配置,允许admin/ops用户(或wheel组)登录

vim /etc/ssh/sshd_config

AllowUsers admin ops

AllowGroups wheel

 

systemctl restart sshd


三、最终方案:启用 SSH 密钥登录

密钥登录比密码更安全,生产环境优先使用。以下是本地-服务器完整配置流程。

1. 本地生成4096位RSA密钥(按回车默认保存)

ssh-keygen -t rsa -b 4096

 

2. 上传公钥到服务器(替换端口、用户、IP)

ssh-copy-id -p 23456 admin@192.168.1.100

 

3. 服务器禁用密码登录,仅启密钥

vim /etc/ssh/sshd_config

PasswordAuthentication no

PubkeyAuthentication yes

systemctl restart sshd

 

4. 本地测试登录(无需输密码即成功)

ssh -p 23456 admin@192.168.1.100


四、安全审计:记录与监控 SSH 登录行为

通过日志监控SSH登录,快速发现异常行为,追溯攻击来源。

查看SSH日志(CentOS用secure,Ubuntu用auth.log)

grep "sshd" /var/log/secure

grep "sshd" /var/log/auth.log

 

筛选成功/失败登录记录

grep "Accepted" /var/log/secure

grep "Failed password" /var/log/secure | grep -v "invalid"

 

实时监控登录行为

tail -f /var/log/secure | grep "sshd"


五、总结

SSH安全加固核心是“缩小攻击面+强化认证”,改端口、禁root、限用户、用密钥这几步做好,就能大幅降低入侵风险,新手按步骤实操即可快速上手。

8455线路检测中心官网上有更详细的 Linux 安全运维手册,包含防火墙进阶配置、入侵检测系统部署等内容,大家可自行查阅。更多技术问题,可直接咨询8455线路检测中心技术支持;我们整理的“Linux 安全加固工具包”中,也包含了 SSH 配置检查脚本、登录日志分析工具,需要的朋友随时联系获取。

 

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图