一、Firewall

1. 从CentOS7开始,默认使用firewall来配置防火墙,没有安装iptables(旧版默认安装)。

2. firewall的配置文件是以xml的格式,存储在 /usr/lib/firewalld/ 和 /etc/firewalld/ 目录中。

 (1)系统配置目录,目录中存放定义好的网络服务和端口参数,系统参数,不要修改。

  1. 1 /usr/lib/firewalld/
  2. 2 /usr/lib/firewalld/services
  3. 3 /usr/lib/firewalld/zones

 (2)用户配置目录

  1. 1 /etc/firewalld/
  2. 2 /etc/firewalld/services
  3. 3 /etc/firewalld/zones

3. 特性

(1)firewalld是centos7的一大特性,最大的好处有两个:

  • 支持动态更新,不中断用户连接
  • 加入了防火墙的“zone”概念 ,可以理解为 firewalld 的单位、规则集:

   1️⃣ drop(丢弃),任何接受的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网路连接。

   2️⃣ block(限制),任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒绝。

   3️⃣ public(公共),在公共区域内使用,不能相信网络内的其他计算机不会对你的计算机造成危害,只能接收经过选取的连接。  

  4️⃣ external(外部),特别是为路由器启动了伪装功能的外部网。你不能相信来自网络的其他计算机,不能相信他们不会对你的计算机造成危害,只能接收经过选择的连接。

   5️⃣ dmz(非军事区),用于你的非军事区内的电脑,此区域内可公开访问,可以有限的进入你的内部网络,仅仅接收经过选择的连接。

   6️⃣ work(工作),用于工作区。你可以基本相信网络内的其他计算机不会危害到你。仅仅接收经过选择的连接。

   7️⃣ home(家庭),用于家庭网络。你可以基本相信网络内的其他计算机不会危害到你。仅仅接收经过选择的连接。

   8️⃣ internal(内部),用于内部网络。你可以基本相信网络内的其他计算机不会危害到你。仅仅接收经过选择的连接。

   9️⃣ trusted(信任),可接受所有的网络连接。

   说明:firewalld 的缺省区域是 public。

(2)firewalld有图形界面和工具界面

(3)firewalld的字符界面管理工具是 firewall-cmd

二、配置防火墙

设置防火墙的方式有两种:firewall命令 、 直接修改配置文件

1. firewall命令

例如:对外开放/停止3306端口,供外部的计算机访问,该命令方式添加的端口,会在/etc/firewalld/zones/public.xml配置文件中得到体现;

  1. #开放3306端口
  2. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  3. #停止开放3306端口
  4. firewall-cmd --zone=public --remove-port=3306/tcp --permanent
  5. #别忘记重启防火墙使更改生效
  6. systemctl restart firewalld

说明:

  • firewall-cmd:Linux中提供的操作firewall的工具。
  • --zone:指定作用域。
  • --add-port=3306/tcp:添加的端口,格式为:端口/通讯协议。
  • --permanent:表示永久生效(会将更改写到配置文件里面去),没有此参数重启后会失效。

2. 直接修改配置文件

比如:修改 /etc/firewalld/zones/public.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <zone>
  3. <short>Public</short>
  4. <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  5. <service name="ssh"/>
  6. <service name="dhcpv6-client"/>
  7. <port protocol="tcp" port="20"/>
  8. <port protocol="tcp" port="21"/>
  9. <port protocol="tcp" port="22"/>
  10. <port protocol="tcp" port="80"/>
  11. <port protocol="tcp" port="8888"/>
  12. <port protocol="tcp" port="39000-40000"/>
  13. <port protocol="tcp" port="3306"/>
  14. </zone>

如上,需要开放的端口,已经添加再public这个区域里了。

三、firewall常用命令

1. 查看状态

  1. systemctl status firewalld firewall-cmd --state

2. 启动、停止、重启

  1. # 启动
  2. systemctl start firewalld
  3. # 停止
  4. systemctl stop firewalld
  5. # 重启
  6. systemctl restart firewalld

3. 开机自启动

  1. # 设置开机自启动
  2. systemctl enable firewalld
  1. # 关闭开机自启动
  2. systemctl disable firewalld

4. 查看防火墙规则

  1. firewall-cmd --list-all

四、其他命令

1. 其他基本命令

  1. firewall-cmd --version #查看版本
  2. firewall-cmd --help #查看帮助
  3. firewall-cmd --panic-on #拒绝所有包
  4. firewall-cmd --panic-off #取消拒绝状态
  5. firewall-cmd --query-panic #查看是否拒绝
  6. firewall-cmd --reload #重新加载防火墙,并不中断用户连接(firewalld特性之一动态添加规则)
  7. firewall-cmd --complete-reload #重新加载防火墙并中断用户连接(类似于重启服务)

2. zone相关

  1. firewall-cmd --get-zones         #显示支持的区域列表
  2. firewall-cmd --get-active-zones #查看当前的区域
  3. firewall-cmd --get-default-zone #查看默认区域
  4. firewall-cmd --set-default-zone=home #设置默认区域为 home
  5. firewall-cmd --zone=public --list-interfaces #显示显示公共区域(public)所有接口
  6. firewall-cmd --zone=public --list-all #显示公共区域(public)所有设置
  7. firewall-cmd --get-zone-of-interface=ens33 #查看指定接口 ens33 所属区域
  8. firewall-cmd --zone=internal --change-interface=ens33 #临时修改网络接口 ens33 为内部区域(internal),永久修改加上 --permanent 参数
  9. firewall-cmd --zone=public --add-interface=ens37 #为公共区域(public)增加一个接口 ens37

