第十四章 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 部分。
第十四章 LINUX新安全FIREWALLD-CENTOS7.5知识
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,在左上角会出现一排附加的图标。因为不能在运行模式下改变一个服务参数,所以这些图标仅在永久配置模式中出现。

第十四章 LINUX新安全FIREWALLD-CENTOS7.5知识
由 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

4、伪装及转发
firewall-cmd --permanent --zone=< ZONE > --add-masquerade

irewall-cmd --add-masquerade

firewall-cmd --permanent --direct --passthrough ipv4 -t nat POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

firewall-cmd --direct --add-rule ipv4 nat PREROUTING 1 -i eth0 -p tcp --dport 80 -j REDIRECT --to 3128

firewall-cmd --zone=external --add-forward-port=port=3389:proto=tcp:toport=3389:toaddr=192.168.10.10

5、富规则
firewalld富规则为管理员提供了一种表达性语言,通过这种语言可表达firewalld的基本语法中未涵盖的自定义防火墙规则。
语法:
rule
[source]
[destination]
service|port|protocol|icmp-block|masquerade|forward-port
[log]
[audit]
[accept|reject|drop]

查看富规则:firewall-cmd --list-rich-rules
添加:
语法特点:
firewall-cmd --permanent --zone=< ZONE > --add-rich-rule='rule family=ipv4 source address=172.25.0.0/24 masquerade'

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.88.0/24" port protocol="tcp" port="3306" drop'

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="192.168.3.0/24" masquerade'

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.10.0/24 forward-port port=80 protocol=tcp to-port=8080 to-addr=192.168.1.1'

firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.10.0/24 forward-port port=80 protocol=tcp port=80 protocol=tcp to-port=8080 to-addr=192.168.1.1'

综合:
firewall-cmd --add-forward-port=port=3335:proto=tcp:toaddr=1.1.1.3:toport=3389
firewall-cmd --add-forward-port=port=3333:proto=tcp:toport=3389:toaddr=1.1.1.1
firewall-cmd --add-rich-rule='rule family=ipv4 forward-port port=3334 protocol=tcp to-port=3389 to-addr=1.1.1.2'
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 1 -d 192.168.1.1 -p tcp --dport 3336 -j DNAT --to 1.1.1.4:3389
firewall-cmd --add-rich-rule='rule family=ipv4 destination address=192.168.1.2 forward-port port=3337 protocol=tcp to-addr=1.1.1.5 to-port=3389'
firewall-cmd --add-forward-port=port=3338:proto=tcp:toaddr=1.1.1.6:toport=3389

黑名单机制
firewall-cmd --zone=public --new-ipset=bb --type=hash:ip --permanent
firewall-cmd --zone=public --add-rich-rule='rule source ipset=bb drop' --permanent
firewall-cmd --zone=public --ipset=bb --add-entry=2.2.2.2 --permanent
firewall-cmd --zone=public --ipset=bb --get-entries --permanen

转载于:https://blog.51cto.com/jxwpx/2317797

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34327761/article/details/91505662

智能推荐

