Linux——Firewall防火墙(firewalld与iptables两种管理方式)

本文详细介绍防火墙的概念,包括firewalld与iptables的管理方式,以及如何进行地址伪装(SNAT与DNAT)。firewalld提供图形与命令行工具管理,支持多种域配置;iptables则更侧重于规则链的设定。文章还演示了路由器内外网设置,以及通过SNAT与DNAT实现网络连接的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、防火墙简介

  • 介绍:
    防火墙是整个数据包进入主机前的第一道关卡。是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要通过Netfilter与TCPwrappers两个机制来管理的
  • 管理防火墙的两种方式
    (1)firewalld 管理火墙的工具,相对简单
    (2)iptables 复杂,功能强大

二、firewalld所有的域

在这里插入图片描述

三、firewalld管理防火墙

  • 可以通过三种方式来管理firewalld
  • 使用命令行工具firewall-cmd
  • 使用图形工具firewall-config
  • 使用/etc/firewalld/中的配置文件
  • 启用firewalld
  1. systemctl start firewalld   开启火墙
  2. systemctl stop firewalld   关闭火墙
  3. systemctl enable firewalld  设置火墙开机自启动
  4. systemctl disable firewalld  设置火墙开机禁用
  5. systemctl status firewalld   查看状态
  • firewall-cmd常用命令
    --get-default-zone    查询当前默认区域。
    --set-default-zone=   设置默认区域。此命令会同时更改运行时配置和永久配置。
    --get-zones       列出所有可用区域。
    --get-services      列出所有预定义服务。
    --get-active-zones    列出当前正在使用的所有区域(具有关联的接口或源)及接口和源信息。
    --add-source=      将来自IP地址或网络/掩码的所有流量路由到指定区域。
    --remove-source=    从指定区域中删除用于路由来自IP地址或网络/掩码的所有流量规则。
    --add-interface=    将来自该接口的所有流量到指定区域。
    --change-interface=  将接口已有绑定区域而与其他区域关联。
    --list-all       列出默认区域的所有配置(接口、源、服务和端口)。
    --list-all-zones    列出所有区域的所有配置(接口、源、服务和端口)。
    --add-service=     允许区域某服务的流量。
    --add-port=      允许区域某端口的流量。
    --remove-service=    从区域删除某服务规则。
    --remove-port=     从区域删除某端口规则。
    --reload        丢弃Runtime配置并应用Permanet配置。
  1. 查看火墙的状态
    在这里插入图片描述
  2. 查看火墙正在使用的域
    在这里插入图片描述
  3. 查看火墙默认的域
    在这里插入图片描述
  4. 查看火墙所有的域
    在这里插入图片描述
  5. 查看work域的信息
    在这里插入图片描述
  6. 列出可使用的服务
    在这里插入图片描述
  7. 火墙允许http服务
    在这里插入图片描述
  8. 火墙删除http服务
    在这里插入图片描述
  9. 将指定ip主机加入trusted域
    在这里插入图片描述
  10. 将指定ip主机从trusted域删除掉
    在这里插入图片描述
  11. 拒绝主机172.25.254.29的所有网络连接(有回应)
    在这里插入图片描述
    在这里插入图片描述
  12. 拒绝主机172.25.254.29的所有网络连接(无回应)
    在这里插入图片描述
    在这里插入图片描述
  13. 将eth0接口从public域 移除
    在这里插入图片描述
    在这里插入图片描述
  14. 添加eth0接口到trusted域
    在这里插入图片描述
  15. 直接将eth1从原来的区域转到public这个区域
    在这里插入图片描述
  16. 将8080端口加入public域
    在这里插入图片描述
  17. 查看firewalld的服务相关配置文件
    在这里插入图片描述
  • 添加一个http8080.xml
    在这里插入图片描述
    在这里插入图片描述
    修改端口信息
    在这里插入图片描述
    重启服务
    在这里插入图片描述
    修改成功
    在这里插入图片描述
  1. 查看firewalld的区域相关配置文件
    在这里插入图片描述
  • 查看默认public域的信息
    在这里插入图片描述
  • 编辑public域配置文件
    在这里插入图片描述
  • 将指定ssh一行删除掉(此处已删除)在这里插入图片描述
  • 再次查看默认public域的信息
    在这里插入图片描述
  1. firewall-cmd --permanent
    –reload 不改变状态的条件下重启防火墙
    firewall-cmd --permanent
    –complete-reload 状态信息将丢失,当防火墙有问题的时候可以使用
    在这里插入图片描述
    在这里插入图片描述
  2. 临时只接受ip为172.25.254.29的主机访问服务端的网页 (80端口是为http开放的)
    在这里插入图片描述
    在这里插入图片描述
  3. 删除这条规则
    在这里插入图片描述
    在这里插入图片描述

