FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。
 
相反,firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon 就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。另外,firewall daemon 无法解析由 ip*tables 和 ebtables 命令行工具添加的防火墙规则。
守护进程通过 D-BUS 提供当前激活的防火墙设置信息,也通过 D-BUS 接受使用 PolicyKit 认证方式做的更改。
 
policykit机制原理:
使用 policykit 一般都有一个dbus daemon程序去管理对应一系列的操作,当有程序来请求这些操作(方法)时,这个daemon程序会根据预先设定好的配置来确定是否要求额外的权限,需要额外的权限会去向libpolkit验证当前操作是否获得了权限,如果当前调用已经取得权限了,则调用顺利通过,否则返回无权限的提示或异常。
PolicyKit主要是通过dbus来进行的,是在dbus服务的基础上增强了policykit的配置文件来实现的。因此理论上只要是dbus服务就可以使用PolicyKit。从而让用户具备更多的操作权。
 
iptables:
system-config-firewall/lokkit,静态防火墙
静态防火墙规则配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables 
 
firewalld:
firewalld daemon 动态管理防火墙,不需要重启整个防火墙就可以应用更改,不过要使用firewalld daemon就要求防火墙的所有变更都要通过该守护进程来实现,已确保守护进程中的状态和内核里防火墙是一致的,另外,firewalld daemon无法解析由iptables和ebtables命令行添加的防火墙规则
守护进程通过D-BUS提供当前激活的防火墙设置信息,也通过D-BUS接受使用PolicyKit认证方式做的更改
 
使用system-config-firewall和lokkit的静态防火墙模型实际上仍然可用并继续提供,但却不能与“守护进程”同时使用,用户和管理员必须选择一种方案
 
firewalld iptables 都是对内核netfilter的操作,真正防火墙机制的实现是netfilter实现
4.5.4. 对网络区的理解
基于用户对网络中设备和交通所给与的信任程度,防火墙可以用来将网络分割成不同的区域。 NetworkManager 通知 firewalld 一个接口归属某个区域。接口所分配的区域可以由 NetworkManager 改变,也可以通过能为您打开相关 NetworkManager 窗口的 firewall-config 工具进行。
在/etc/firewalld/的区域设定是一系列可以被快速执行到网络接口的预设定。列表并简要说明如下:
drop(丢弃)
任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
block(限制)
任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
public(公共)
在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。
external(外部)
特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
dmz(非军事区)
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
work(工作)
用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
home(家庭)
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。
internal(内部)
用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
trusted(信任)
可接受所有的网络连接。
指定其中一个区域为默认区域是可行的。当接口连接加入了 NetworkManager,它们就被分配为默认区域。安装时,firewalld 里的默认区域被设定为公共区域。
 
 
 
 
firewalld 使用:
1.区域
网络区域定义了网络连接的可信等级,这是一个一对多的关系,意味着一次连接可以仅仅是区域的一部分,而一个区域可以用于很多连接
2.预定义的服务
服务是端口和协议入口的组合
3.端口和协议
定义了tcp或udp端口,端口可以是一个端口或者端口范围
4.icmp阻塞
可以选择 Internet 控制报文协议的报文。这些报文可以是信息请求亦可是对信息请求或错误条件创建的响应。
5.伪装(nat)
私有网络地址可以被映射到公开的IP地址。这是一次正规的地址转换。
6.端口转发
端口可以映射到另一个端口以及/或者其他主机。
可用的区域(从不信任到信任排序)
1.丢弃
drop.xml
任何流入网络的包都被丢弃,不作出任何响应。只允许流出的网络连接。
2.阻塞
block.xml
任何进入的网络连接都被拒绝,并返回 IPv4 的 icmp-host-prohibited 报文或者 IPv6 的 icmp6-adm-prohibited 报文。只允许由该系统初始化的网络连接。
3.公开
public.xml
用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。
4.外部
external.xml
用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。
5.隔离区(dmz)
dmz.xml
用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。
6.工作
work.xml
用在工作网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
7.家庭
home.xml
用在家庭网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
8.内部
internal.xml
用在内部网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
9.受信用的
trusted.xml
允许所有网络连接。
 
你可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有例如 firewall-config 这样的图形界面工具, firewall-cmd 这样的命令行工具,以及D-BUS接口。或者你也可以在配置文件目录中创建或者拷贝区域文件。
 
/usr/lib/firewalld/zones被用于默认和备用配置,/etc/firewalld/zones 被用于用户创建和自定义配置文件。
 
 
一般应用:
1.获取状态
2.在不改变状态的条件下重新加载防火墙
3.获取支持的区域列表
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="10050" accept"
查询端口是否开启命令:
firewall-cmd --query-port=80/tcp
一般应用:
1.获取状态
firewall-cmd --state
2.在不改变状态的条件下重新加载防火墙
firewall-cmd --reload
3.获取支持的区域列表
firewall-cmd --get-zones
指定ip开发端口
firewall-cmd --permanent

