firewall-cmd命令:使用xml文件配置防火墙规则(附实战案例)

目的:公司最近有些服务器要放在公网进行测试,需要配置防火墙规则防止入侵

定义

策略与区域
策略制定流量之间的流动
区域制定特定的信任级别,通常用于定义广泛的网络环境

设置策略->设置区域->设置策略对象->设置策略筛选规则(对区域设置部分规则)
创建策略与区域
对策略创建规则
对区域创建规则

创建策略

firewalld-cmd --permanent --new-policy mypolicy

制定区域

firewalld-cmd --permanent --policy mypolicy --add-ingress-zone internal
firewalld-cmd --permanent --policy mypolicy --add-egress-zone external

设置策略对象为全部流量

firewalld-cmd --permanet -policy mypolicy --set-target ACCEPT
firewalld-cmd --reload

设置策略为仅有http与httpd可以通过

firewalld-cmd --permanent -policy mypolicy --add-service http
firewalld-cmd --permanent -polict mypolicy --add-service https
firewalld-cmd --reload

对区域内部配置隐式规则 允许该区域所有主机都可以发送https请求

firewalld-cmd --permanent --zone internal --add-service https
firewalld-cmd --reload
区域

public:只有被选择的连接会被接受,通常用于公共地区

连接,接口与源地址:
NetworkManger处理的网络连接,NetworkManager 告诉 firewalld 将用于此连接的网络接口分配到该连接的配置中定义的区域。
由网络脚本处理的网络连接,没有守护程序可以告诉 firewalld 添加连接到区域。这只能在 ifcfg-post 脚本中完成。因此,在此之后对名称的更改不能提供给 firewalld。

配置防火墙区域的方法
1.firewalld-cmd
2.修改配置文件
/usr/lib/firewalld/zones 用于默认和备用配置
/etc/firewalld/zones 用于用户创建和自定义的配置文件

区域标签
configure traffic:
<zone></zone> 定义区域概念 
	target:主要是流量与规则匹配后的动作
<short></short> 定义区域的名字
<description></description> 描述其具体作用

selected traffic
<interface name="string" />  目的是将网卡名与区域绑定
<source></source>
	address="address/mask"
	mac="MAC"
<service>
	name="string" 描述的是必须要匹配ssh服务的流量
<port>  定义了允许访问的端口范围和协议
<source-port>

action traffic:
<forward-port> 将端口的HTTP流量转发到别的端口上
<rule>
	<accept> [<limit value="rate/duration"/>] </accept> 
	<reject [type="rejecttype"]> [<limit value="rate/duration"/>] </reject> 
    <drop> [<limit value="rate/duration"/>] </drop> 
    <mark set="mark[/mask]"> [<limit value="rate/duration"/>] </mark>

1.定义区域
定义区域
定义区域名字
描述区域作用

2.对流量进行筛选
对网卡名的筛选
对源端口的筛选
对服务进行筛选
对端口进行筛选

3.对流量进行记录
对符合流量的日志进行记录
对符合流量的审计进行记录

4.对流量进行处理
接受
丢弃
拒绝
记录
转发

实战案例:
禁止192.168.234.158 ssh连接 192.168.234.160
vim /etc/firewalld/zones/public.xml (修改配置文件)
请添加图片描述
或是以下实战 一定要注意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>

 <interface name="Bond1">
 <rule family="ipv4">
        <description>针对192.168.20.0网段的FTP端口放开</description>
        <source address="192.168.20.0/16"></source>
        <destination address="192.168.232.33" />
        <port port="20-21" protocol="tcp" />
        <accept/>
 </rule>

 <rule family="ipv4">
        <description>针对192.168.30.0网段的FTP端口放开</description>
        <source address="192.168.30.0/16"></source>
        <destination address="192.168.232.33" />
        <port port="20-21" protocol="tcp" />
        <accept/>
 </rule>
</interface>
</zone>

firewalld-cmd --reload(加载配置)
firewalld-cmd --list-all(查看配置是否成功)
请添加图片描述

踩得坑

踩得坑:

1.主机上开启防火墙规则时,最好禁用掉docker的端口映射 不然会在默认情况下添加docker的规则 从而导致规则失效
参考文章:Linux防火墙firewalld不生效,无法拦截Docker映射端口 - 我命由我不由天—hao - 博客园 (cnblogs.com)

2.在对防火墙及进行ssh禁止时,先移除之前对ssh无限制的规则

firewall-cmd --permanent --remove-service=ssh

参考文章:firewalld修改默认的22端口限制ip访问_firewalld 22端口-优快云博客

参考文献:https://firewalld.org/documentation/zone/options.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值