四、firewalld管理的地址伪装(SNAT与DNAT)

  • 原地址转换(SNAT)
  1. 给路由器主机添加一个网卡(现在有两个)
    在这里插入图片描述
    设置一个内网与外网
    在这里插入图片描述
    路由器可以ping通主机
    在这里插入图片描述
    开始路由器的路由功能
    在这里插入图片描述
  2. 给测试端设置与内网在同一个区域的ip
    在这里插入图片描述
    添加网关(与路由器内网ip一直)
    在这里插入图片描述
    测试:可以ping通路由器内网,也可以ping通主机的网址(路由功能实现)
    在这里插入图片描述
    在这里插入图片描述
  • 但是,当测试端(1.1.1.229)通过ssh连接主机的时候,显示的却是路由器的外网ip
    在这里插入图片描述
  • 目的地地址转换(DNAT)
  1. 在路由器主机中添加转换端口——1.1.1.229
    在这里插入图片描述
  2. 在主机中连接路由器外网时,自动转换到1.1.1.229
    在这里插入图片描述

五、 iptables管理防火墙

  • 概念:
      iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。
    防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。

  • iptables有三张表五条链:
    在这里插入图片描述

  • 三表:
    Filter表:过滤数据包
    NAT表:用于网络地址转换(IP、端口)
    Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS

  • 五链:
    INPUT链——进来的数据包应用此规则链中的规则
    OUTPUT链——外出的数据包应用此规则链中的规则
    FORWARD链——转发数据包时应用此规则链中的规则
    PREROUTING链——对数据包作路由选择前应用此链中的规则
    POSTROUTING链——对数据包作路由选择后应用此链中的规则

  • 首先先把firewalld关闭并冻结
    在这里插入图片描述

  1. 安装iptables-services
    在这里插入图片描述
  2. 开启服务并设置开机自启动
    在这里插入图片描述
  3. 显示iptables中的所有策略(做解析),默认列出filter表在这里插入图片描述
  4. 显示iptables中的所有策略(不做解析)
    在这里插入图片描述
  5. 列出指定nat表信息
    在这里插入图片描述
  6. 列出指定mangle表信息
    在这里插入图片描述
  7. 刷新火墙的信息(清空策略)
    在这里插入图片描述
  • 注意:此方式,在重启服务后不生效
    在这里插入图片描述
  • 因为这些策略信息都保存在/etc/sysconfig/iptables中
    在这里插入图片描述
  • 所以在刷新之后,要保存火墙的策略
    在这里插入图片描述
  1. 修改策略
    默认是ACCEPT
    在这里插入图片描述
    修改为DROP
    在这里插入图片描述
  2. 新建一个链westos
    在这里插入图片描述
  • 修改链的名称
    在这里插入图片描述
  • 删除链
    在这里插入图片描述
  1. 添加ip为172.25.254.29的主机对22端口访问拒绝的策略
    在这里插入图片描述
    在这里插入图片描述
  2. 已有策略的情况下新加策略默认加载最后面
    在这里插入图片描述
  • -I 插入到某一条,默认第一条(-I INPUT 3 表示插入到第三行,不写3的话默认添加到第一个)
    在这里插入图片描述
  1. 删除第三条策略
    在这里插入图片描述
  2. 修改第二条策略的动作为ACCEPT
    在这里插入图片描述
  3. !表示除了的意思
    在这里插入图片描述

六、iptables管理的地址伪装

  • 源地址转换(SNAT)
  1. 路由器端:添加SNAT策略
    在这里插入图片描述
  • 测试端:在做测试的时候如果测试端ping不通,要查看内核的路由功能是否打开
    在这里插入图片描述
    如果没有打开
    在这里插入图片描述
    则在/etc/sysctl.conf下添加如下内容
    在这里插入图片描述
    在这里插入图片描述
    重启网络,显示内核的路由功能已开启
    在这里插入图片描述
    测试可以ping通主机
    在这里插入图片描述
  • 测试:连接主机,显示的却是路由器的外网
    在这里插入图片描述
  • 目的地地址转换(DNAT)
  1. 路由器端:添加DNAT策略
    在这里插入图片描述
  2. 主机:连接路由器外网,转换到测试端
    在这里插入图片描述
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值