设为首页 收藏本站
查看: 1849|回复: 0

[经验分享] Centos7-----firewalld详解

[复制链接]

尚未签到

发表于 2018-4-19 13:37:54 | 显示全部楼层 |阅读模式
  Centos7-----firewalld详解
  概述:
  Filewalld(动态防火墙)作为redhat7系统中变更对于netfilter内核模块的管理工具;
  iptables service 管理防火墙规则的模式(静态):用户将新的防火墙规则添加进 /etc/sysconfig/iptables 配置文件当中,

  再执行命令 /etc/init.d/iptables>  然后重新完整地加载所有新的防火墙规则,如果加载了防火墙的模块,需要在重新加载后进行手动加载防火墙的模块;
  firewalld 管理防火墙规则的模式(动态):任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables 即可。
  还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables 作为防火墙规则管理入口。
  firewalld 使用 python 语言开发,在新版本中已经计划使用 c++ 重写 daemon 部分。
DSC0000.jpg

  便于理解:
  相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。
  简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,
  从而实现防火墙策略之间的快速切换。例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。
  按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。
  当前,我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;
  在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。
  在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,
  然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。
  firewalld中常见的区域名称(默认为public);
  区域:
  firewalld将网卡对应到不同的区域(zone),zone 默认共有9个:block(拒绝)
  block(拒绝) dmz(非军事化) drop(丢弃) external(外部) home(家庭) internal(内部) public(公开) trusted(信任) work(工作区).
  不同的区域之间的差异是其对待数据包的默认行为不同,firewalld的默认区域为public;
  文件:
  /usr/lib/firewalld/services/   :firewalld服务默认在此目录下定义了70+种服务供我们使用,格式:服务名.xml;
  /etc/firewalld/zones/     : 默认区域配置文件,配置文件中指定了编写完成的规则(规则中的服务名必须与上述文件名一致);
  分为多个文件的优点 :
  第一,通过服务名字来管理规则更加人性化,
  第二,通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式;
  命令语法:firewall-cmd [--zone=zone] 动作 [--permanent]
  注:如果不指定--zone选项,则为当前所在的默认区域,--permanent选项为是否将改动写入到区域配置文件中
  firewall的状态:
  --state               ##查看防火墙的状态
  --reload              ##重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置
  --complete-reload     ##重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用)
  --panic-on                ##紧急模式,强制关闭所有网络连接,--panic-off是关闭紧急模式
  动作中查看操作:
  --get-icmptypes           ##查看支持的所有ICMP类型
  --get-zones               ##查看所有区域
  --get-default-zone        ##查看当前的默认区域
  --get-active-zones        ##查看当前正在使用的区域
  --get-services            ##查看当前区域支持的服务
  --list-services           ##查看当前区域开放的服务列表
  --list-all                ##查看此区域内的所有配置,类似与iptables -L -n
  更改区域操作:
  --set-default-zone=work                   ##更改默认的区域
  新建--add或删除--remove规则:
  --add-interface=eth0                  ##将网络接口添加到默认的区域内
  --add-port=12222/tcp   --permanent        ##添加端口到区域开放列表中
  --add-port=5000-10000/tcp --permanent     ##将端口范围添加到开放列表中;
  --add-service=ftp --permanent         ##添加服务到区域开放列表中(注意服务的名称需要与此区域支持的服务列表中的名称一致)
  --add-source=192.168.1.1              ##添加源地址的流量到指定区域
  --remove-source=192.168.1.1           ##删除源地址的流量到指定区域
  --change-interface=eth1               ##改变指定的接口到其他区域
  --remove-service=http             ##在home区域内将http服务删除在开放列表中删除
  --add-masquerade                  ##开启SNAT(源地址转换)
  --query-masquerade                    ##查询SNAT的状态
  --remove-interface=eth0               ##将网络接口在默认的区域内删除
  --query-interface=eth0              ##确定该网卡接口是否存在于此区域
  --add-forward-port=port=513:proto=tcp:toport=22:toaddr=192.168.100.101        ##端口转发
  Rich规则:
  当基本firewalld语法规则不能满足要求时,可以使用以下更复杂的规则
  .rich-rules 富规则,功能强,表达性语言,查看帮助:man 5 firewalld.richlanguage
  .rich规则比基本的firewalld语法实现更强的功能,不仅实现允许/拒绝,还可以实现日志syslog和auditd,也可以实现端口转发,伪装和限制速率
  rich规则实施顺序有以下四点
  a.该区域的端口转发,伪造规则
  b.该区域的日志规则
  c.该区域的允许规则
  d.该区域的拒绝规则
  每个匹配的规则都生效,所有规则都不匹配,该区域默认规则生效;
  Rich规则语法:
  Rich规则选项:
  --add-rich-rule=’rule’              ##新建rich规则
  --remove-rich-rule=’rule’           ##删除rich规则
  --query-rich-rule=’rule’            ##查看单条rich规则
  --list-rich-rules                   ##查看rich规则列表
  Rich规则示例:
  #拒绝从192.168.0.11的所有流量
  firewall-cmd  --permanent --zone=classroom  --add-rich-rule=‘rule family=ipv4  source address=192.168.0.11/32  reject‘
  #限制每分钟只有两个连接到ftp服务
  firewall-cmd  --add-rich-rule=’rule service name=ftp limitvalue=2/m  accept’
  #抛弃esp协议的所有数据包
  firewall-cmd  --permanent  --add-rich-rule=‘rule protocol value=esp drop‘
  #接受所有192.168.1.0/24子网端口范置7900-7905的TCP流量
  firewall-cmd  --permanent --zone=vnc  --add-rich-rule=‘rule family=ipv4 source address=192.168.1.0/24  port  port=7900-7905 protocol=tcp accept‘
  ##开启SNAT
  firewall-cmd   --permanent --add-rich-rule=‘rule family=ipv4 source address=192.168.0.0/24 masquerade‘
  ##使用rule规则实现端口转发,to-addr选项如果不指定默认转发到本机
  firewall-cmd --permanent  --add-rich-rule='rule family=ipv4 source address=192.168.100.0/24 forward-port port=80 protocol=tcp to-port=8080 to-addr=192.168.100.100'

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-449000-1-1.html 上篇帖子: centos7.4搭建Memcached(1) 下篇帖子: linux-centos学习笔记(草排)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表