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

Linux环境防火墙常用配置说明

Linux环境防火墙常用配置是我们运维人员必备的技能,今天我们分析一下:

一、firewalld 防火墙策略

1、启关命令

sudo systemctl status firewalld #查看防火墙状态:

systemctl status firewalld 2>/dev/null | grep "Active: active (running)" #查看是否运行

sudo systemctl start firewalld #启动防火墙

sudo systemctl enable --now firewalld  #设置开机自启并立即启动服务

sudo systemctl stop firewalld #关闭防火墙 

sudo systemctl enable firewalld #开机启动

sudo systemctl restart firewalld #重启


sudo firewall-cmd --reload  # 使新规则生效

sudo firewall-cmd --list-all  # 查看当前生效规则

2、端口号处理

sudo firewall-cmd --add-port=8082/tcp --permanent  #放开

sudo firewall-cmd --zone=public --remove-port=9200/tcp --permanent  #关闭端口号(不对外开放)

sudo firewall-cmd --list-ports #验证端口是否已开放

3、添加移除单个ip黑名单

#添加ip黑名单
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP地址>" reject'  # 永久禁止指定  

#示例
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.200" reject'


#移除ip黑名单
sudo firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address="<IP地址>" reject"

#示例
sudo firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=47.93.18.18 reject"

#移除某个ip的某个端口号封禁
# 示例:移除对 192.168.1.110 的 3306 端口封禁
sudo firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.1.110 -p tcp --dport 3306 -j REJECT 

--permanent:规则永久生效
reject:明确拒绝连接(客户端会收到拒绝响应)
若需静默丢弃流量,可将 reject 改为 drop 

    4、批量添加ip黑名单

    #!/bin/bash
    
    # 启用 firewalld
    sudo systemctl enable --now firewalld
    
    # 定义要封禁的 IP 列表
    BLOCKED_IPS=("192.168.1.110" "10.0.0.211")
    
    # 添加黑名单规则(禁止所有协议)
    for ip in "${BLOCKED_IPS[@]}"; do
        sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=$ip reject"
    done
    
    # 重新加载防火墙配置
    sudo firewall-cmd --reload
    
    # 验证规则
    echo -e "rule is looking"
    sudo firewall-cmd --list-all
    

     1)赋予权限

    chmod +x block_ips.sh
    2)执行

    sudo ./block_ips.sh
    3)测试

    curl -v http://你的服务器IP
    
    telnet ip prot

    4)定时更新

    # 每天凌晨更新黑名单
    0 0 * * * /path/to/block_ips.sh
    

     5)验证某ip是否添加成功

    firewall-cmd --list-rich-rules | grep "103.148.218.186"

    6)批量整理ip脚本

    BLOCKED_IPS=("47.98.78.188" "47.98.78.189")

     整理成上面的形式,java代码处理

    String str = "49.240.222.55\n" +
                 " 51.183.29.244\n" +
                 " 188.255.122.19\n" +
                 " 20.65.19.49\n" +
                 " 137.14.177.28 ";
    
    // 核心处理逻辑 
    String result = "(" +
      Arrays.stream(str.split("\\n"))        // 按换行符分割
        .map(String::trim)                   // 去除首尾空格
        .filter(s -> !s.isEmpty())           // 过滤空行
        .distinct()                          // 新增去重操作  
        .map(s -> "\"" + s + "\"")           // 添加双引号
        .collect(Collectors.joining(" ")) +  // 用空格连接
      ")";
    
    System.out.println(result);
    

    4、查看整体生效规则

    sudo firewall-cmd --list-all  # 查看当前生效规则

    5、

    6、

    7、

    8、

    9、

    10、

    11、

    12、

    二、iptables 防火墙策略

    1、

    2、查看规则

    sudo iptables -L -n

    3、添加黑名单

    sudo iptables -A INPUT -s <IP地址> -j DROP  # 禁止指定 IP 的所有入站流
    
    #示例
    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    sudo iptables -A INPUT -s 10.0.0.200 -j DROP
    

    验证规则是否生效

    sudo iptables -L -n  # 查看当前 iptables 规则

     永久保存:Debian/Ubuntu 系统

    sudo iptables-save > /etc/iptables/rules.v4  # 保存规则至文件

    CentOS/RHEL 系统

    sudo service iptables save  # 或安装 iptables-persistent

     

    4、

    5、

    6、

    今天的测试分享完毕,后续会继续更新,敬请期待!

    相关文章:

  • UGUI源代码之Text—实现自定义的字间距属性
  • AutoModelForCausalLM 解析,因果模型
  • MyBatis中特殊符号处理总结
  • 安卓性能调优之-检测应用启动速度
  • 在Flutter中使用BottomNavigationBar和IndexedStack可以实现一个功能完整的底部导航栏
  • 适用于恶劣工业环境的高功率PoE+网管交换机
  • 状态管理组件Pinia 简介与底层原理 、Pinia 与其他状态管理库对比、Vue3 + Element Plus + Pinia 安装配置详解
  • DAPP实战篇:使用ethers.js连接以太坊智能合约
  • 数字图像相关(DIC)技术在土木行业的部分应用
  • 将已有 SVN 服务打包成 Docker 镜像的详细步骤
  • 蓝桥杯 区间排序
  • git操作0409
  • ruby self
  • 探索 Shell 中的扩展通配符:从 Bash 到 Zsh
  • ​​AMS行政管理系统:数字化赋能人力资源精益管理​
  • LeetCode 252 会议室题全解析:Swift 实现 + 场景还原
  • Cherry Studio配置MCP server
  • 记录学习的第二十四天
  • 用一个实际例子快速理解MCP应用的工作步骤
  • C++学习之服务器EPOLL模型、处理客户端请求、向客户端回复数、向客户端发送文件
  • 网站制作合同注意事项/上海seo优化服务公司
  • 做垃圾网站/百度推广怎么登陆
  • 团购网站单页模板/卢松松外链工具
  • 网页版qq下载/网站为什么要做seo
  • 泉州专业建站品牌/网络营销策划是什么
  • 国外打开国内网站慢/优化大师好用吗