===============================================

2019/4/15_第1次修改                       ccb_warlock

===============================================

由于一直使用centos7的环境,所以接触的防火墙比较多的是firewalld而不是iptable,之前一直没有好好总结过firewalld的用法,这次做个整理。

我将firewall-cmd命令的操作分成了2部分:常用和其他。其中常用是我在最近几年使用centos7时用的次数较多的操作。


一、常用操作

1)重新加载配置

firewall-cmd --reload

2)查看所有配置

firewall-cmd --list-all

3)查看当前开放的端口(允许任意IP访问)

firewall-cmd --zone=public --list-ports

4)开放指定端口(允许任意IP访问)

以开放80端口为例

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效

5)移除端口(允许任意IP访问的端口)

以撤销80端口的开放为例

firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效

6)查看允许指定IP访问端口的规则

firewall-cmd --zone=public --list-rich-rules

7)开放指定端口(只允许指定IP访问)

以“只允许192.168.1.1的主机连接3306端口”为例

firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent
firewall-cmd --reload

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效

8)移除规则(只允许指定IP访问的端口)

以“移除只允许192.168.1.1的主机连接3306端口”为例

firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="3306" accept" --permanent
firewall-cmd --reload

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效

9)移除默认的ssh服务

移除默认的ssh服务前,先确认是否已经额外开放了22端口,否则会导致无法使用ssh远程连接。

firewall-cmd --remove-service=ssh --permanent
firewall-cmd --reload

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效

10)查看某个端口是否开放

以检查80端口为例(yes:开放;no:未开放)

firewall-cmd --zone=public --query-port=80/tcp

11)TCP端口转发

# 允许防火墙伪装IP

firewall-cmd --add-masquerade

# 将本地80端口的流量转发到192.168.1.1的80端口

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.1:toport=80 --permanent

PS. --permanent为永久生效,没有此参数centos重启后该配置将失效


二、其它操作

查看版本:firewall-cmd --version

查看帮助: firewall-cmd --help

查看状态: firewall-cmd --state

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic


参考资料:

1.https://www.cnblogs.com/moxiaoan/p/5683743.html

2.https://blog.csdn.net/qguanri/article/details/51673845

centos7 Firewalld操作集合的更多相关文章

  1. CentOS7 常用命令集合

    CentOS7 常用命令集合 文件与目录操作 touch test.txt: 创建一个文本文件 文本内容处理 查询操作 压缩.解压 yum安装器 网络相关 系统相关 XSheel 5相关操作 窗体快捷 ...

  2. centos7常用命令集合

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   CentOS7 常用命令集合 这两天一直在对CentOS 7.2进行初体验,各种学习命令肿么用,不过其实大多和DOS是一 ...

  3. 【Linux】CentOS7 常用命令集合

    CentOS7 常用命令集合 常用命令 文件与目录 操作命令解析 cd /home 进入 ‘/home’ 目录cd .. 返回上一级目录cd ../.. 返回上两级目录cd - 返回上次所在目录cp ...

  4. 操作集合的工具类:Collections

    Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序.查询和修改等操作,还提供了将集合对象置为不可变.对集合对象实现同步控制等方法 ...

  5. 操作集合的工具类Collections

    1       操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...

  6. Java8新特性 1——利用流和Lambda表达式操作集合

    Java8中可以用简洁的代码来操作集合,比如List,Map,他们的实现ArrayList.以此来实现Java8的充分利用CPU的目标. 流和Lambda表达式都是Java8中的新特性.流可以实现对集 ...

  7. 09_Java8操作集合的一些新特性

    [使用forEach()结合Lambda表达式遍历集合] public class ForEachDemo { public static void main(String[] args) { Col ...

  8. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  9. jquery的radio和checkbox的标签的操作集合

    jquery的radio和checkbox的标签的操作集合: $("input[name='radio_name'][checked]").val(); //选择被选中Radio的 ...

随机推荐

  1. Some Interesting Problems(持续更新中)

    这种题目详解,是“一日一测”与“一句话题解”栏目所无法覆盖的,可能是考试用题,也可能是OJ题目.常常非常经典,可以见微知著.故选其精华,小列如下. T1:fleet 给定一个序列,询问[L,R]间有多 ...

  2. idea js改来改去无效问题的解决

    不是idea的问题,问题在Chrome上,设置:

  3. prototype和__proto__区别

    prototype和__proto__分别是显式原型和隐式原型,直接上代码吧: function person(){ this.age = 12; } person.prototype; //Obje ...

  4. JVM总结(二):JVM的内存分配策略

    这节我们总结一下JVM中的内存分配策略.目录如下: 内存分配策略 对象优先在新生代Eden分配 大对象直接进入老年代 长期存活的对象将进入老年代 动态对象年龄判定 空间分配担保 内存分配策略 Java ...

  5. 浅谈分词算法(3)基于字的分词方法(HMM)

    目录 前言 目录 隐马尔可夫模型(Hidden Markov Model,HMM) HMM分词 两个假设 Viterbi算法 代码实现 实现效果 完整代码 参考文献 前言 在浅谈分词算法(1)分词中的 ...

  6. JavaScript 数字转汉字+element时间选择器快速选择

    window.CN = { : '一', : '二', : '三', : '四', : '五', : '六', : '七', : '八', : '九', : '零' } window.LEVEL = ...

  7. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  8. ASP.NET MVC中的Session设置

    最近在ASP.NET MVC项目中碰到这样的情况:在一个controller中设置了Session,但在另一个controller的构造函数中无法获取该Session,会报"System.N ...

  9. C# 对图片加水印

    using System; using System.Collections; using System.Data; using System.Linq; using System.Web; usin ...

  10. sql 把多列内容合并

    这个语句不完整.应该是这样:stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'') as ’别名‘这一整句的作用是 ...