一.前言

Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

区域对于 firewalld 来说是一大特色,但是对于我们使用Centos7一般是在服务器上,需要切换zone的需求比较少,所以本文不做介绍了,网上资料也比较多,大家可以去百度找找资料。

二.操作与配置

1.服务操作

启动服务:

systemctl start firewalld

这里不用担心启用了防火墙以后无法通过ssh远程,22端口默认加入了允许规则

停止服务:

systemctl stop firewalld

重启服务:

systemctl restart firewalld

查看服务状态:

systemctl status firewalld

2.配置文件说明

firewalld 存放配置文件有两个目录,/usr/lib/firewalld/etc/firewalld,前者存放了一些默认的文件,后者主要是存放用户自定义的数据,所以我们添加的service或者rule都在后者下面进行。

server 文件夹存储服务数据,就是一组定义好的规则。

zones 存储区域规则

firewalld.conf 默认配置文件,可以设置默认使用的区域,默认区域为 public,对应 zones目录下的 public.xml

三.命令

这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。

1.重载防火墙配置

firewall-cmd --reload

2.查看防火墙运行状态

firewall-cmd --state

3.查看默认区域的设置

firewall-cmd --list-all

4.应急命令

firewall-cmd --panic-on  # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
firewall-cmd --panic-off  # 取消应急模式,但需要重启firewalld后才可以远程ssh
firewall-cmd --query-panic  # 查看是否为应急模式

5.服务

firewall-cmd --add-service=<service name> #添加服务
firewall-cmd --remove-service=<service name> #移除服务

6.端口

firewall-cmd --add-port=<port>/<protocol> #添加端口/协议(TCP/UDP)
firewall-cmd --remove-port=<port>/<protocol> #移除端口/协议(TCP/UDP)
firewall-cmd --list-ports #查看开放的端口

7.协议

firewall-cmd --add-protocol=<protocol> # 允许协议 (例:icmp,即允许ping)
firewall-cmd --remove-protocol=<protocol> # 取消协议
firewall-cmd --list-protocols # 查看允许的协议

8.允许指定ip的所有流量

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"

例:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" accept" # 表示允许来自192.168.2.1的所有流量

9.允许指定ip的指定协议

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" protocol value="<protocol>" accept"

例:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp" accept" # 允许192.168.2.208主机的icmp协议,即允许192.168.2.208主机ping

10.允许指定ip访问指定服务

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" service name="<service name>" accept"

例:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" service name="ssh" accept" # 允许192.168.2.208主机访问ssh服务

11.允许指定ip访问指定端口

firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"

例:

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" port protocol="tcp" port="22" accept" # 允许192.168.2.1主机访问22端口

12.将指定ip改为网段

8-11 的各个命令都支持 source address 设置为网段,即这个网段的ip都是适配这个规则:

例如:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" accept"

表示允许192.168.2.0/24网段的主机访问22端口 。

13.禁止指定ip/网段

8-12 各个命令中,将 accept 设置为 reject表示拒绝,设置为 drop表示直接丢弃(会返回timeout连接超时)

例如:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"

表示禁止192.168.2.0/24网段的主机访问22端口 。

四.参考资料

firewalld防火墙详解 by xuad88.

Centos7 防火墙 firewalld 实用操作相关推荐

  1. Linux centos7防火墙firewalld相关操作

    systemctl stop firewalld.service:关闭防火墙服务 systemctl start firewalld.service:开启防火墙服务 systemctl status ...

  2. Linux7查看防火墙日志,Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢...

    Linux入门教程:CentOS7防火墙firewalld配置,防火墙日志在哪呢 启动: systemctl start firewalld 停止: systemctl stop firewalld ...

  3. linux firewalld配置文件,Linux CentOS7防火墙firewalld使用说明

    文章目录 [隐藏] firewalld配置文件 firewalld规则 firewalld的9个zone介绍 firewalld zone相关命令的用法 firewalld service介绍 Cen ...

  4. Linux:centos7防火墙开放端口操作

    Centos升级到7之后,发现无法使用iptables控制Linux的端口,google之后发现Centos 7使用firewalld代替了原来的iptables. 但是在CentOS7中也可以ipt ...

  5. centos7防火墙firewalld配置,干货直接上手

    2019独角兽企业重金招聘Python工程师标准>>> [流程简介] centos7开始使用firewalld防火墙,防火墙规则在配置文件中加载,因此修改防火墙只需要[修改配置文件] ...

  6. CentOS7防火墙firewalld和iptable的设置和使用

    再部署了服务器环境之后,服务器正常启动,日志也正常打印,但是服务不能访问,对问题逐一进行排查,最后发现是服务器防火墙设置的问题.于是将防火墙的一些设置方法总结记录如下: 1.firewalld的基本使 ...

  7. CentOS7防火墙firewalld开放指定端口

    查看防火墙开放端口: firewall-cmd --list-port 开放端口: firewall-cmd --zone=public --add-port=80/tcp --permanent 命 ...

  8. Linux中防火墙firewalld

    Linux中防火墙firewalld 一.什么是防火墙 二.防火墙的作用 三.Linux中的防火墙分类 四.firewalld防火墙 1. 区域 2.运行模式和永久模式 五.防火墙设置 1.防火墙的启 ...

  9. CentOS7防火墙服务(Firewalld)关闭实战

    CentOS7防火墙服务(Firewalld)关闭实战 目录 CentOS7防火墙服务(Firewalld)关闭实战 #查看linux服务器防火墙状态

最新文章

  1. 如何在div中将绝对定位的元素居中?
  2. 网站收录的提升离不开“方法”和“坚持”
  3. 【转】关于HTTP中文翻译的讨论
  4. 『PPYOLO tiny尝鲜』基于PaddleDetection的人脸疲劳检测
  5. Java与iOS对话:Java对象与Apple plist序列化
  6. 转3d视图快捷键_最全Solidworks快捷键,值得收藏!
  7. 【bzoj1738】[Usaco2005 mar]Ombrophobic Bovines 发抖的牛 Floyd+二分+网络流最大流
  8. android serviceconnection unbind流程,Android unbindService 流程分析
  9. 漫步线性代数一——引言
  10. 使用 ‘In Place’ 直接从MySQL 5.0升级至5.7
  11. 微软开放Windows Phone 7中文开发中心
  12. 【数据结构】银行排队取票机的原理是什么?详解队列
  13. OSChina 周四乱弹 ——小小编辑去死远点了
  14. PDF转换器可以做到PDF转Office,TXT,HTM,PDF文件;PDF合并拆分,压缩,加密解密!
  15. 微信小程序:热门表情包+头像+壁纸自动采集多分类微信小程序
  16. 07中华小姐大赛落幕 20岁佳丽曾光夺冠_longware_新浪博客
  17. 2022年新一代最强开源UI自动化测试神器 ——Playwright(三)
  18. 《PHP基于GD库制作图形验证码》
  19. 使用FFmepg进行视频转码、视频格式转换、图片提取等!
  20. 刚构桥的优缺点_桥的类型以及适用条件,优缺点

热门文章

  1. [Mongodb]删除指定字段
  2. Path Sum II leetcode java
  3. SQLyog中TAB键设置四个空格的步骤
  4. __init__()
  5. SimpleDateFormat线程不安全
  6. Javaweb学习笔记——(五)——————DOMXML目录
  7. Django CMS教程一:安装
  8. Cacti 显示自定义的 SNMP 数据
  9. 《SAP CRM管理与实施指南》一一2.3 小结
  10. Aix6.1安装openssh