• firewalld


    FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。

    安装和管理

    1. 启动服务,并在系统引导时启动该服务

    $ sudo systemctl start firewalld
    $ sudo systemctl enable firewalld
    

    2. 停止并禁用

    $ sudo systemctl stop firewalld
    $ sudo systemctl disable firewalld
    

    3.检查防火墙状态

    $ sudo firewall-cmd --state
    

    4.要查看 FirewallD 守护进程的状态

    $ sudo systemctl status firewalld
    

    5.重新加载 FirewallD 配置:

    $ sudo firewall-cmd --reload
    

    配置FireWallD

    配置文件位于两个目录中:

    • /usr/lib/FirewallD 下保存默认配置,如默认区域和公用服务。 避免修改它们,因为每次 firewall 软件包更新时都会覆盖这些文件。
    • /etc/firewalld 下保存系统配置文件。 这些文件将覆盖默认配置。

    配置集

    FirewallD 使用两个配置集:“运行时”和“持久”。 在系统重新启动或重新启动 FirewallD 时,不会保留运行时的配置更改,而对持久配置集的更改不会应用于正在运行的系统。

    默认情况下,firewall-cmd 命令适用于运行时配置,但使用 --permanent 标志将保存到持久配置中。要添加和激活持久性规则,你可以使用两种方法之一。

    1. 将规则同时添加到持久规则集和运行时规则集中。

    $ sudo firewall-cmd --zone=public --add-service=http --permanent
    $ sudo firewall-cmd --zone=public --add-service=http
    

    2. 将规则添加到持久规则集中并重新加载 FirewallD。

    $ sudo firewall-cmd --zone=public --add-service=http --permanent
    $ sudo firewall-cmd --reload
    

    reload 命令会删除所有运行时配置并应用永久配置。因为 firewalld 动态管理规则集,所以它不会破坏现有的连接和会话。

    允许或者拒绝任意端口/协议

    $ sudo firewall-cmd --zone=public --add-port=12345/tcp --permanent
    $ sudo firewall-cmd --zone=public --remove-port=12345/tcp --permanent
    

     

    丰富规则

    允许来自主机 192.168.0.14 的所有 IPv4 流量。

    $ sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.168.0.14 accept'

    拒绝来自主机 192.168.1.10 到 22 端口的 IPv4 的 TCP 流量。

    $ sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.1.10" port port=22 protocol=tcp reject'

    常用用法:

    允许192.168.142.166访问50070端口

    $ firewall-cmd --permanent --add-rich-rule "rule family="ipv4" source address="192.168.31.111" port protocol="tcp" port="50070" accept"
    $ firewall-cmd --reload
    

      

    配置文件:

    firewalld 配置文件所在路径/etc/firewalld/zones/public.xml

    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>Public</short>
      <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
      <service name="ssh"/>
      <service name="dhcpv6-client"/>
      <port protocol="tcp" port="80"/>
      <rule family="ipv4">
        <source address="192.168.31.111"/>
        <port protocol="tcp" port="50070"/>
        <accept/>
      </rule>
      <rule family="ipv4">
        <source address="192.168.31.112"/>
        <port protocol="tcp" port="50070"/>
        <accept/>
      </rule>
    </zone>
    
  • 相关阅读:
    C#通过反射获取类中的方法和参数个数,反射调用方法带参数
    C#利用WinRAR实现压缩和解压缩
    C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
    C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
    MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用
    JSON对象与字符串之间的相互转换
    Javascript正则表达式详细讲解和示例,通俗易懂
    C#比较两个list集合,两集合同时存在或A集合存在B集合中无
    Uploadify 3.2上传文件,限制类型,大小,传递参数等
    c# 反射得到实体类的字段名称和值,DataTable转List<T>
  • 原文地址:https://www.cnblogs.com/zenan/p/9592354.html
Copyright © 2020-2023  润新知