- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
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 配置检查脚本、登录日志分析工具,需要的朋友随时联系获取。
售前咨询
售后咨询
备案咨询
二维码

TOP