zoukankan      html  css  js  c++  java
  • Centos7防火墙firewalld实用操作

    一.前言

    Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

    二.操作与配置

    1.服务操作

    启动服务:

    ststemctl start firewalld

    停止服务

    systemctl stop firewalld

    重启服务

    systemctl restart firewalld

    查看服务状态

    systemctl status firewalld

    2.配置文件说明

    firewalld 存放配置文件有两个目录,/usr/lib/firewalld 和 /etc/firewalld,前者存放了一些默认的文件,后者主要是存放用户自定义的数据,所以我们添加的service或者rule都在后者下面进行。

    server 文件夹存储服务数据,就是一组定义好的规则。

    zones 存储区域规则

    firewalld.conf 默认配置文件,可以设置默认使用的区域,默认区域为 public,对应 zones目录下的 public.xml

    三.命令

    这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。

    1.重新加载防火墙配置

    firewall-cmd --reload

    2.查看防火墙运行状态

    firewall-cmd --state

    3.查看默认区域的设置

    firewall-cmd --list-all

    4.应急命令

    firewall-cmd --panic-on #拒绝所有流量,远程连接会立即断开,只有本地能登陆

    firewall-cmd--panic-0ff #取消应急模式,但需要重启firewalld后才可以远程ssh

    firewall-cmd --query-panic #查看是否为应急模式

    5.服务

    firewall-cmd --add-service=<service name> #添加服务

    firewall-cmd --remove-service=<service name> #移除服务

    6.端口

    firewall-cmd --add-port=<port>/<protocol> #添加端口 / 协议(TCP/UDP)

    firewall-cmd  --remove-port=<port>/<protocol> #移除端口 / 协议(TCP/UDP)

    7.协议

    firewall-cmd --add-protocol=<protocol> #允许协议(例:icmp,即允许ping)

    firewall-cmd --remove-protocol=<protocol> #取消协议

    firewall-cmd --list-protocol #查看允许的协议

    8. 允许指定ip的所有流量

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"

    例如:

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.30.2" accept"

    #表示允许来自192.168.30.2的所有流量

    9.允许指定ip的指定协议

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" protocol value="<protocol>" accept" 

    例如:

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.30.2" protocol value="icmp" accept"

    #表示允许192.168.30.2的主机的icmp协议

    10.允许指定ip访问指定服务

    firewall-cmd --add-rich-rule="rule family="ipv4" sourve address="<ip>" service name="<service name>" accept"

    例如:

    firewall-cmd --add-rich-rule="rule family="ipv4" sourve address="192.168.30.2" service name="ssh" accept"

    #表示允许192.168.30.2的主机访问ssh服务

    11.允许指定ip访问指定端口

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"

    例如:

    firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.30.2" port protocol="tcp" port="22" accept"

    #表示允许192.168.30.2的主机访问22端口

    12. 将指定ip改为网段

    各个命令都支持sourve address设置为网段,即这个网段的ip都适配这个规则

    firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port protocol="tcp" port="22" accept"

    #表示允许192.168.30.0/24网段的主机访问22端口

    13.禁止指定ip/网段

    各个命令中,accept表示同意,reject表示拒接,设置为drop表示直接丢弃(会返回timeout超时)

    firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.30.0/24" port protocol="tcp" port="22" reject"

    #表示禁止192.168.30.0/24网段的主机访问22端口

  • 相关阅读:
    .net core 2.x默认不支持gb2312
    获取枚举描述
    C#中DateTime.Ticks
    验证组件FluentValidation的使用示例
    python计算出现错误
    EF的导航属性
    webpack不打包指定的js文件
    递归树处理,配合vue的vueTreeselect组件使用
    elementUI 日期时间选择器el-date-picker开始时间与结束时间约束
    Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案
  • 原文地址:https://www.cnblogs.com/liuhui-xzz/p/9964094.html
Copyright © 2011-2022 走看看