服务器安全组配置实战:别让端口随便开

服务器安全组配置实战:别让端口随便开

你买了台云服务器,第一时间把22、80、443端口都开放了,还顺手加了一条“允许所有IP访问所有端口”。网站能跑了,但你不知道的是,你的服务器已经暴露在公网上了。不到24小时,扫描器就会找上门,开始暴力破解你的SSH密码。

安全组是云服务器的第一道防线,它在网络边缘拦截恶意流量,你的防火墙还没看到包,它就已经被挡回去了。安全组配错了,后面所有安全措施(密钥登录、fail2ban、iptables)都形同虚设。

安全组是什么?

安全组是云厂商提供的虚拟防火墙,控制流入和流出服务器的网络流量。它运行在云基础设施层面,你在操作系统里配的iptables是第二道墙。

关键区别:安全组拒绝的流量根本到不了你的服务器,不消耗任何资源。攻击者扫你22端口,如果安全组拦了,你的服务器甚至不知道有人扫过。

安全组规则由几个要素构成

  • 策略:允许或拒绝
  • 协议端口:TCP/UDP/ICMP,以及端口号
  • 源地址/目的地址:谁可以访问,或可以访问谁
  • 优先级:数字越小优先级越高,拒绝优先于允许

最小开放原则

安全组配置只有一个核心原则:只开必需的端口,只给必需的IP

什么端口必需?

  • 22(SSH):远程管理
  • 80(HTTP):网站访问
  • 443(HTTPS):加密网站访问

什么IP必需?

  • 22端口只对你自己的IP开放(或公司出口IP)
  • 80/443对全网开放(0.0.0.0/0)

其他端口一律不开,除非你有明确的业务需求。

高危端口:永远不要对全网开放

以下端口如果对0.0.0.0/0开放,等于把大门敞开

端口服务风险
22SSH暴力破解,服务器沦陷
3389Windows RDP同上
3306MySQL数据库暴露,数据泄露
6379Redis无密码时可被入侵
27017MongoDB默认无密码,易被勒索
21FTP明文传输密码

这些服务的设计假设是运行在内网。如果你必须远程管理数据库,用SSH隧道,而不是把3306端口直接暴露给公网。

安全组配置实操

场景一:Web服务器

推荐配置:

方向协议端口源地址说明
入方向TCP 22你的IPSSH管理
入方向TCP 800.0.0.0/0HTTP
入方向TCP 4430.0.0.0/0HTTPS
入方向全部拒绝0.0.0.0/0默认拒绝
出方向全部允许0.0.0.0/0服务器访问外网

场景二:数据库服务器

数据库服务器不应该有公网IP。如果必须有,安全组只允许应用服务器的内网IP访问3306端口:

方向协议端口源地址说明
入方向TCP 3306192.168.1.0/24仅内网应用服务器
入方向全部拒绝0.0.0.0/0拒绝所有外网访问

出方向规则:被忽视的安全漏洞

大多数人只关心入方向,出方向默认全部允许。这个疏忽可能带来严重问题:服务器被入侵后,恶意程序通过开放的出方向规则与外部C2服务器通信、窃取数据,或利用服务器作为跳板攻击其他目标。

建议:生产环境出方向规则也遵循最小权限原则——只允许业务必需的出站流量(如HTTP/HTTPS访问外部API、NTP时间同步等),其余全部拒绝。

安全组 vs iptables:两层都要配

对比安全组iptables
位置云网络边缘操作系统内部
生效时机先于iptables后于安全组
控制粒度IP+端口更精细(协议、状态、模块)
适用场景粗粒度访问控制细粒度流量管理

两者不是替代关系,是互补关系。安全组做第一层拦截,iptables做第二层精细控制。

规则顺序:拒绝优先于允许

安全组规则按优先级匹配,拒绝策略优先级高于允许策略

如果你先加了一条“允许所有IP访问22端口”,再加一条“拒绝某个IP访问22端口”,拒绝规则需要更高的优先级才能生效。实际操作中,默认拒绝所有流量,然后只开放必要的端口是最安全的做法。

安全组配置常见错误

错误一:开放全部端口(0.0.0.0/0 且 -1或0-65535) 

这是最危险的配置。某公司测试服务器这样配了3小时,就被暴力破解植入挖矿程序,公网IP被云平台封禁24小时

错误二:22端口对全网开放

攻击者可以持续暴力破解。即使你用了强密码,日志也会被塞满,CPU被消耗。

错误三:3306/6379端口对全网开放

数据库和缓存服务暴露在公网,数据泄露的风险极高。

错误四:忽视出方向规则

服务器被入侵后,恶意程序可通过开放出方向规则外联C2服务器,窃取数据或发起攻击。

一个真实案例

一家初创公司,安全组配置了“允许所有IP访问所有端口”。3小时内遭受SSH暴力破解攻击,服务器被植入挖矿程序,CPU持续100%,公网IP被云平台封禁

如果安全组只开放了22端口且限制来源IP,攻击者连端口都扫不到,更谈不上入侵。

最后一句

安全组是云服务器的第一道门。你把门开大了,后面的锁再好也没用。

去检查你的安全组规则:22端口对谁开放?3306呢?Redis呢?不该开给全网的,马上关掉。SSH只留你的IP,数据库端口删掉。

安全组配错了,公网IP被封只是时间问题。你的服务器不会提醒你,但扫描器每分钟都在提醒它。

知识库

SSL证书安装后还是不安全?6个排查方向

2026-7-6 17:33:24

知识库

网站图片CDN加速选型:免费vs付费怎么选?

2026-7-7 18:11:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