linux

LNMP服务器如何配置防火墙

小樊
35
2025-08-01 00:13:01
栏目: 云计算

在Linux LNMP(Linux, Nginx, MySQL, PHP)环境中配置防火墙通常涉及使用 firewalldiptables。以下是使用这两种方法在CentOS 7及以上版本中配置防火墙的详细步骤:

使用firewalld配置防火墙

  1. 关闭firewalld(如果需要永久关闭):

    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
  2. 安装iptables(如果尚未安装):

    sudo yum install -y iptables
    
  3. 配置iptables规则

    sudo vi /etc/sysconfig/iptables
    

    在文件的末尾添加以下内容,以允许80端口(Nginx)和3306端口(MySQL)通过防火墙:

    *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    
  4. 重启firewalld服务

    sudo systemctl restart firewalld
    
  5. 验证防火墙状态

    sudo firewall-cmd --state
    

使用iptables配置防火墙

  1. 备份原有的iptables配置

    sudo cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
    
  2. 编辑iptables配置文件

    sudo vi /etc/sysconfig/iptables
    

    在文件的末尾添加以下内容,以允许80端口(Nginx)和3306端口(MySQL)通过防火墙:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    
  3. 保存并退出编辑器

  4. 重启iptables服务以应用更改

    sudo /etc/init.d/iptables restart
    

使用ufw配置防火墙(适用于Ubuntu)

  1. 安装和启用ufw

    sudo apt update
    sudo apt install ufw
    sudo ufw enable
    
  2. 允许必要的端口

    • Nginx(HTTP):sudo ufw allow 80/tcp
    • Nginx(HTTPS):sudo ufw allow 443/tcp
    • MySQL:sudo ufw allow 3306/tcp
    • PHP-FPM:sudo ufw allow 9000/tcp(如果使用PHP-FPM)
  3. 允许SSH端口(仅允许特定IP地址访问SSH端口22):

    sudo ufw allow from 你的IP地址 to any port 22
    
  4. 查看防火墙状态

    sudo ufw status
    
  5. 禁用防火墙(可选):

    sudo ufw disable
    
  6. 重新加载防火墙规则(可选):

    sudo ufw reload
    

通过以上步骤,你可以在LNMP环境中配置防火墙,确保只有指定的端口(如80和3306)对外开放,从而提高服务器的安全性。

0
看了该问题的人还看了