firewalld 极速上手指南
从CentOS6迁移到7系列,变化有点多,其中防火墙就从iptables变成了默认Firewalld服务。firewalld网上资料很多,但没有说得太明白的。一番摸索后,总结了这篇文章,用于快速上手。
1.概览
.png)
.png)
2.区域(zone)

.png)
.png)

3.过滤规则
.png)

.png)

.png)
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
... trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces:
sources: 10.10.10.10/32
...
.png)

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Test Port</short>
<port protocol="tcp" port="5000"/>
</service>
rule family="ipv4" source address="0.0.0.0" destination address="192.168.136.190" port port="3306" protocol="tcp" accept
4.firewalld配置

.png)

.png)
5.接口封装
import xml.etree.cElementTree as ET
tree = ET.ElementTree(file="/etc/firewalld/zones/public.xml")
root = tree.getroot() # 获取rich rule规则
for each_rule in root.findall('rule'):
# 打印地址协议
print 'family:' + str(each_rule.attrib)
# 打印源地址
source_obj = each_rule.find('source')
if source_obj is not None:
print 'source:' + str(source_obj.attrib)
# 打印目的地址
destination_obj = each_rule.find('destination')
if destination_obj is not None:
print 'destination:' + str(destination_obj.attrib)
# 打印端口
port_obj = each_rule.find('port')
if port_obj is not None:
print 'port:' + str(port_obj.attrib) # 删除rich rule规则,删除参数为rich rule字符串,记为 remove_str
# decode_obj(element) 将xml结构解析成字符串,返回值为字符串,注意字符串赋值顺序,语法细节参考添加规则
for each_rule in root:
if decode_obj(each_rule) == remove_str:
root.remove(each_rule) # 剩下的修改功能、查找功能可以参照上面实现,这里主要说明的是xml库的使用方法
这里再针对xml库说明下,从<zone>开始,每一层都是一个节点,然后形成的一棵树。每个节点是 ET.Element(tag, attrib={}),比如这里short, description, service , rule都是tag, family是attrib
需要访问节点的 tag 和 attrib,直接xmlobj.tag,xmlobj.attrib方式访问
获取子节点使用xmlobj.getchildren(),或者是获取指定tag的节点xmlobj.findall(tag)
,
firewalld 极速上手指南的更多相关文章
- Rancher 快速上手指南操作(1)
Rancher 快速上手指南操作(1)该指南知道用户如何快速的部署Rancher Server 管理容器.前提是假设你的机器已经安装好docker了.1 确认 docker 的版本,下面是 ubunt ...
- X下轻量级桌面WindowMaker上手指南
layout: post title: 轻量级桌面WindowMaker上手指南 tags: x11, cygwin, raspi --- 最近工作上需要在远程Linux上运行一个桌面(我需要跑Net ...
- UnityShader快速上手指南(三)
简介 这一篇还是一些基本的shader操作:裁剪.透明和法向量的应用 (纠结了很久写不写这些,因为代码很简单,主要是些概念上的东西) 先来看下大概的效果图:(从左到右依次是裁剪,透明,加了法向量的透明 ...
- Windows 8 系统完全上手指南 - 非常详尽的 Win8 系统入门学习手册与使用技巧专题教程!
每次当有新版本的操作系统发布的时候,市面上总会冒出各种从入门到精通类的学习书籍,这次最新的 Windows 8 也不例外!不过,今天给大家送上免费的大礼——<Windows 8 完全上手指南&g ...
- Resharper上手指南
原文http://www.cnblogs.com/renji/archive/2007/12/11/resharper.html Resharper上手指南 我是visual studio的忠实用户, ...
- NewLife.XCode 上手指南2018版(二)增
目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...
- NewLife.XCode 上手指南2018版(一)代码生成
目录 NewLife.XCode 上手指南2018版(一)代码生成 NewLife.XCode 上手指南2018版(二)增 NewLife.XCode 上手指南2018版(三)查 NewLife.XC ...
- Gatsby上手指南 - 让你的静态网站用react来高逼格的写
注意:Gatsby V2版本安装及使用问题请移步<Gastby V2安装过程中常见问题>,此文较旧,主要针对V1版Gatsby而介绍 前言 一直以来都是用之前比较流行的静态网站生成器Hex ...
- [转]Rancher 快速上手指南操作(1)
本文转自:http://www.cppblog.com/zhiyewang/archive/2016/03/17/213053.aspx Rancher 快速上手指南操作(1)该指南知道用户如何快速的 ...
随机推荐
- MYSQL 之 JDBC(五): 增删改查(三)PreparedStatement
是Statement的子接口,可以传入带占位符的sql语句,并且提供了补充占位符变量的方法. 使用Statement需要进行拼写SQL语句,很辛苦,很容易出错. 引号的问题处理很复杂,不利于维护. 可 ...
- 数据可视化之powerBI技巧(八)Power BI按多列排序的技巧
目前PowerBI的表格已经支持多列排序,但是矩阵依然还不支持按多个字段排序,虽然这个需求很普遍,这里利用DAX提供一个变通的实现方式. 模拟数据如下,有两个数据指标: 对类别首先按[指标一]进行排序 ...
- 数据可视化之DAX篇(二十五)PowerBI常用的度量值:累计至今
https://zhuanlan.zhihu.com/p/64999937 经常碰到本年至今.本月至今的数据计算,其实还有一类计算是,从历史最早日期至今的累计计算,比如从开业到现在总共卖出了多少件商品 ...
- 前端04 /css样式
前端04 /css样式 目录 前端04 /css样式 昨日内容回顾 css引入 选择器 基础选择器 组合选择器 属性选择器 伪类选择器 伪元素选择器 优先级(权重) 通用选择器 css样式 1高度宽度 ...
- Java数据类型自动转换(++ ,+=)
在算术表达式中的自动类型转换 数据从类型范围小的自动向数据范围大的转换 整数向浮点数转换(包括long类型向float转换) 例子: char类型的范围内与整数之间转换依据ASCII表 强制转换会丢失 ...
- linux 安装 mysql8
1. 下载地址: https://dev.mysql.com/downloads/file/?id=484922 2. 安装 mysql80-community-release-el7-3.noarc ...
- Babel:下一代Javascript语法编译器
定义 Babel是一个Javascript的编译器,通过它你可以将一些新版本的ECMAScript语法转换成低版本的语法.以便能够在低版本的浏览器或者其它环境平稳运行. 截至目前笔者写这篇文章的时候, ...
- Redis 分布式锁(一)
前言 本文力争以最简单的语言,以博主自己对分布式锁的理解,按照自己的语言来描述分布式锁的概念.作用.原理.实现.如有错误,还请各位大佬海涵,恳请指正.分布式锁分两篇来讲解,本篇讲解客户端,下一篇讲解r ...
- Maven如何利用父工程对版本进行统一管理
项目开发中我们该怎么对项目依赖的版本进行统一管理呢 答:创建一个父级工程,让所有的业务模块都继承该父级工程,即所有的业务都为Module 在父级工程pom文件添加<dependencyManag ...
- MSSQL系列 (一):数据库的相关操作(增删改查)
1.创建数据库 --创建数据库 create database stuDb on primary ( --表示属于primary文件组 name='stuDb', --逻辑名称 fileName='D ...