服务器防火墙入门:用 ufw 只放行该开的端口

举报
yd_214534406 发表于 2026/11/11 09:47:52 2026/11/11
【摘要】 很多个人服务器出事,不是因为漏洞多高深,而是因为端口开得太随手:数据库直接裸奔公网、测试服务忘了关、面板端口对全世界开放。防火墙的意义不是把服务器藏起来,而是只放行该开的端口,其余一律拒绝。ufw 是 Ubuntu/Debian 上最省事的一层,几条命令就能把暴露面收干净。一、先想清楚:到底哪些端口必须开动手之前先列清单。一台典型的个人服务器,真正需要对公网开放的通常只有三个:SSH(登录用...

很多个人服务器出事,不是因为漏洞多高深,而是因为端口开得太随手:数据库直接裸奔公网、测试服务忘了关、面板端口对全世界开放。防火墙的意义不是把服务器藏起来,而是只放行该开的端口,其余一律拒绝。ufw 是 Ubuntu/Debian 上最省事的一层,几条命令就能把暴露面收干净。

一、先想清楚:到底哪些端口必须开

动手之前先列清单。一台典型的个人服务器,真正需要对公网开放的通常只有三个:SSH(登录用)、80 和 443(网站用)。其他像数据库 3306、Redis 6379、各种应用的调试端口,原则上都只监听本机或内网,需要远程访问时走 SSH 隧道,而不是直接放行。

判断方法也很简单:ss -tlnp 看一遍当前监听的端口,逐个问一句“这个端口,需要让全世界连进来吗”。答不上来或者答案是“只是我自己用”,就不开放公网。

二、最重要的顺序:先放行 SSH,再启用防火墙

远程操作防火墙最怕的就是把自己锁在门外。正确顺序是:先 ufw allow 你实际在用的 SSH 端口(改过端口的用改后的端口号),确认规则无误,再 ufw enable 启用。启用之后也别急着断开当前会话,新开一个终端试着登录一次,确认能进,再关掉旧窗口。

万一云厂商有安全组,先确认安全组和主机防火墙两层放行的端口一致,两边有一边没放行都会连不上,排查时两边都要看。

三、默认拒绝,只加白名单

推荐的基线是两条:ufw default deny incoming(入站默认拒绝)、ufw default allow outgoing(出站默认放行)。然后逐个把清单里的端口加回来:

ufw allow 22/tcp 这一类逐条添加,网站再加 80 和 443。规则加完用 ufw status numbered 核对一遍,编号、端口、协议都对得上再算完。UDP 的服务(比如某些代理或游戏服务)要单独写 /udp,TCP 和 UDP 是两套规则,别漏。

四、给 SSH 再加一道限速

SSH 端口必须开,但可以对它限速:ufw limit 22/tcp 的效果是同一 IP 短时间内频繁新建连接会被临时拒绝,能挡掉绝大多数自动化爆破扫描。配合禁用密码登录、只允许密钥(这是另一层配置),SSH 暴露在公网的风险就降到很低了。

如果你的登录来源 IP 相对固定,还可以更严格:ufw allow from 你的IP to any port 22,只放行自己的地址段,其余来源连 SSH 的门都摸不到。家庭宽带 IP 会变的话慎用,或者放行一个稍大的地址段折中。

五、改规则之前,先想好回滚

线上改防火墙的纪律是:任何删除、收紧规则的操作,先确认自己当前的登录路径不受影响。删规则用 ufw delete 编号,编号以 ufw status numbered 显示的为准,删完再核对一次列表。另外,Docker 发布端口会绕过 ufw 的默认链(它走自己的 iptables 规则),容器映射到公网的端口不要以为 ufw 能管住,需要单独留意,这是很多人以为关了、其实还开着的盲区。

小结

防火墙配置的核心就一句话:默认拒绝,按需放行。先列必须开放的清单,先保住 SSH 再启用,规则逐条核对,SSH 再加限速或来源限制,再注意 Docker 这种绕过路径。花二十分钟把这层收拾干净,比事后处理入侵省心得多。

(本文为个人运维实践记录。)

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。