iptables 安全加固:如何限制 SSH 访问来源 IP

冷炫風刃

冷炫風刃

2026-07-05

652人浏览

原创

最稳妥的做法是分层设防:优先用 openssh 的 allowusers 在认证前白名单控制,再用 iptables 网络层兜底;需严格按格式配置、重启服务、保存规则并验证生效。

iptables 安全加固:如何限制 ssh 访问来源 ip

限制 SSH 访问来源 IP,最稳妥的做法是分层设防:优先用 OpenSSH 原生机制做第一道拦截,再用 iptables 作网络层兜底。这样既保证规则生效可靠,又避免因防火墙配置失误导致锁死自己。

首选方案:用 sshd_config 的 AllowUsers 精准控制

这是当前最推荐、最可靠的限制方式。OpenSSH 8.0+ 默认不启用 TCP Wrappers(/etc/hosts.allow 已基本失效),而 AllowUsers 是内建白名单,认证前就匹配,效率高且无依赖。

  • 格式必须严格:用户名@IP 或用户名@CIDR,中间不能有空格,不支持通配符(如 192.168.1.* 无效,要写成 192.168.1.0/24
  • 示例:只允许 admin 从两个固定 IP 登录:AllowUsers admin@203.0.113.15 admin@2001:db8::2
  • 若只按 IP 限制、不限用户,可写:AllowUsers *@192.168.10.0/24
  • 修改后必须重启服务:sudo systemctl restart sshd;操作前确保有控制台或备用会话

补充防线:iptables 设置网络层白名单

iptables 不替代 SSH 配置,而是作为第二道屏障——防止绕过 SSH 服务本身(如端口扫描、暴力试探)的流量到达服务进程。

cwRsync(多服务器安全文件同步客户端) 4.1.10
cwRsync(多服务器安全文件同步客户端) 4.1.10

cwRsync(多服务器安全文件同步客户端) 4.1.10

下载
  • 规则顺序关键:先放行可信 IP,再拒绝所有 SSH 流量。用 -I 插入顶部,避免被后续规则覆盖
  • 正确写法(以允许 192.168.5.100 为例):
    iptables -I INPUT -p tcp --dport 22 -s 192.168.5.100 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j DROP
  • 支持 CIDR 和 IP 范围:-s 10.20.30.0/24-m iprange --src-range 172.16.1.10-172.16.1.20
  • 务必保存规则:iptables-save > /etc/iptables/rules.v4(Debian/Ubuntu)或 service iptables save(RHEL/CentOS)

避坑提醒:别踩这些常见错误

很多“配置了却没生效”的问题,其实源于几个细节疏忽。

  • /etc/hosts.allow 在现代系统中大概率不生效——检查 ldd /usr/sbin/sshd | grep wrap,返回空即说明未链接 libwrap
  • 执行 iptables -P INPUT DROP 前,一定要留好逃生通道(比如另一个终端保持连接,或设置 30 秒自动回滚:(sleep 30; iptables -P INPUT ACCEPT && iptables -F) &
  • 不要混用 -A-I:放行规则必须在拒绝规则之前,用 -I 插入开头比用 -A 追加更可控
  • IPv6 流量默认不受 IPv4 规则影响,如需限制,单独加 -p tcp -s 2001:db8::/64 --dport 22 -j ACCEPT

验证是否生效

改完别急着关窗口,立刻验证:

  • 查 SSH 配置是否加载:sshd -T | grep allowusers
  • 看 iptables 规则顺序:iptables -nvL INPUT --line-numbers | grep :22
  • 从非授权 IP 尝试连接:ssh user@server_ip 应直接超时或拒绝,而非提示密码
  • 从授权 IP 连接应正常,且 last -i 中登录来源 IP 显示正确

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux安全加固

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

1963

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

268

21

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

4

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

1

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

6

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

3

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

0

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 3.7万人学习