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端口

  • 相关阅读:
    (Java实现) 洛谷 P1106 删数问题
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1051 谁拿了最多奖学金
    (Java实现) 洛谷 P1106 删数问题
    目测ZIP的压缩率
  • 原文地址:https://www.cnblogs.com/liuhui-xzz/p/9964094.html
Copyright © 2011-2022 走看看