在服务器运维中,防火墙端口配置是基础但至关重要的操作。无论是部署Web服务、配置数据库远程访问,还是搭建FTP,都需要正确配置防火墙规则。本文以Linux为例,讲解端口放行的方法和注意事项。
▶为什么需要手动配置防火墙端口?
默认情况下,服务器的防火墙仅放行少数常用端口(如SSH 22、RDP 3389)。当你安装Nginx(80/443)、MySQL(3306)、Redis(6379)等服务后,外部流量无法访问这些端口,必须在防火墙中手动添加放行规则。
▶检查当前防火墙状态和已放行端口
首先查看当前防火墙规则:
此命令会列出所有已放行的端口。如果目标端口不在列表中,则需要添加规则。
▶添加端口放行规则
以下是添加TCP端口80(HTTP)的示例命令:
注意:firewall-cmd 添加规则后需执行 firewall-cmd --reload 使配置生效。使用 --permanent 参数表示永久生效,不加则重启后失效。
▶配置完成后验证
端口放行后,使用 telnet 或 nc 命令测试端口是否真正对外开放:
如果显示 Connected 则说明配置成功。如果连接被拒绝,请检查:
- ●云服务商安全组是否也放行了该端口
- ●端口对应的服务是否已启动并监听在 0.0.0.0 上
- ●SElinux(Linux)是否拦截了连接
▶五、应用层防火墙规则
使用firewalld的富规则(rich rule)可以实现更精细的应用层过滤。例如限制特定源IP对Nginx服务(80端口)的访问频率,或根据HTTP请求头内容进行过滤。丰富的规则语言可满足复杂的安全需求。
▶六、DDoS防护实践
▶七、防火墙审计与日志
开启防火墙日志功能有助于安全审计和故障排查。将日志配置到独立文件,结合Logwatch或fail2ban进行自动分析。定期审查防火墙日志可以发现异常访问模式,及时调整规则。
▶八、IPv6防火墙配置
随着IPv6普及,需要同时配置IPv4和IPv6防火墙规则。firewalld支持双栈配置,使用ip6tables管理IPv6流量。注意IPv6环境下默认开放端口不同,需单独评估安全风险。
注册
登录控制台
