linux中级之netfilter防火墙(firewalld)
一、firewalld主要概念
dynamic firewall daemon。支持ipv4和ipv6。Centos7中默认将防火墙从iptables升级为了firewalld。firewalld相对于iptables主要的优点有:
(1)firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
(2)firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
1、过滤规则集合:zone
一个zone就是一套过滤规则,数据包必须要经过某个zone才能入站或出站。不同zone中规则粒度粗细、安全强度都不尽相同。可以把zone看作是一个个出站或入站必须经过的安检门,有的严格、有的宽松、有的检查的细致、有的检查的粗略。
每个zone单独对应一个xml配置文件,文件名为<zone名称>.xml。自定义zone只需要添加一个<zone名称>.xml文件,然后在其中添加过滤规则即可。
每个zone都有一个默认的处理行为,包括:default(省缺), ACCEPT, %%REJECT%%, DROP
firewalld提供了9个zone:
drop:任何流入的包都被丢弃,不做任何响应。只允许流出的数据包。
block:任何流入的包都被拒绝,返回icmp-host-prohibited报文(ipv4)或icmp6-adm-prohibited报文(ipv6)。只允许由该系统初始化的网络连接
public:默认的zone。部分公开,不信任网络中其他计算机,只放行特定服务。
external:只允许选中的服务通过,用在路由器等启用伪装的外部网络。认为网路中其他计算器不可信。
dmz:允许隔离区(dmz)中的电脑有限的被外界网络访问,只允许选中的服务通过。
work:用在工作网络。你信任网络中的大多数计算机不会影响你的计算机,只允许选中的服务通过。
home:用在家庭网络。信任网络中的大多数计算机,只允许选中的服务通过。
internal:用在内部网络。信任网络中的大多数计算机,只允许选中的服务通过。
trusted:允许所有网络连接,即使没有开放任何服务,那么使用此zone的流量照样通过(一路绿灯)。
2、service
一个service中可以配置特定的端口(将端口和service的名字关联)。zone中加入service规则就等效于直接加入了port规则,但是使用service更容易管理和理解。
定义service的方式:添加<service名称>.xml文件,在其中加入要关联的端口即可
3、过滤规则
source:根据数据包源地址过滤,相同的source只能在一个zone中配置。
interface:根据接收数据包的网卡过滤
service:根据服务名过滤(实际是查找服务关联的端口,根据端口过滤),一个service可以配置到多个zone中。
port:根据端口过滤
icmp-block:icmp报文过滤,可按照icmp类型设置
masquerade:ip地址伪装,即将接收到的请求的源地址设置为转发请求网卡的地址(路由器的工作原理)。
forward-port:端口转发
rule:自定义规则,与itables配置接近。rule结合--timeout可以实现一些有用的功能,比如可以写个自动化脚本,发现异常连接时添加一条rule将相应地址drop掉,并使用--timeout设置时间段,过了之后再自动开放。
4、过滤规则优先级
source:源地址
interface:接收请求的网卡
firewalld.conf中配置的默认zone
二、firewalld配置文件
1、firewalld配置方式
firewall-config:GUI工具
firewall-cmd:命令行工具
直接编辑xml文件:编辑后还需要reload才生效
2、配置文件存储位置
firewalld的配置文件以xml为主(主配置文件firewalld.conf除外),有两个存储位置:
(1)/etc/firewalld/:存放修改过的配置(优先查找,找不到再找默认的配置)
(2)/usr/lib/firewalld/:默认的配置
修改配置的话只需要将/usr/lib/firewalld中的配置文件复制到/etc/firewalld中修改。恢复配置的话直接删除/etc/firewalld中的配置文件即可。
3、配置文件结构
(1)firewalld.conf:主配置文件,键值对格式
DefaultZone:默认使用的zone,默认值为public
MinimalMark:标记的最小值,默认为100
CleanupOnExit:退出firewalld后是否清除防火墙规则,默认为yes
Lockdown:是否其他程序允许通过D-BUS接口操作,使用lockdown-whitelist.xml限制程序,默认为no
IPv6_rpfilter:类似rp_filter,判断接收的包是否是伪造的(通过路由表中的路由条目,查找uRPF),默认为yes
(2)lockdown-whitelist.xml
(3)direct.xml:direct功能,直接使用防火墙的过滤规则,便于iptables的迁移
(4)zones/:zone配置文件
(5)services/:service配置文件
(6)icmptypes/:icmp类型相关的配置文件
三、firewalld应用
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2、systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
3、配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
添加:firewall-cmd --zone=public --add-port=80/tcp --permanent(--permanent永久生效,没有此参数重启后失效)
重新载入:firewall-cmd --reload
查看:firewall-cmd --zone= public --query-port=80/tcp
删除:firewall-cmd --zone= public --remove-port=80/tcp --permanent
linux中级之netfilter防火墙(firewalld)的更多相关文章
- Linux中级之netfilter防火墙(iptables)
一.什么是防火墙? 防火墙其实就是一个隔离工具:工作于主机或者网络的边缘 对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测 对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬 ...
- Linux中级之netfilter/iptables应用及补充
一.iptables介绍 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常 ...
- 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法
Linux网络相关 ifocnfig 查看网卡ip(yum install net-tools) ip add 查看网卡 ip add = ifocnfig ifconfig 不显示down掉的网卡, ...
- Linux防火墙firewalld安全设置
背景描述 防火墙是具有很好的保护作用.入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机.在公司里数据安全是最重要的,要求安全部门进行全公司进行服务器防火墙安全搭建,在原有的基础上进行安全的防火墙 ...
- Linux内核--基于Netfilter的内核级包过滤防火墙实现
测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/de ...
- linux入门系列10--firewalld防火墙管理
上一篇文章学习了用户及文件相关权限,本篇继续学习防火墙技术. 防火墙作为公网与内网之间的保护屏障,对系统至关重要.防火墙又分为硬件防火墙和软件防火墙,主要功能都是依据设置的策略对穿越防火墙的流量进行过 ...
- (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
转自:http://blog.chinaunix.net/uid-23069658-id-3160506.html 本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之 ...
- 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...
- 洞悉linux下的Netfilter&iptables:什么是Netfilter?
本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了.趁有时间,好好把这方面的东西总结一番.一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共 ...
随机推荐
- (十一)struts2的未知处理器
从struts2.1开始,struts2增加了未知处理器. 当用户请求未知Action,或指定Action里的未知方法,或Action处理结束后返回一个未知的result.struts2允许使用未知处 ...
- 机器学习--如何理解Accuracy, Precision, Recall, F1 score
当我们在谈论一个模型好坏的时候,我们常常会听到准确率(Accuracy)这个词,我们也会听到"如何才能使模型的Accurcy更高".那么是不是准确率最高的模型就一定是最好的模型? 这篇博文会向大家解释 ...
- Day09_43_Set集合_HashSet_02(HashCode方法 与 equals方法 )
HashSet - 向Hash表中添加元素的过程? 1. 先调用将要被存储的值key的HashCode方法得出Hash值,如果该Hash值在现有Hash表中不存在,那么直接加入元素. 2. 如果该Ha ...
- kubernetes的组件和概念介绍
1.控制平面组件(也被称为master节点组件) 控制平面的组件我们会找一台单独的机器来部署,我们习惯上把部署控制平面组件的机器称为master节点,以下都会用master节点来代替控制平面这个概念, ...
- Apache HTTP Server与Tomcat整合学习记录
Apache HTTP Server与Tomcat整合 个人环境:Windows10,JDK8,Tomcat8.5,Apache2.4,JK模块1.2.4 前言 其实网上有很多教程,但问题是得每次 ...
- 三个dom xss常用tips
分享dom xss的三个案例 (1)javascript里面过滤单引号和双引号? 搭建环境: 只是过滤了单引号和双引号是可以xss的: 使用<>闭合script即可 </script ...
- Selenium3自动化测试【17】元素定位之Link定位
Link定位 find_element_by_link_text方法是通过文本链接来定位元素. 以Bing首页中顶部的[学术]链接为例,如图所示. 查看对应的html代码.从html中我们能看出这是一 ...
- hdu1261 JAVA
题意: 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA".给定若干字母和它们相应的个数,计算一共可以组成多少个不同的 ...
- Android平台下Dalvik层hook框架ddi的研究
通过adbi,可以对native层的所有代码进行hook.但对于Android系统来说,这还远远不够,因为很多应用都还是在Dalvik虚拟机中运行的. 那么,有没有什么办法可以对Dalvik虚拟机中跑 ...
- hdu4515 小模拟
题意: 给你当期日期,问前D天和后D天的年月日. 思路: 直接模拟就行了水题,对了别忘了题目2013,3,5要输出这样的2013/03/05. #include<stdio ...