JAVA生成6个1-8的随机数,要求无重复。_随机产生六位数,每位是1-8的数-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏14次。[算法题:生成不重复的随机数]生成6个1-8的随机数,要求无重复。先用数组保存随机数,然后判断是否重复,如果重复重新生成。 方案一:import java.util.Random;public class Cai { public static void main(String[] args) { Random ran = new Random(); int_随机产生六位数,每位是1-8的数

20201205某互联网公司技术狂欢节知识总结及思考_互联网大促备战总结-程序员宅基地

文章浏览阅读296次。周六下午,去参加了某互联网公司的技术沙龙活动,以下是重点知识和个人思考重点知识一、亿级调用最佳实践篇章干货针对日志打印导致的服务中断问题:网关日志最初按天汇总生成文件,但是随着调用量的增加,每天的日志文件也越来越大,最终导致凌晨进行日志文件转存时,服务出现10s左右的中断。解决1、升级日志打印方式为异步打印2、日志文件按照小时+文件大小方式生成避免日志文件过大。二、关于双十一大促备战的tips1、降级方案和故障应急手册,应该提前演练,避免大促时忙中出乱。2、尽量在_互联网大促备战总结

Office2016的安装进度在 90% 时挂起_office365 安装94%报错-程序员宅基地

文章浏览阅读6.2k次。问题描述:正在尝试安装 Office 365、Office 2016 或 Office 2013,安装在完成标记大约为 90% 时,变为无响应(挂起或冻结)。如果 Windows Installer 繁忙,则可能会发生此问题。解决方法:如果 Windows 更新正在使用 Windows Installer,则 Office 安装必须等到使用 Windows Installer 完成更新进程..._office365 安装94%报错

朴素贝叶斯算法检测DGA_dga sklearn-程序员宅基地

文章浏览阅读910次。僵尸网络&恶意软等程序,随着检测手段的更新(在早期,僵尸主机通产采用轮询的方法访问硬编码的C&C域名或IP来访问服务器获取域名,但是这种方式在安全人员进行逆向之后会得到有效的屏蔽),黑客们也升级了肉鸡的C&C手段;用DGA算法在终端生成大量备选域名,而攻击者与恶意软件运行同一套DGA算法,生成相同的备选域名列表。当需要发动攻击的时候,选择其中少量进行注册,便可以建立通信,并且可以对注册的域名应用速变IP技术,快速变换IP,从而域名和IP都可以进行快速变化。目前,黑客攻击者为了防止恶_dga sklearn

ORACLE 10g R2各版本及patch下载地址_oracle 10g r2版本号-程序员宅基地

文章浏览阅读3.7k次。Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit)http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.ziphttp://download.ora_oracle 10g r2版本号

内核驱动 (二)Linux按键驱动分析_linux key_power的值-程序员宅基地

文章浏览阅读3.7k次,点赞7次,收藏23次。一、按键驱动1、对按键驱动添加设备信息linux-stable-3.10.46对按键的驱动定义在gpio_keys.c (drivers\input\keyboard)文件中,在led驱动分析中,我们知道,只有平台设备和平台驱动两者的name名字一致才可以注册成功一个驱动。这里,内核代码中没有对按键平台信息的定义,因此我们需要给他补充完整。首先将按键驱动编译到内核: Devi..._linux key_power的值

随便推点

题解 P2058 【海港】_#define n300001 为什么定义300001-程序员宅基地

文章浏览阅读799次。看到大佬们的题解思路这么nb,蒟蒻表示并没有看懂= =。于是蒟蒻决定提供一种新思路:我们注意到数据范围,发现二维数组并不可取,但是我们又注意到∑ki≤3∗105∑ki≤3∗105\sum{k_i}≤3*10^5,所以采取一种新的思想:将所有人都读在一个一维数组里面:使用一个队列qqq来存储第iii艘船上人数的范围,即qqq存储的是两个数[l,r][l,r][l,r],其中表示第iii艘船上的人..._#define n300001 为什么定义300001

R语言:自定义函数_r中如何用function去定义一个新的函数-程序员宅基地

文章浏览阅读9.3w次,点赞19次,收藏107次。R语言系列:自定义function在用R语言做各种事物时,用户自定义函数是不可或缺的。这期来讲讲如何自定义R的function。首先要介绍的是function的基本框架:myfunction <- function(arg1, arg2, ... ){statementsreturn(object)}函数名称为myfunction arg1,arg2 为参数statements 为函数_r中如何用function去定义一个新的函数

什么是高防云服务器-程序员宅基地

文章浏览阅读2k次。DDoS攻击威胁是很多网站都无法回避的问题,频率高、危害广、防御难度大,随着企业对网站安全的重视程度不断提高,部署专业的DDoS防御服务已经成为一种共识。通常来说,部署DDoS防御的方式主要有2种:购买高防服务器或采用DDoS高防服务,下面就以西部数码DDoS高防服务产品为例,说说这两种防御方式的区别。高防云服务器,顾名思义,就是本身就可以提供专业DDoS防御功能的云服务器,它采用的多为集群防御的方式,攻击是直接打在服务器上的。开通高防云服务器后,可独享该服务器的配置、带宽与防护资源,基础防御峰值为30G_高防云

Oracle 安装失败后如何卸载干净 以及 登陆时 ORA-01017_oracle21c安装出现错误 怎么清理干净-程序员宅基地

文章浏览阅读768次。我在安装失败了两次后,终于安装成功。期间第一次遇到的问题忘记了,第二次是因为安装路径上有中文。失败后的卸载1.进入安全模式2.删除相关文件夹f盘appc盘program file中oracle文件夹3.windows+r,输入msconfig4.c盘用户祁名烦temp文件夹下删除Oracle相关5."C:\ProgramData\Microsoft\Windows\Start Me..._oracle21c安装出现错误 怎么清理干净

Linux的基本命令(1)-程序员宅基地

文章浏览阅读2.3k次。以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式种,你可以使用【上下左右】按键移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、贴上】来处理你的文件数据。(**在正常模式下,我们可以使用快捷键。**)**在这个模式下,程序员可以输入内容。**按下【i,I,o,O,a,A,r,R】等任何一个字母之后才会进入编辑模式,一般来说按i即可。在这个模式种,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的。、

Leetcode 401:二进制手表(最详细的解法!!!)_二进制手表顶部有 4 个 led 代表小时(0-11),底部的 6 个 led 代表分钟(0-59)-程序员宅基地

文章浏览阅读2.2k次。二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。 例如,上面的二进制手表读取 “3:25”。给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。案例:输入: n = 1返回: [&amp;quot;1:00&amp;quot;, &amp;quot;2:00&amp;quot;_二进制手表顶部有 4 个 led 代表小时(0-11),底部的 6 个 led 代表分钟(0-59)。

推荐文章

热门文章

相关标签