第十四章 LINUX新安全FIREWALLD-CENTOS7.5知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十四章 LINUX新安全FIREWALLD-CENTOS7.5知识相关的知识,希望对你有一定的参考价值。

一、FIRWALLD
Filewalld(动态防火墙)作为redhat7系统中变更对于netfilter内核模块的管理工具;
iptables service 管理防火墙规则的模式(静态):用户将新的防火墙规则添加进 /etc/sysconfig/iptables 配置文件当中,再执行命令 /etc/init.d/iptables reload 使变更的规则生效。在这整个过程的背后,iptables service 首先对旧的防火墙规则进行了清空,然后重新完整地加载所有新的防火墙规则,如果加载了防火墙的模块,需要在重新加载后进行手动加载防火墙的模块;
firewalld 管理防火墙规则的模式(动态):任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables 即可。
还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables 作为防火墙规则管理入口。
firewalld 使用 python 语言开发,在新版本中已经计划使用 c++ 重写 daemon 部分。
技术分享图片
firewalld中常见的区域名称(默认为public);
区域:
firewalld将网卡对应到不同的区域(zone),zone 默认共有9个:block(拒绝)
block(拒绝) dmz(非军事化) drop(丢弃) external(外部) home(家庭) internal(内部) public(公开) trusted(信任) work(工作区).
不同的区域之间的差异是其对待数据包的默认行为不同,firewalld的默认区域为public;

区域 默认规则策略
trusted 允许所有的数据包。
home 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许。
internal 等同于home区域
work 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,ipp-client与dhcpv6-client服务则允许。
public 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,dhcpv6-client服务则允许。
external 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
dmz 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许。
block 拒绝流入的数据包,除非与输出流量数据包相关。
drop 拒绝流入的数据包,除非与输出流量数据包相关。
配置方法
使用图像化的firewall-config 工具或用命令firewall-cmd:
firewall-config 工具里有一个标记为 Configuration 的下拉菜单,可以在运 行时间(即临时模式 runtime)和永久(permanent) 两种模式之间进行选择。要注意,如果您选择了?Permanent,在左上角会出现一排附加的图标。因为不能在运行模式下改变一个服务参数,所以这些图标仅在永久配置模式中出现。

技术分享图片
由 firewalld 提供的是动态的防火墙服务,而非静态的。因为配置的改变可以随时随地立刻执行,不再需要保存或者执行这些改变。现行网络连接的意外中断不会发生,正如防火墙的所有部分都不需要重新下载。
firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。
firewalld跟iptables比起来至少有两大好处:
firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。?
firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。?
firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和 iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结 构以及使用方法不一样罢了。

概念理解:
相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。
简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,
从而实现防火墙策略之间的快速切换。例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。
按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。
当前,我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;
在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。
在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,
然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。

1、运行、停止、禁用firewalld
启动:[local~]# systemctl start firewalld
禁用:[local~]# systemctl disable firewalld
停止:[local~]#systemctl stop firewalld
重启:[local~]# systemctl restart firewalld
开机启动:[local~]# systemctl enable firewalld
查看状态:[local~]# systemctl status firewalld 或者 firewall-cmd --state
2、配置firewalld
查看版本:[local~]# firewall-cmd --version
查看帮助:[local~]# firewall-cmd --help
查看区域信息: [local~]# firewall-cmd --get-active-zones
查看指定接口所属区域:[local~]# firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:[local~]# firewall-cmd --panic-on
取消拒绝状态:[local~]# firewall-cmd --panic-off
查看是否拒绝:[local~]# firewall-cmd --query-panic
更新防火墙规则:[local~]# firewall-cmd --reload
        [local~]# firewall-cmd --complete-reload
两者的区别是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务, 将接口添加到区域,默认接口都在public。
[local~]# firewall-cmd --zone=public --add-interface=eth0 --permanent
之后需要重新加载firewalld,以更新规则:[local~]# firewall-cmd --reload
设置默认接口区域
[local~]# firewall-cmd --set-default-zone=public
立即生效无需重启
3、打开端口、移除端口
查看所有打开的端口:
[local~]# firewall-cmd --zone=dmz --list-ports
加入一个端口到区域:
[local~]# firewall-cmd --zone=dmz --add-port=8080/tcp --permanent

打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹
[local~]# firewall-cmd --zone=work --add-service=smtp
移除服务
[local~]# firewall-cmd --zone=work --remove-service=smtp
那怎么开启一个端口呢
添加
[local~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[local~]# firewall-cmd --reload
查看
[local~]# firewall-cmd --zone= public --query-port=80/tcp
删除
[local~]# firewall-cmd --zone= public --remove-port=80/tcp --permanent

以上是关于第十四章 LINUX新安全FIREWALLD-CENTOS7.5知识的主要内容,如果未能解决你的问题,请参考以下文章

第十四章Linux 账号管理与 ACL 权限配置

Linux就该这么学 20181010(第十四章DHCP)

鸟0哥的Linux私房菜——第十四章:Bash Shell

Linux应用开发第十四章CAN编程应用开发

sql 语句系列(加减乘除与平均)[八百章之第十四章]

Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)