一、firewall

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

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

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

 /usr/lib/firewalld/
/usr/lib/firewalld/services
/usr/lib/firewalld/zones

 (2)用户配置目录

 /etc/firewalld/
/etc/firewalld/services
/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中的对应配置文件中得到体现

#开放
firewall-cmd --zone=public --add-port=/tcp --permanent #删除
firewall-cmd --zone=public --remove-port=/tcp --permanent #别忘记重启防火墙
systemctl restart firewalld

说明:

  • firewall-cmd:Linux中提供的操作firewall的工具。
  • –zone:指定作用域。
  • –add-port=3306/tcp:添加的端口,格式为:端口/通讯协议。
  • –permanent:表示永久生效,没有此参数重启后会失效。

2、直接修改配置文件

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

<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<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>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<port protocol="tcp" port=""/>
<port protocol="tcp" port=""/>
<port protocol="tcp" port=""/>
<port protocol="tcp" port=""/>
<port protocol="tcp" port=""/>
<port protocol="tcp" port="39000-40000"/>
<port protocol="tcp" port=""/>
</zone>

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

三、firewall常用命令

1、查看状态

service firewalld status 

systemctl status firewalld

firewall-cmd --state

2、启动、停止、重启

# 启动
service firewalld start

systemctl start firewalld # 停止
service firewalld stop

systemctl stop firewalld # 重启
service firewalld restart

systemctl restart firewalld

3、开机自启动

# 关闭开机自启动
systemctl disable firewalld # 开启开机自启动
systemctl enable firewalld

4、查看防火墙规则

firewall-cmd --list-all

四、其他命令

1、其他基本命令

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

2、zone相关

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

3、service相关

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

4、地址伪装

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

5、端口转发

# 打开端口转发,首先需要打开IP地址伪装
firewall-cmd --zone=external --add-masquerade # example :把外部区域(external)的 端口 转发至
firewall-cmd --zone=external --add-forward-port=:porto=tcp:toport= # example :把外部区域(external)的 端口转发到 192.168.1.20 的同一端口
firewall-cmd --zone=external --add-forward-port=:porto=tcp:toaddr=192.168.1.20 # example :把外部区域(external)的 端口转发到 192.168.1.20 的 端口
firewall-cmd --zone=external --add-forward-port=port=:proto=tcp:toport=:toaddr=192.168.1.20

Centos7 配置防火墙 firewall的更多相关文章

  1. Linux Centos7配置防火墙开启端口

    在使用centos7安装完mysql.tomcat.nginx后,都需要配置防火墙才能正常访问. 下面系统的学习一下防火墙的配置. centos7默认使用firewall,需要关闭,然后使用iptab ...

  2. CentOS7配置防火墙

    使用命令的方式配置 ##Add firewall-cmd --permanent --zone=public --add-port=/tcp ##Remove firewall-cmd --perma ...

  3. Centos7,配置防火墙,开启端口

    原文链接:https://blog.csdn.net/u013410747/article/details/61696178 适用于CentOS 7 64位的指令: .查看已开放的端口(默认不开放任何 ...

  4. Centos7安装防火墙firewall

    安装 1.下载 yum install -y firewalld yum install -y firewall-config 2.启动 systemctl start firewalld # 启动 ...

  5. Centos7:配置防火墙

    firewalld的基本使用 启动: systemctl start firewalld 关闭:systemctl stop firewalld 查看状态: systemctl status fire ...

  6. CentOS7.3防火墙firewalld简单配置

    今天安装了centos7.3, 想用iptables的save功能保存规则的时候发现跟rhel不一样了,  后来度娘说centos用的是firewalld而不是iptables了, 平时工作都是用re ...

  7. linux配置防火墙,开启端口

    Centos7,配置防火墙,开启端口 1.查看已开放的端口(默认不开放任何端口) firewall-cmd --list-ports 2.开启80端口 firewall-cmd --zone=publ ...

  8. Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables

    今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通能够ping通.于是就去看防火墙, ...

  9. CentOS7 下使用 Firewall防火墙系统封禁允许IP和端口的访问 端口转发 IP转发方法

    CENTOS7的防火墙系统默认已经从iptable改成了firewall,使用方法也有所不同,下面是详细介绍 一.管理端口 列出 dmz 级别的被允许的进入端口 # firewall-cmd --zo ...

随机推荐

  1. Python之爬虫-酷6视频

    Python之爬虫-酷6视频 #!/usr/bin/env python # -*- coding:utf-8 -*- import re import requests response = req ...

  2. Python和Java的语法对比,语法简洁上python的确完美胜出

    Python是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP.Python的设计哲 ...

  3. HUAS Summer Contest#4 D题 DP

    Description Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了.要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的 ...

  4. admin源码之url设计

    如何实现批量设计url? 1.创建Django项目 2.新建app01 和 app02 3.在models.py中创建模型 4.在settings.py中完成数据库配置.app配置等 5.数据库迁移 ...

  5. 使用HTML,CSS快速导出数据到Excel

    在应用中经常会遇到要从系统或数据库中导出数据平面文件,一般是导出到txt,csv或excel.txt和csv一般用在系统间的数据交换, 而excel一般有较好的显示效果,可以按照一定的模板导出,导出就 ...

  6. Linux虚拟机安装学习笔记

    一.Linux系统的安装1.VMwaer虚拟机的安装使用 官方下载软件地址:www.vmwaer.com 安装的虚拟机可以与现实的计算机进行通信 安装虚拟主机可以随意定制硬件安装配置建议: CPU:1 ...

  7. CookiesReader

    CookiesReader "use strict"; /** * * @author xgqfrms * @license MIT * @copyright xgqfrms * ...

  8. poj1984并查集的相对偏移

    #include<stdio.h>//典型题 #include<math.h> #define N 40010 struct node { int x,y,z; }pre[N] ...

  9. 跨域请求Ajax(POST)处理方法

    getXSSAjax(function() {  //跨域请求        that.ajaxDara(self);}, (bs_tita.webapi || "http://webapi ...

  10. MeepoPS基本使用方法

    MeepoPS基本使用 MeepoPS是Meepo PHP Socket的缩写. 旨在提供高效稳定的由纯PHP开发的多进程SocketService. MeepoPS可以轻松构建在线实时聊天, 即时游 ...