--zone=public 
--add-rich-rule="rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="10050" accept"
firewall-cmd --reload
 开启http 80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewalld 删除规则, 一般--add改为--remove,有问题就man 查下或者firewall-cmd -h 查看命令
firewalld查看active-zones
firewall-cmd --get-active-zones
 
iptables命令:
查看iptables配置
IPtables -S
增加iptables在19行配置:
iptables -I INPUT 19 -s 10.28.100.100/32 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
删除
iptables -D INPUT -s 10.28.100.100/32 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
 
 
 
 

firewalld那些事的更多相关文章

  1. 安装完CentOS 7 后必做的七件事

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  2. 安装完CentOS 7 后必做的七件事[转]

    CentOS是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后,首要的工作肯定是加强它的安全性,以下列出的七件事 ...

  3. CentOS7安全设置 yum-cron系统自动更新,firewalld防火墙简单使用

    PermitRootLogin nosystemctl restart sshd.service; yum -y install firewalld; systemctl start firewall ...

  4. 安装 CentOS 7 后必做的七件事

    原文 安装 CentOS 7 后必做的七件事 CentOS 是最多人用来运行服务器的 Linux 版本,最新版本是 CentOS 7.当你兴趣勃勃地在一台主机或 VPS 上安装 CentOS 7 后, ...

  5. CentOS7使用firewalld打开关闭防火墙与端口(转载)

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...

  6. 【腾讯Bugly干货分享】H5 视频直播那些事

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...

  7. CSharpGL(31)[译]OpenGL渲染管道那些事

    CSharpGL(31)[译]OpenGL渲染管道那些事 +BIT祝威+悄悄在此留下版了个权的信息说: 开始 自认为对OpenGL的掌握到了一个小瓶颈,现在回头细细地捋一遍OpenGL渲染管道应当是一 ...

  8. TODO:字节的那点事Go篇

    TODO:字节的那点事Go篇 (本文go version go1.7.3 darwin/amd64) 在Golang中string底层是由byte数组组成的. fmt.Println(len(&quo ...

  9. Microsoft Visual Studio 2013 — Project搭载IIS配置的那些事

    前段时间在改Bug打开一个project时,发生了一件奇怪的事,好好的一直不能加载solution底下的这个project,错误如下图所示:大致的意思就是这个project的web server被配置 ...

随机推荐

  1. 将ros中suscriber和publisher写入class中

    相比于笨拙的全局变量和全局函数,将suscriber和publisher成一个class,形式更加简洁和容易管理,一个节点就是一个类 参考资料 http://answers.ros.org/quest ...

  2. codeforces-505B

    题目连接:http://codeforces.com/contest/505/problem/B B. Mr. Kitayuta's Colorful Graph time limit per tes ...

  3. SpringBoot事物管理器

    一.springboot整合事物管理 springboot默认集成事物,只主要在方法上加上@Transactional即可 二.SpringBoot分布式事物管理 使用springboot+jta+a ...

  4. JSON 中的 key

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript(Standard ECMA-262 ...

  5. TCP/IP,HTTP,SOAP等协议之区别

    术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到 ...

  6. Apache CXF实战之四 构建RESTful Web Service

    Apache CXF实战之一 Hello World Web Service Apache CXF实战之二 集成Sping与Web容器 Apache CXF实战之三 传输Java对象 这篇文章介绍一下 ...

  7. bzoj 5346: tree (其实是是某次雅礼集训的题)

    用prufer序列的公式直接dp,O(n^4)的算法简简单单就写出来了23333. 按理说 O(n^4)是需要优化成O(n^3)才能过的,然鹅我也不知道我怎么过了23333 (那就懒得优化了hhhhh ...

  8. [POI2015]Kinoman

    题目大意: 给你一个长度为n的数列f,f中共有m种不同的数,每种数都有一个权值w[i]. 你可以选定一个f中的区间,定义区间的权值为这一区间只出现一次的数的权值和. 问权值最大的区间的权值是多少? 思 ...

  9. 五. 面向对象高级特性1. Java内部类及其实例化

    在 Java 中,允许在一个类(或方法.语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class). 内部类和外层封装它的类之间存在逻辑上的所属关系 ...

  10. tiny4412 串口驱动分析八 --- log打印的几个阶段之内核启动阶段(printk tiny4412串口驱动的注册)

    作者:彭东林 邮箱:pengdonglin137@163.com 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 ...