zoukankan      html  css  js  c++  java
  • firewall详解

    官方文档介绍地址:https
    //access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld1

    一,防火墙介绍

    CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了。

    1,官方介绍

    动态防火墙守护程序firewalld提供动态管理的防火墙,支持网络“区域”,以便为网络及其关联的连接和接口分配信任级别。它支持IPv4和IPv6防火墙设置。它支持以太网桥,并具有运行时和永久配置选项的分离。它还有一个服务或应用程序接口,可以直接添加防火墙规则。

    2,什么是区域区:

    网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。

    3,哪个区域可用?

    由firewalld提供的区域按照从不信任到信任的顺序排序。

    4,区域的分类?

    防火墙可用于根据用户决定放置在设备上的信任级别和该网络内的流量将网络分成不同的区域。NetworkManager通知firewalld接口所属的区域。可以通过NetworkManager或firewall-config工具更改接口的分配区域,该工具可以为您打开相关的NetworkManager窗口。

    / etc / firewalld /中的区域设置是一系列预设设置,可以快速应用于网络接口。这里列出了它们的简要说明:

    drop
    任何传入的网络数据包都被丢弃,没有回复。只能进行传出网络连接。

    阻止
    任何传入的网络连接被拒绝,其中包含用于IPv4的icmp-host-prohibited消息和用于IPv6的icmp6-adm-prohibited。只能从系统内启动网络连接。

    公共
    用于公共场所。您不相信网络上的其他计算机不会损害您的计算机。仅接受选定的传入连接。

    external
    用于特别为路由器启用伪装的外部网络。您不相信网络上的其他计算机不会损害您的计算机。仅接受选定的传入连接。

    dmz
    适用于非军事区中的计算机,这些计算机可公开访问,并且对内部网络的访问权限有限。仅接受选定的传入连接。

    工作
    用于工作区域。您最常信任网络上的其他计算机,以免损害您的计算机。仅接受选定的传入连接。

    home
    适用于家庭领域。您最常信任网络上的其他计算机,以免损害您的计算机。仅接受选定的传入连接。

    内部
    用于内部网络。您最常信任网络上的其他计算机,以免损害您的计算机。仅接受选定的传入连接。

    trusted
    接受所有网络连接。
    可以将这些区域中的一个指定为默认区域。将接口连接添加到NetworkManager时,会将它们分配给默认区域。安装时,firewalld中的默认区域将设置为公共区域。

    注:具体内容,请参见官方文档介绍!

     

    二,防火墙配置

    firewalld的配置存储在/ usr / lib / firewalld /和/ etc / firewalld /中的各种XML文件中。

    这样可以提供很大的灵活性,因为文件可以编辑,编写,备份,用作其他安装的模板等。

    修改防火墙配置文件之前,需要对之前防火墙做好备份

    1.
    firewall-cmd --state        
    #查看firewall的状态
    firewall-cmd --list-all 
    #查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
    firewall-cmd --list-all-zones 
    #查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
    firewall-cmd --reload
    #重新加载配置文件
     
    2、关闭firewall:
    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
     
    3、firewalld的基本使用
    启动: systemctl start firewalld
    查看状态: systemctl status firewalld 
    停止: systemctl disable firewalld
    禁用: systemctl stop firewalld
     
    4、systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

    启动一个服务:systemctl start firewalld.service
    关闭一个服务:systemctl stop firewalld.service
    重启一个服务:systemctl restart firewalld.service
    显示一个服务的状态:systemctl status firewalld.service
    在开机时启用一个服务:systemctl enable firewalld.service
    在开机时禁用一个服务:systemctl disable firewalld.service
    查看服务是否开机启动:systemctl is-enabled firewalld.service
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed

    5、配置firewalld-cmd

    查看版本: firewall-cmd --version
    查看帮助: firewall-cmd --help
    显示状态: firewall-cmd --state
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
    更新防火墙规则: firewall-cmd --reload
    查看区域信息:  firewall-cmd --get-active-zones
    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    拒绝所有包:firewall-cmd --panic-on
    取消拒绝状态: firewall-cmd --panic-off
    查看是否拒绝: firewall-cmd --query-panic
     
    那怎么开启一个端口呢
    添加
    firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
    重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone= public --query-port=80/tcp
    删除
    firewall-cmd --zone= public --remove-port=80/tcp --permanent
     
    因为在/usr/lib/firewalld/services/中事先定义了ssh.xml的相应的规则
  • 相关阅读:
    洛谷 P6622
    洛谷 P6619
    LOJ 3188
    CF::Gym 102174G
    eJOI2017~2019
    洛谷 P6313
    洛谷 P6305
    JSOI2020 酱油记
    洛谷 P6234
    CodeForces 1334F
  • 原文地址:https://www.cnblogs.com/shawhe/p/11050088.html
Copyright © 2011-2022 走看看