【Linux安全管理】Firewalld详解
目录
1、与iptables不同
2、配置防火墙
3、firewalld区域概念
4、filewalld 配置生效
5、firewalld服务
firewalld 端口映射
富规则 rich-rule
1、与iptables不同
- firewalld采用区域和服务管理,而不是链式规则
- 动态管理规则,允许更新规则而不破坏原有会话与连接
2、配置防火墙
- firewall-cmd 命令行模式 推荐使用
- firewall-config(如果没装图形化界面就不行)
- vi /etc/firewalld/firewalld.conf
# (查看状态) # firewall-cmd --state#(更新配置) # firewall-cmd --reload
3、firewalld区域概念
zone
- trusted 信任区域 默认允许所有流量传入
- public 公共区域 (默认区域)默认允许ssh 服务 dhcp
- external 外部区域 默认允许ssh其余均拒绝
- home 家庭区域 有ssh, 预定于服务等
- internal 内部区域 默认允许ssh 服务 dhcp服务等
- work 工作区域 默认ssh
- dmz 隔离区
- block 限制区域 默认拒绝所有流量传入
- drop 丢弃区域 默认丢弃所有流量传入
工作原理:
管理数据包时:
1、先根据数据包的源IP进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行; 如果未关联到特定的区域,则按默认区域的规则执行。
2、根据传入的网络接口,进行相应区域的防火墙规则匹配; 如果源地址关联到特定的区域,则按特定区域的规则执行; 如果未关联到特定的区域,则按默认区域的规则执行。
绑定源地址的区域规则> 网卡绑定的区域规则> 默认区域规则
4、filewalld 配置生效
运行时配置:
- 不中断现有连接
- 不能修改服务配置
永久配置
- 不立即生效,除非重启或者重新加载配置
- 不中断现有连接
- 可以修改服务配置
- 注意:添加--permanent选项,表示永久配置,但是需要重启firewalld或者重新加载--reload,如果 不带这个选项,则表示用于设置运行时配置,这些规则在系统重启,firewalld重启,或者重新加载后失 效,需要将运行时配置永久生效,则需要将运行时配置规则写入配置文件中,执行firewall-cmd -- runtime-to-permanent。
5、firewalld服务
# systemctl status firewalld# systemctl start firewalld# systemctl enable firewalld
# 显示所有可用区域 # firewall-cmd --get-zones# 显示当前默认区域 # firewall-cmd --get-default-zone# 设置默认区域 # firewall-cmd --set-default-zone=public# 显示当前使用的区域和对应网卡 # firewall-cmd --get-active-zones# 显示指定接口绑定的区域 # firewall-cmd --get-zone-of-interface=ens33# 为指定接口绑定区域 # firewall-cmd --zone=dmz --add-interface=ens37# 为指定的区域更改绑定的网络接口 # firewall-cmd --zone=dmz --change-interface=ens33# 为指定的区域删除绑定的网络接口 # firewall-cmd --zone=dmz --remove-interface=ens37# 查看默认区域设置 # firewall-cmd --list-all# 查看指定的区域设置 # firewall-cmd --zone=dmz --list-all# 显示指定区域可以访问的服务 # firewall-cmd --zone=public --list-services# 显示系统预定义的服务名 # firewall-cmd --get-service# 为指定区域添加允许访问的服务 # firewall-cmd --zone=public --add-service=http# 为指定区域删除允许访问的服务 # firewall-cmd --zone=public --remove-service=http# 添加多个服务 # firewall-cmd --zone=public --add-services={http,https,redis,ssh}# 永久生效,运行时配置结束后统一执行 # firewall-cmd --runtime-to-permanent# 永久生效,需要在设置时加--permanent选项,但是并不是运行时生效,需要重启启动firewalld或者重 新reload # firewall-cmd --permanent --zone=public --add-services=http # firewall-cmd --reload 或者 systemctl restart firewalld# 显示指定域中允许访问的端口 # firewall-cmd --zone=public --list-port# 位指定域中添加允许访问的端口 # firewall-cmd --zone=public --add-port=22/tcp --add-port=80-100/tcp#位指定域中删除允许访问的端口 # firewall-cmd --zone=public --remove-port=22/tcp --remove-port=80-100/tcp
如果执行命令显示success但是效果没有出现,使用firewall-cmd --reload
firewalld 端口映射
# 设置禁止来源IP为192.168.100.134的ip地址访问 # firewall-cmd --add-source=192.168.100.134/24 --zone=drop --类似于iptables中 DROP # firewall-cmd --add-source=192.168.100.134/24 --zone=block --类似于iptables中 REJECT# 设置允许来源IP为192.168.100.134的ip地址访问 # firewall-cmd --add-source=192.168.100.134/24 --zone=trusted# 地址转发端口映射 # firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080# firewall-cmd --zone=public --remove-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.100.134 (在访问添加了这个规则的ip的数据包会转发到192.168.100.134的80端口)
当你修改了http配置文件(改端口为8080,并且重启了httpd),也添加了转发端口映射,查看服务也有http服务,为什么curl还是不通?
因为没对外没有提供相应的8080端口;
虽然系统起的是8080端口,但是对外来说我们的端口是80端口,必须通过80端口连进来,在、才能经过映射访问到8080端口;
所以没添加8080端口,却访问了8080端口是不行的;
如果添加了8080端口,直接用8080端口进行httpd访问,而不是通过连接80端口再经端口映射转发从8080端口进行访问;
富规则 rich-rule
只用firewalld的服务以及端口进行配置的时候限制比较多;为了解决这一问题,所以用富规则;
# 查看帮助手册 # man 5 firewalld.richlanguage# 列出富规则 # firewall-cmd --list-rich-rule# 添加富规则 # firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.100.134" accept' (添加富规则,允许192.168.100.134访问)# firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.100.134" port port=22 protocol=tcp reject' (拒绝来自这个ip的22端口的访问)# 删除富规则 # firewall-cmd --zone=public --remove-rich-rule 'rule family="ipv4" source address="192.168.100.134" forward-port port=80 protocol=tcp to-port=8080 '
请求连接时被拒绝;
【Linux安全管理】Firewalld详解相关推荐
- linux文件权限详解
linux文件权限详解 一.文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限: ...
- Linux磁盘阵列技术详解(二)--raid 1创建
我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还 ...
- linux mingetty 命令详解
linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...
- linux zip 命令详解
功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...
- SVN的Windows和Linux客户端操作详解
SVN的Windows和Linux客户端操作详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Windows客户端操作 1.安装SVN客户端 a>.去官网下载svn软件 ...
- linux zipinfo 命令详解
linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...
- Linux chkconfig命令详解
Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig: ...
- linux uname 命令详解
linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...
- linux mread 命令详解
linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...
- linux sort 命令详解
linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...
最新文章
- myFocus制作焦点图
- 一个nodejs里日志文件的实现
- Linux 金字塔 的shell命令,linux下保留文件系统下剩余指定数目文件的shell脚本
- 深入理解Magento – 第三章 – 布局,块和模板
- 做数仓运维,你必须要认识这个眼观六路耳听八方的“能人”
- 如何判断stdin的数据类型
- 太原理工大学ACM队简介(2018版)
- 深度学习常用性能评价指标
- CST,CET,UTC,GMT,DST,Unix时间戳几种常见时间概述与关系(转)
- SPSS数据录入【SPSS 007期】
- php数组和字符串转换
- bzero和memset函数
- it是什么行业?具体又包括哪些细分领域呢?
- 老鸟分享_云堡垒机、运维堡垒机、运维审计系统、堡垒机能干什么?
- 黄山行之《黄山前山游》
- html 5新增技术,HTML5新增元素,标签总结
- 软件工程基于场景建模 习题
- NOIp初赛模拟题及标准答案(提高组)
- 360极速了浏览器 HTML5的浏览器,360极速浏览器4大HTML5特性 领先全球
- 我的世界服务器npc怎么修改,我的世界NPCmod教程如何设置任务NPC