公司最近上线了一个远程协作项目,团队成员分布在全国各地。为了保证数据同步效率,大家决定共用一台云上的数据库服务器。可刚开放访问没几天,运维同事就收到告警——有大量异常登录尝试来自境外IP。这时候才意识到,光靠数据库密码远远不够,必须把防火墙规则设好。
为什么需要设置防火墙规则
数据库就像公司的数字仓库,存着用户信息、订单记录这些敏感内容。如果直接暴露在公网,等于把仓库大门敞开,谁都能来转一圈。防火墙的作用,就是一道电子门卫,只放行可信的请求。尤其是在远程协作场景下,开发、测试、运营可能从不同网络环境接入,更得精细控制谁能连上数据库服务器。
常见风险:别让22端口成突破口
很多人习惯开通SSH(默认22端口)方便远程管理服务器,但如果不对来源IP做限制,黑客会用自动化脚本暴力破解密码。曾经有个团队忘了设规则,结果一周内被扫描了上万次。后来他们加了条规则,只允许公司办公网和几个固定出差员工的家用宽带IP访问,问题立马缓解。
如何配置有效的入站规则
以常见的Linux服务器为例,使用iptables或firewalld都可以实现。下面是一个firewalld的实际配置示例:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.50" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
这段命令的意思是:只允许IP为192.168.1.100和203.0.113.50的设备访问本机的MySQL默认端口3306。其他所有请求都会被丢弃。对于经常在家办公的同事,可以让宽带运营商绑定一个固定IP,再加入白名单。
云平台上的图形化操作
如果你用的是阿里云、腾讯云这类服务商,可以直接在控制台设置安全组。比如新建一条规则:
- 协议类型:TCP
- 端口范围:3306
- 授权对象:填写具体IP+掩码,如116.23.45.0/24
这样同一个办公室的同事就能批量放行。记得不要写0.0.0.0/0,那相当于全世界都能试连你的数据库。
动态IP用户的解决办法
有些远程成员用的是家庭宽带,IP不固定。这时候可以让他们通过企业VPN接入内网,再由防火墙允许整个VPN网段访问数据库。另一种方式是结合DDNS服务,配合脚本自动更新防火墙规则中的IP地址,适合技术能力较强的团队。
定期检查与日志分析
规则不是一设了之。建议每周查看一次系统日志,看看有没有频繁被拒绝的连接尝试。命令如下:
journalctl -u firewalld | grep 'DENY'
发现某个IP反复试探,可以主动拉黑。同时确认合法用户没有因为规则变更连不上,避免影响正常协作进度。