• firewall详细配置


    一、防火墙 firewalld 的安装

    1、在CentOS7中安装 firewalld 的命令如下:

    yum install firewalld

    2、如果需要图形界面,需再安装:

    yum install firewall-config

    3、使用tab键补全命令提示:

    yum install bash-completion

      防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

    Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别:

    drop:丢弃所有进入的包,而不给出任何响应
    block:拒绝所有外部发起的连接,允许内部发起的连接
    public:允许指定的进入连接
    external:同上,对伪装的进入连接,一般用于路由转发
    dmz:允许受限制的进入连接
    work:允许受信任的计算机被限制的进入连接,类似 workgroup
    home:同上,类似 homegroup
    internal:同上,范围针对所有互联网用户
    trusted:信任所有连接

    二、防火墙 firewalld 的应用

    查看版本: firewall-cmd --version
    查看帮助: firewall-cmd --help
    查看状态: firewall-cmd --state
    查看防火墙规则:firewall-cmd --list-all
    查看所有打开的端口: firewall-cmd --list-ports
    查看指定区域打开的端口: firewall-cmd --zone=public --list-ports
    查询端口是否开放:firewall-cmd --query-port=8080/tcp
    更新防火墙规则: firewall-cmd --reload (修改配置后要更新防火墙)
    查看已被激活的 Zone 信息: firewall-cmd --get-active-zones
    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    查看指定级别的接口:firewall-cmd --zone=public --list-interfaces
    查看指定级别的所有信息:firewall-cmd --zone=public --list-all
    查看所有级别被允许的信息:firewall-cmd --get-service
    查看重启后所有 Zones 级别中永久放行的服务:firewall-cmd --get-service --permanent

    查看区域:firewall-cmd --get-zones
    查看默认区域:firewall-cmd --get-default-zone

    一个区域可以绑定多个网卡,一个网卡只能绑定一个区域:
    查看网卡和区域绑定:
    firewall-cmd --get-zone-of-interface=ens33

    区域添加网卡接口:
    firewall-cmd --add-interface=ens34 --zone=public --permanent

    区域删除网卡:
    firewall-cmd --remove-interface=ens34 --zone=public --permanent

    修改网卡的区域:
    firewall-cmd --change-interface=ens33 --zone=public --permanent

    trusted区域的所有服务都被允许:

    网卡如果不属于任何区域,那么来自该接口的所有数据包将使用默认的区域规则:
    区域添加来源地址,如果接口不属于某个区域,那么来自于该接口的流量如果匹配来源地址,那么流量将从来源的区域通过:

    所有的配置操作如果想永久生效,则需要加--permanent选项,否则配置只会在当前运行环境生效。

    三、firewalld的工作过程

    firewalld将所有传入流量划分区域,每个区域都有自己的一套规则。为检查哪个区域用于传入连接。firewalld使用以下逻辑,第一个匹配规则胜出:
    1、传入包的源地址与区域的某个源规则设置匹配,该包将通过该区域进行路由。
    2、包的传入接口与区域的过滤器设置匹配,则将使用该区域。
    3、否则将使用默认区域。默认区域不是单独的区域,而是指向系统上定义的某个其他区域。
    除非管理员NetworkManager配置所覆盖,否则,任何新网络接口的默认区域都将设置为public区域。

    防火墙的网络区域定义了网络连接的可信等级(共9个区域),我们可以根据不同场景来调用不同的firewalld区域,区域规则如下:

    四、使用示例如下:

    1、添加tcp的80端口:
    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效
    firewall-cmd --add-port=80/tcp --permanent 
    2、删除tcp的80端口:
    firewall-cmd --remove-port=80/tcp --permanent
    firewall-cmd --zone= public --remove-port=80/tcp --permanent

    参数解释
    1、firwall-cmd:是Linux提供的操作firewall的一个工具;
    2、--permanent:表示设置为持久;
    3、--add-port:标识添加的端口;

    # firewall-cmd --panic-on # 丢弃
    # firewall-cmd --panic-off # 取消丢弃
    $ firewall-cmd --query-panic # 查看丢弃状态
    # firewall-cmd --reload # 更新规则,不重启服务
    # firewall-cmd --complete-reload # 更新规则,重启服务
    添加某接口至某信任等级,譬如添加 eth0 至 public,再永久生效

    # firewall-cmd --zone=public --add-interface=eth0 --permanent

    设置 public 为默认的信任级别

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

    a. 管理端口
    列出 dmz 级别的被允许的进入端口

    # firewall-cmd --zome=dmz --list-ports
    允许 tcp 端口 8080 至 dmz 级别

    # firewall-cmd --zone=dmz --add-port=8080/tcp
    允许某范围的 udp 端口至 public 级别,并永久生效

    # firewall-cmd --zome=public --add-port=5060-5059/udp --permanent
    b. 管理服务
    添加 smtp 服务至 work zone

    # firewall-cmd --zone=work --add-service=smtp
    移除 work zone 中的 smtp 服务

    # firewall-cmd --zone=work --remove-service=smtp
    c. 配置 ip 地址伪装
    查看

    # firewall-cmd --zone=external --query-masquerade
    打开伪装

    # firewall-cmd --zone=external --add-masquerade
    关闭伪装

    # firewall-cmd --zone=external --remove-masquerade
    d. 端口转发
    要打开端口转发,则需要先

    # firewall-cmd --zone=external --add-masquerade
    然后转发 tcp 22 端口至 3753

    # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753
    转发 22 端口数据至另一个 ip 的相同端口上

    # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
    转发 22 端口数据至另一 ip 的 2055 端口上

    # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

    五、服务和其他构件

    在区域中有一些基本的构件块,其中服务是最重要的。防火墙使用管理员创建在/usr/lib/firewalld/services(系统默认服务) 和/etc/firewalld/services文件下的XML文件,配置的自身服务集。XML文件时通过列表3中的例子创建的。

    firewall-cmd --add-service=ftp #开放 ftp 服务规则 
    firewall-cmd --add-service=mysql # 开放mysql端口规则 
    firewall-cmd --add-service=http # 开放http端口规则 
    firewall-cmd --add-service=ssh # 开放ssh端口规则 

      以上四个规则重启服务会消失,只能临时生效,也是立刻生效的,如果要永久保存的规则就要添加参数:--permanent,添加此参数后不会立刻生效。需要重载或重启服务才生效。

  • 相关阅读:
    算法:希尔排序(Shell Sort)
    算法:五步教你消除递归
    算法:排列算法
    算法:逆波兰表达式求值
    算法:中缀表达式转换为逆波兰表达式
    算法:优先级队列(PriorityQueue)
    Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。
    算法:基于 RingBuffer 的 Deque 实现
    算法:基于 RingBuffer 的 Queue 实现《续》
    算法:基于 RingBuffer 的 Queue 实现
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/13386483.html
Copyright © 2020-2023  润新知