商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > LAMP中如何设置防火墙规则

LAMP中如何设置防火墙规则

  发布于2026-07-08 阅读(0)

扫一扫,手机访问

在LAMP环境里设置防火墙,这事儿说难不难,说简单也不简单。很多人一上来就想着把所有端口都封了,结果网站打不开,后台也进不去,白白折腾半天。今天咱们就捋一捋,把这个防火墙规则讲清楚。

LAMP中如何设置防火墙规则

先问个关键问题:你手头的Linux系统到底用的是iptables还是firewalld?这取决于发行版。Debian/Ubuntu老版本多用iptables,CentOS/RHEL 7以上则默认走firewalld。不过别慌,两种方式的思路是相通的——无非就是决定:谁该进来,谁该滚蛋。

用iptables手动控场

iptables是Linux世界的老牌防火墙工具,适合那些喜欢把规则一条条写在明面上的用户。先看看当前哪些规则在生效:

sudo iptables -L -n

好,接下来放行最关键的服务。SSH(端口22)得先放行,不然你连管理后台都进不去了:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

然后是Web服务。HTTP(端口80)和HTTPS(端口443)一个都不能少,除非你打算让人访问时只能看见一片空白:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

如果你的应用需要直接连接数据库,MySQL(默认端口3306)也得放行。但注意:数据库访问最好限定来源IP,不然等于把数据库大门敞开:

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

最后,把默认规则设为DROP——也就是除了上面明确允许的,其他所有入站流量一概拒绝:

sudo iptables -P INPUT DROP

规则设完别忘了保存,不然重启后一切归零:

  • Debian/Ubuntu:sudo iptables-sa ve > /etc/iptables/rules.v4
  • CentOS/RHEL:sudo service iptables sa ve

用firewalld优雅管理

如果你更喜欢基于区域的规则管理——比如“内部网络宽一点,外部网络严一点”——firewalld会更顺手。先看看它是否在运行:

sudo firewall-cmd --state

如果没启动,把它拉起来:

sudo systemctl start firewalld

然后逐一放行服务。SSH、HTTP、HTTPS这些常见服务可以直接用服务名:

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

MySQL没有对应的firewalld服务定义,得直接开端口:

sudo firewall-cmd --permanent --add-port=3306/tcp

所有规则加好之后,必须reload一下才能让配置生效:

sudo firewall-cmd --reload

最后确认一下规则列表,看看该开的端口是否都在:

sudo firewall-cmd --list-all

几个实用提醒

  • 别图省事。 规则越少越精准越好。每多开一个端口,就多一个潜在风险点。不用的服务不要留。
  • 持久化是底线。 无论用iptables还是firewalld,都记得加上--permanent或保存配置,否则系统一重启,你之前设的全白干。
  • 测试环境先跑一遍。 谁也不想直接在生产服务器上把自己锁在门外。先开个测试环境,规则验证清楚了,再上生产。

掌握这些,你的LAMP服务器就相当于穿上了一层防护甲。剩下的,就是根据业务需要,不断微调和迭代规则了。

本文转载于:https://www.yisu.com/ask/18500654.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注