防火墙策略的基本作用
做网站的时候,很多人只顾着页面好不好看、功能顺不顺畅,却忽略了服务器安全这个关键环节。防火墙策略就是守门的保安,决定哪些流量能进,哪些直接拦在外面。比如你开个电商站,只想让访客访问80和443端口,那其他像22(SSH)这种管理端口就得限制IP才能访问,不然容易被暴力破解。
常见的防火墙工具选择
Linux服务器上用得最多的是iptables和firewalld。如果你用的是CentOS 7以后的系统,默认自带firewalld,操作起来比iptables直观不少。Ubuntu用户则可能更习惯用ufw,一句话就能开一个端口。
比如你想开放网站的HTTPS端口,用firewalld可以这样操作:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload这条命令的意思是永久添加对https服务的支持,然后重新加载配置。执行完,外网就能正常访问你的加密网页了。
按需设置入站和出站规则
不是所有端口都该敞开。一般情况下,入站(INPUT)规则要严格控制。比如数据库服务器不应该对外暴露3306端口,除非你有远程连接的需求,而且最好绑定固定IP。
假设你只想让办公室的IP访问SSH,可以这样写规则:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
firewall-cmd --reload这样一来,只有来自192.168.1.100这台机器的SSH请求才会被接受,别的全都拒绝,安全性高了不少。
隐藏不必要的服务响应
有些时候你不希望别人扫描到服务器的存在。比如关闭ICMP响应,可以让ping不通你的服务器,减少被盯上的几率。虽然不能防攻击,但属于“低调做人”的做法。
在firewalld里禁掉ping:
firewall-cmd --permanent --add-icmp-block=echo-request
firewall-cmd --reload执行后,别人ping你的IP就会超时,不知道服务器是否在线,相当于藏起了行踪。
定期检查和清理规则
时间一长,可能加了一堆测试用的临时规则,上线后忘了删。建议每隔一段时间查看当前生效的规则:
firewall-cmd --list-all输出内容会显示当前区域的所有允许服务、端口和高级规则。发现多余的赶紧清理,避免留下安全隐患。就像家里换锁后,老钥匙得收回来一样。
结合Web应用防火墙(WAF)更安心
系统层防火墙管的是端口和IP,但HTTP层面的恶意请求它拦不住。比如有人用大量GET请求刷你商品详情页,这时候就得靠Nginx配合WAF模块,或者上云WAF服务。两者搭配,一层防网络层攻击,一层防应用层骚扰,网站才真正稳得住。