服务器防火墙端口设置:别让小疏忽变成大麻烦
说实话,很多朋友在折腾服务器的时候,最容易忽视的就是防火墙端口这块。服务器买回来,环境装好,服务跑起来,能访问了,就觉得万事大吉。但你有没有想过,那些默认开着的端口,可能正悄悄给不速之客留着门呢?
我遇到过不少这样的情况:有人搭了个测试服务,懒得配防火墙,结果第二天发现服务器被人扫了个遍。所以今天咱们就聊聊防火墙端口设置这件事,尽量说得接地气一点,看完你就能动手操作。
先明确一个基本思路:防火墙端口设置的核心就八个字——默认拒绝,按需放行。也就是说,除了你明确要用到的端口,其余的一律挡在外面。别嫌麻烦,这一步反而是最省事的。
拿最常见的Linux服务器来说,现在主流发行版一般用的是firewalld或者ufw。如果你登上去执行 firewall-cmd --state 有反应,那就是firewalld;如果提示命令不存在,再看看 ufw status,大概率是后者。知道自己用的是哪个工具,后面就好办了。
先说firewalld的常用操作。查看当前放行的端口,用 firewall-cmd --list-ports。要放行某个端口,比如Web服务常用的80端口,执行 firewall-cmd --permanent --add-port=80/tcp,然后记得 firewall-cmd --reload 让它生效。如果哪天不用了,把 --add-port 换成 --remove-port 就行。这里提醒一句,--permanent 这个参数别漏掉,不然重启后规则就没了,白忙活一场。
如果你用的是ufw,那操作更直观。ufw status 看状态,ufw allow 80/tcp 放行端口,ufw deny 23/tcp 拒绝端口,ufw delete allow 80/tcp 删除规则,最后 ufw enable 开启防火墙。注意,开启之前一定要先放行SSH端口(默认22),否则你可能当场就登不上服务器了,那就尴尬了。
再讲几个实用的小建议。第一,SSH端口别死守22,改成高位端口能挡掉一大半自动扫描,但改完之后防火墙上务必同步放行新端口。第二,数据库端口(比如3306、6379)千万别对外网开放,只允许内网或者指定IP访问,用 --add-source 配合限制来源更稳妥。第三,改完端口规则后,别急着关掉当前会话,先另开一个窗口测试能不能正常连接,确认没问题再收尾,这个习惯能救命。
还有一种情况,就是云服务器本身带安全组。很多人只改了系统防火墙,忘了云平台的安全组也要放行对应端口,结果服务死活访问不了,排查半天才发现是两层防火墙的问题。系统防火墙和云安全组,两个都要看,这个顺序别搞反。
总而言之,防火墙端口设置不是什么高深技术,关键在于养成习惯:每开一个服务就想想需不需要放行,放行了哪个端口,用完要不要收回。今天多花五分钟配置,日后能省掉一堆糟心事。毕竟服务器安全这事,靠的从来不是运气,而是一点点耐心和规矩。你家服务器到现在,是不是也该检查一遍端口了?