当前位置:首页 > Linux > 正文

linux如何开通防火墙

在Linux中,开通防火墙可通过以下方式:使用 service iptables start即时启用,或 chkconfig iptables on设为开机自启;若用firewalld,则执行 systemctl start firewalld

在Linux系统中开通防火墙是保障网络安全的重要措施,不同的Linux发行版和防火墙工具有不同的配置方法,以下是针对常用防火墙工具的详细操作指南,涵盖iptables、firewalld、UFW等主流方案,以及规则管理与常见问题解答。

iptables防火墙配置

iptables是Linux经典的防火墙工具,适用于大多数发行版,以下是基础配置流程:

  1. 清空现有规则

    sudo iptables -F          # 清除所有链的规则
    sudo iptables -X          # 清除自定义链
  2. 设置默认策略

    sudo iptables -P INPUT DROP  # 默认拒绝所有输入流量
    sudo iptables -P FORWARD DROP # 默认拒绝转发流量
  3. 添加基础规则

    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT  
    # 允许已建立连接的流量
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
    # 开放SSH端口(根据需求调整)
  4. 保存规则
    不同发行版的保存路径可能不同:

    linux如何开通防火墙  第1张

    • CentOS/RHEL:
      sudomicro /etc/sysconfig/iptables -w  
      sudo systemctl save iptables  
    • Ubuntu/Debian:
      sudo sh -c "iptables-save > /etc/iptables/rules.v4"  
  5. 启用防火墙服务

    sudo systemctl enable iptables  
    sudo systemctl start iptables  

firewalld防火墙管理

firewalld是CentOS/RHEL系列的默认防火墙工具,支持动态配置和区域(zone)概念。

  1. 启动与启用服务

    sudo systemctl start firewalld  
    sudo systemctl enable firewalld  
  2. 查看当前区域与规则

    sudo firewall-cmd --get-active-zones  
    sudo firewall-cmd --list-all      # 查看当前区域的规则
  3. 开放端口与服务

    sudo firewall-cmd --permanent --add-port=22/tcp  
    sudo firewall-cmd --permanent --add-service=http  
    sudo firewall-cmd --reload       # 应用更改
  4. 配置默认区域

    sudo firewall-cmd --set-default-zone=public  

UFW(Uncomplicated Firewall)配置

UFW是Ubuntu/Debian系列的简化防火墙工具,基于iptables。

  1. 安装与启用

    sudo apt install ufw         # 安装UFW
    sudo ufw enable              # 启用防火墙
    sudo ufw default deny        # 设置默认策略为拒绝
  2. 开放端口与服务

    sudo ufw allow 22/tcp        # 开放SSH端口
    sudo ufw allow http           # 开放HTTP服务
    sudo ufw allow from 192.168.1.0/24  # 允许特定子网访问
  3. 检查状态与日志

    sudo ufw status              # 查看当前规则
    sudo ufw logging on          # 开启日志记录

防火墙规则管理核心操作

操作目标 iptables命令 firewalld命令 UFW命令
开放端口22 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo firewall-cmd --permanent --add-port=22/tcp && sudo firewall-cmd --reload sudo ufw allow 22/tcp
拒绝特定IP访问 sudo iptables -A INPUT -s 192.168.1.100 -j DROP sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' sudo ufw deny from 192.168.1.100
允许已建立连接的数据包 sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 默认允许,无需额外配置 默认允许,无需额外配置
限制SYN洪水攻击 sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT 需通过firewalld-cmd自定义规则 需手动编写iptables规则

常见问题与解决方案

FAQs

如何验证防火墙是否生效?

  • 方法1:尝试从外部设备访问被防火墙拒绝的端口(如关闭SSH后测试端口22)。
  • 方法2:使用工具检查规则:
    sudo iptables -L -v      # iptables
    sudo firewall-cmd --list-all   # firewalld
    sudo ufw status          # UFW

如何迁移防火墙规则至另一台服务器?

  • iptables
    sudo iptables-save > rules.v4  
    scp rules.v4 target_server:/etc/iptables/  
    sudo systemctl restart iptables  
  • firewalld
    sudo firewall-cmd --runtime-to-permanent  
    sudo firewall-cmd --save-all  
    scp /etc/firewalld/zones/ target_server:/etc/firewalld/zones/  
  • UFW
    sudo ufw export default > ufw-default.conf  
    sudo ufw export routes > ufw-routes.conf  
    scp .conf target_server:/etc/ufw/  

注意事项

  1. 规则顺序:防火墙规则按顺序匹配,优先度高的规则应放在前面。
  2. 服务冲突:开放端口前需确保对应服务(如SSH、HTTPD)已启动。
  3. 持久化配置:未保存规则将在重启后丢失(如iptables需手动保存)。
  4. 安全建议:最小化开放端口,禁用不必要的服务,定期审计规则。

通过以上配置,可灵活管理Linux防火墙以满足不同场景的安全需求,建议结合系统日志(如/var/log/messages)监控防火墙运行状态,及时

0