3. service相关

  1. firewall-cmd --get-service #显示服务列表
  2. firewall-cmd --list-service #显示当前服务
  3. firewall-cmd --enable service=ssh #允许SSH服务通过
  4. firewall-cmd --disable service=ssh #禁止SSH服务通过
  5. firewall-cmd --enable service=samba --timeout=600 #临时允许 samba 服务通过 600 秒
  6. firewall-cmd --permanent --zone=internal --add-service=http #添加 http 服务到内部区域(internal)
  7. firewall-cmd --zone=work --add-service=smtp #把 smtp 服务加入工作区域(work)
  8. firewall-cmd --zone=work --remove-service=smtp #从工作区域(work)移除 smtp 服务

4. 地址伪装

  1. firewall-cmd --zone=external --query-masquerade #查询外部区域(external)是否能伪装ip,结果为yes
  2. firewall-cmd --zone=external --add-masquerade #外部区域(external)启用IP伪装(masquerade)
  3. firewall-cmd --zone=external --remove-masquerade #外部区域(external)禁用用IP伪装

5. 端口转发

  1. # 打开端口转发,首先需要打开IP地址伪装
  2. firewall-cmd --zone=external --add-masquerade
  3. # example 1:把外部区域(external)的 22 端口 转发至 3753
  4. firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753
  5. # example 2:把外部区域(external)的 22 端口转发到 192.168.1.20 的同一端口
  6. firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.20
  7. # example 3:把外部区域(external)的 22 端口转发到 192.168.1.20 的 52222 端口
  8. firewall-cmd --zone=external --add-forward-port=22:proto=tcp:toport=52222:toaddr=192.168.1.20

CentOS7防火墙firewall的更多相关文章

  1. CentOS7防火墙firewall相关操作

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...

  2. centos7防火墙--firewall

    centos7的防火墙变成firewall了 systemctl start firewalld.service#启动firewallsystemctl stop firewalld.service# ...

  3. CentOS7 防火墙Firewall常用命令

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disab ...

  4. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  5. CentOS7 防火墙(firewall)的操作命令

    CentOS7 防火墙(firewall)的操作命令 安装:yum install firewalld 1.firewalld的基本使用 启动: systemctl start firewalld 查 ...

  6. Centos7 使用firewall管理防火墙

    一.Centos7使用firewall的管理防火墙 1.firewalld基本使用 启动:systemctl start firewalld 关闭:systemctl stop firewalld 状 ...

  7. Centos7防火墙快速开放端口配置方法

    ▲这篇文章主要为大家详细介绍了Centos7防火墙开放端口的快速方法,感兴趣的小伙伴们可以参考一下! Firewalld服务是红帽RHEL7系统中默认的防火墙管理工具,特点是拥有运行时配置与永久配置选 ...

  8. CentOS7 防火墙设置

    CentOS7 防火墙命令 最近在公司服务器上安装了oracle12c数据库,在用数据库客户端连接的时候,连接不了.最后查找资料的原因是因为oracle的服务端口未开放. 首先还是还是输入以往的开启某 ...

  9. ss_port_change - 一键修改ss配置与Centos7的Firewall策略脚本

    ss_port_change 修改ss配置与Centos7的Firewall策略脚本 注意是否需要修改config路径与ss服务的名 脚本的敏感字用了*代替 项目地址 Github 脚本 #!/bin ...

随机推荐

  1. atroot 的个人博客

    我的个人博客 左上角 MENU 打开导航菜单! 向下滚动查看内容! 为啥我要坚持更新博客 周围有很多小伙伴在问,你写博客会有人看嘛?如果没人看,那岂不是写的就没有意义了吗? 这个问题也一度让我陷入是否 ...

  2. 手动安装selenium包

    1.下载selenium安装包 https://pypi.org/project/selenium 2.解压selenium-3.12.0.tar.gz 3.cmd环境进入到selenium的setu ...

  3. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  4. Bootstrap实战 - 注册和登录

    一.介绍 注册和登录在社交和商业网站中是必不可少的一个部分. 二.知识点 2.1 标签页 2.1.1 基础标签页 标签页的使用与导航栏类似,同时都依赖于基础样式 nav,不同的是附加样式变成了 nav ...

  5. RHCSA 第七天

    1.创建文件,并赋予权限611(两种方式,一种guoa,一种nnn) 2.创建目录,并赋予权限755(两种方式,一种guoa,一种nnn) 3.创建文件,并将文件的属主和属组修改其他用户 4.设置su ...

  6. 【JavaWeb】CVE-2016-4437 Shiro反序列化漏洞分析及代码审计

    Shiro反序列化漏洞分析及代码审计 漏洞简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.   Apache Shiro默认使用了CookieRe ...

  7. 【测试数据】android下CPU核与线程数的关系

    测试方法 24MB的一张4K图片,连续计算5次直方图. 小米mix2s, 高通骁龙 845.4大核,4小核. 数据表格 线程数 绝对时间(s) 累计CPU时间(s) 每线程平均耗时(us) 每线程最大 ...

  8. covid19数据挖掘与可视化实验

    数据说明: 来源: https://www.kesci.com/mw/project/5e68db4acdf64e002c97b413/dataset (ncov) 日期:从2020年1月21日开始 ...

  9. python中的rpc库

    基于xml的rpc调用 rpcserver.py from xmlrpc.server import SimpleXMLRPCServer # python中类的命名方式遵循驼峰命名法 # 1. 没有 ...

  10. 网页中的一键加QQ群、唤起QQ群聊天窗口

    1.进入QQ群官网: https://qun.qq.com 2. 登陆QQ账号,点击加群组件 3. 左侧选择指定的群,右侧会给出一键加群的链接 4. 浏览器访问刚才复制的链接,点击 打开腾讯QQ 5. ...