尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Linux——SSH安全隧道:从基础配置到高级访问控制实战

Linux——SSH安全隧道:从基础配置到高级访问控制实战
📅 发布时间:2026/7/16 9:18:39

1. SSH安全隧道基础配置

第一次接触SSH时,我被它的简洁和强大震撼到了。那是在2013年,我负责维护几台分布在不同数据中心的Linux服务器。当时团队还在用telnet,每次传输密码都像在裸奔。直到某天服务器被入侵,我们才痛下决心全面转向SSH。

1.1 修改默认SSH端口

修改默认的22端口是安全加固的第一步。上周我帮一个客户做渗透测试,用nmap扫描他们的服务器,发现仍然有30%的机器使用默认端口。这就像把家门钥匙挂在门把手上——太危险了。

具体操作很简单:

sudo vim /etc/ssh/sshd_config

找到#Port 22这行,去掉注释并改成其他端口(比如23456)。注意要选5位数的端口,避开常见服务端口范围。

改完后需要重启服务:

sudo systemctl restart sshd

但这里有个坑:如果服务器启用了SELinux,直接改端口会报错。需要先执行:

sudo semanage port -a -t ssh_port_t -p tcp 23456

1.2 密钥对认证配置

密码认证就像用纸糊的锁,暴力破解太容易。去年处理过一个案例,攻击者用字典攻击猜出了弱密码,导致数据库泄露。密钥对认证才是王道,我现在的所有服务器都禁用了密码登录。

生成密钥对(客户端操作):

ssh-keygen -t ed25519 -C "your_email@example.com"

这里用ed25519算法比RSA更安全高效。生成后会在~/.ssh/下得到id_ed25519(私钥)和id_ed25519.pub(公钥)。

把公钥上传到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server -p 23456

最后在服务器端禁用密码登录:

sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd

2. 精细化访问控制实战

2.1 用户黑白名单管理

上个月有个客户遇到内部员工越权访问的问题。他们开发团队有人用个人账号登录生产环境,差点引发事故。用AllowUsers/DenyUsers可以完美解决这类问题。

编辑sshd_config:

sudo vim /etc/ssh/sshd_config

添加如下配置(根据实际需求调整):

AllowUsers admin@192.168.1.* devuser@10.0.0.5 DenyUsers tempuser hacker

这样只允许admin从192.168.1.0/24网段登录,devuser只能从10.0.0.5登录,完全禁止tempuser和hacker登录。

2.2 TCP Wrappers双重防护

有一次客户的SSH端口被全网扫描,虽然改了端口还是担心。我教他们用TCP Wrappers做了第二道防线,效果立竿见影。

先确认是否支持TCP Wrappers:

ldd $(which sshd) | grep libwrap

然后配置/etc/hosts.allow和/etc/hosts.deny:

# /etc/hosts.allow sshd: 192.168.1.0/255.255.255.0, 10.0.0.5 # /etc/hosts.deny sshd: ALL

这样只有指定IP段能访问SSH,其他全部拒绝。记得测试时保持现有连接,避免把自己锁在外面。

3. 高级安全策略

3.1 登录失败处理

去年遇到一个暴力破解案例,攻击者每秒尝试50次登录。现在我的标准配置里一定会加登录限制:

# /etc/ssh/sshd_config MaxAuthTries 3 LoginGraceTime 1m PermitRootLogin prohibit-password

配合fail2ban更安全:

sudo apt install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑jail.local的[sshd]部分:

[sshd] enabled = true port = 23456 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 1h

3.2 会话超时设置

运维人员经常忘记退出会话,这很危险。我的配置方案:

# /etc/ssh/sshd_config ClientAliveInterval 300 ClientAliveCountMax 0 # /etc/profile export TMOUT=900

这样会在15分钟无操作后自动断开连接。对于重要操作,建议用tmux或screen保持会话。

4. 审计与监控

4.1 详细日志记录

去年调查一起安全事件时,完善的日志帮了大忙。我的标准日志配置:

# /etc/ssh/sshd_config LogLevel VERBOSE SyslogFacility AUTHPRIV # /etc/rsyslog.d/ssh.conf authpriv.* /var/log/ssh.log

然后用logrotate管理日志大小:

# /etc/logrotate.d/ssh /var/log/ssh.log { weekly missingok rotate 12 compress delaycompress notifempty }

4.2 实时告警设置

通过swatch监控登录尝试:

sudo apt install swatch cat > ~/.swatchrc <<EOF watchfor /Failed password/ throttle 10:00 exec "echo SSH登录失败告警 | mail -s 'SSH告警' admin@example.com" EOF

对于关键服务器,我还会配置Zabbix监控SSH登录情况,设置每分钟超过5次失败就触发告警。

记得定期检查/var/log/secure或/var/log/auth.log,分析异常登录模式。有次我发现凌晨3点的登录记录,最终抓到了一个内部人员的违规操作。

相关新闻

  • 2026 济南名表回收避坑!本地 TOP 靠谱门店种草,劳力士出手不亏价 - 全国二奢机构参考
  • 2026 上海宝山区正规装修公司哪家强?自有施工班组家装测评指南分享 - 资讯报道
  • Mac mini本地智能体实战:OpenClaw+飞书机器人零云依赖工作流

最新新闻

  • 【智能体开发】《LangChain核心技术与LLM项目实践》_202.[第12章 项目实战] 数据飞轮效应:打造高质量私有化训练数据集
  • OpenClaw China国产IM接入实战:微信钉钉飞书QQ四平台统一配置指南
  • 2026开源Agent分叉:OpenClaw、Hermes Agent、OpenHuman,哪种AI更适合你?
  • Linux系统定时器:从硬件到软件的实现与应用
  • 东莞VI设计公司怎么选?视维品牌18年深耕,用“好卖的视觉“做企业的长期搭档
  • RStudio Desktop安装与中文环境深度配置指南

日新闻

  • Toon Boom Harmony 高效工作流:从节点视图到镜头标记的实战技巧
  • 真力时售后维修电话,为您提供专业腕表保养与故障修复服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 【C++】类和对象--构造函数进阶(初始化列表与explicit)

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号