详解firewall的规则设置与命令(白名单设置)

一. 设置firewall规则

例1:对外暴露8080端口

firewall-cmd --permanent --add-port=8080/tcp

例2:使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问

#添加规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"

#reload使生效
firewall-cmd --reload

例3:端口转发,将到本机的3306端口的访问转发到192.168.1.1服务器的3306端口

# 开启伪装IP
firewall-cmd --permanent --add-masquerade
# 配置端口转发
firewall-cmd --permanent --add-forward-port=port=3306:proto=tcp:toaddr=192.168.1.2:toport=13306

注意:如果不开启伪装IP,端口转发会失败;其次,要确保源服务器上的端口(3306)和目标服务器上的端口(13306)是开启的。

二. firewall命令

1.启动, 停止, 重启firewalld

1. 停止

systemctl stop firewalld.service

2. 启动

systemctl start firewalld.service 

3. 重启

systemctl restart firewalld.service

4. 查看状态:

systemctl status firewalld 

5.禁止firewall开机启动

systemctl disable firewalld

6. 设置开机启用防火墙:

systemctl enable firewalld.service

2.查看firewall规则与状态

1. 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

firewall-cmd --state    

2. 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)

firewall-cmd --list-all

3. 查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)

firewall-cmd --list-all-zones 

4. 重新加载配置文件

firewall-cmd --reload

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

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

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

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

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

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

4. 那怎么开启一个端口呢

1. 添加(--permanent永久生效,没有此参数重启后失效)

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

2. 重新载入(修改规则后使其生效)

firewall-cmd --reload

3. 查看

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

4. 删除

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

因为在/usr/lib/firewalld/services/中事先定义了ssh.xml的相应的规则

5. systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解CentOS7防火墙管理firewalld

    学习apache安装的时候需要打开80端口,由于centos 7版本以后默认使用firewalld后,网上关于iptables的设置方法已经不管用了,想着反正iptable也不太熟悉,索性直接搬官方文档,学习firewalld了,好像比iptables要简单点了. 官方文档地址:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewal

  • CentOS7下Firewall防火墙配置用法详解(推荐)

    centos 7中防火墙是一个非常的强大的功能了,但对于centos 7中在防火墙中进行了升级了,下面我们一起来详细的看看关于centos 7中防火墙使用方法. FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具.它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙规则的接口. 以前的 system-config-firewall/lokkit 防火墙模型是静态

  • centos7中firewall防火墙命令详解

    为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下. 如果小伙伴也准备在vultr上买vps  在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3B 会的到 20$ 的优惠  也就可以免费使用4个月 如果你的系统上没有安装使用命令安装 #yum install firewalld //安装firewalld 防火墙 开启服务 # systemctl start fir

  • CentOS 7下用firewall-cmd控制端口与端口转发详解

    一.firewalld 守护进程 firewall-cmd命令需要firewalld进程处于运行状态.我们可以使用systemctl status/start/stop/restart firewalld来控制这个守护进程.firewalld进程为防火墙提供服务. 当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效.可以通过两种方式来激活最新配置systemctl restart firewalld和firewall-cmd --reload两种方式,前一种是重启f

  • 使用iptable和Firewalld工具来管理Linux防火墙连接规则

    防火墙 防火墙是一套规则.当数据包进入或离开受保护的网络空间时,将根据防火墙规则测试数据包的内容(特别是有关其来源.目标和计划使用的协议的信息),以确定是否应该允许数据包通过.下面是一个简单的例子: 防火墙可以根据协议或基于目标的规则过滤请求. 一方面,iptables是管理Linux机器上防火墙规则的工具. 另一方面,firewalld也是管理Linux机器上防火墙规则的工具. 你对此有意见吗?如果我告诉你外面还有另一个工具,叫做nftable? 好吧,我承认整件事闻起来有点怪怪的,所以让我解

  • Centos 7之Firewalld相关命令详细介绍

    Centos 7之Firewalld相关命令详细介绍 引言:Centos 7是目前非常流行的Linux发行版本,本文将重点介绍如何来使用firewalld相关命令启动服务以及添加服务或者端口等操作. 1.  查看firewall服务状态 >>  systemctl status firewalld [root@flybird ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall dae

  • Linux 中firewall的使用方法总结

    Linux 中firewall的使用方法总结 firewall 简单使用 1,显示所有配置 firewall-cmd --list-all-zones 2,重新加载配置 firewall-cmd --reload 3,从public移除 interface firewall-cmd --zone=public --remove-interface=eno16777736 4,查询外网端口 firewall-cmd --permanent --query-port=8080/tcp 5,删除808

  • centos 7中firewall防火墙的常用命令总结

    前言 在CentOS7.0中默认使用firewall代替了iptables service.虽然继续保留了iptables命令,但已经仅是名称相同而已. firewall是centos7的一大特性,最大的好处有两个: 支持动态更新 不用重启服务: 关于CentOS7下Firewall防火墙配置用法可以通过这篇文章进行查看,下面来看看本文的主要内容关于centos 7中firewall防火墙的常用命令,需要的朋友们可以参考学习. 一.开启.关闭firewall 启动: systemctl star

  • 详解firewall的规则设置与命令(白名单设置)

    一. 设置firewall规则 例1:对外暴露8080端口 firewall-cmd --permanent --add-port=8080/tcp 例2:使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问 #添加规则 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protoc

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

  • 详解Linux下find查找文件命令和grep查找文件命令

    目录 一.find命令 1.按文件名 2.按文件类型查询 3.按照文件大小查找 4.按照文件日期查找 4.1按照创建日期查找 4.2按照修改日期查找 4.3按照访问日期查找 5.按深度查找 5.1查找起始点以下n层的目录,不超过n层 5.2搜距离起始点n层以下的目录(即最少n层) 6.高级查找 6.1-exec 6.2-ok 6.3管道方式 二.grep命令 三.grep和find命令结合使用 linux中一切皆文件的思想是重中之重,那么查找文件是学习Linux必须要掌握的技能. 一.find命

  • 详解Python如何优雅地解析命令行

    目录 1. 手动解析 2. getopt模块 总结 如何优雅地解析命令行选项 随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率. 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定.改变程序的行为:而不必一层层找到相应的配置文件,然后还要定位到相应内容.修改.保存.退出…… 想想就很麻烦好吗 1. 手动解析 所以让我们开始解析命令行参数吧~ 在以前关于模块的文章中我们提到过sy

  • SpringBoot Web详解静态资源规则与定制化处理

    目录 1.相关概念 2.静态资源目录 3.静态资源访问前缀 4.欢迎页支持 5.自定义favicon 6.源码分析 1.相关概念 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议使用Spring Boot的默认配置方式,如果需要特殊处理的再通过配置文件进行修改. 如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc, 增加该注解以后WebMvcAuto

  • 详解Go flag实现二级子命令的方法

    目录 前言 os.Args flag 快速开始 长短选项 自定义类型 二级子命令 参考 前言 日常开发使用到的命令行工具大都支持如下特性: 文档自动生成(如 -h --help) 多级子命令(如 docker exec -it) 支持参数(如 ls -color=auto) 长短选项(如 -v 和 --verbose) 全局选项(如 docker -D run -d nginx) Tab 自动补全 本文就探讨一下 Go 语言中如何写一个拥有类似特性的命令行程序. os.Args 类似于 shel

  • 详解如何在Linux(CentOS 7)命令行模式安装VMware Tools

    本例中为在Linux(以CentOS 7为例)安装VMware Tools. 1.首先启动CentOS 7,在VMware中点击上方"VM",点击"Install VMware Tools..."(如已安装则显示"Reinstall VMware Tools..."). 2.在命令行输入"ls /dev"查看. 3.输入"mkdir /mnt/cdrom"在/mnt目录下新建一个名为cdrom的文件夹. 4

  • 详解如何使用Node.js编写命令工具——以vue-cli为例

    vue-cli全局安装之后,提供了vue命令和vue init.vue list.vue build三个子命令,通过命令可以搭建基于vue.js的脚手架项目.本文简单介绍一下这些命令是如何实现的. vue-cli的项目目录 如下图,由之前文章介绍,npm安装过程中,可以利用package.json中bin字段的配置,将bin目录下的命令文件软连到全局命令.也就是说在/usr/local/bin下生成了四个软连命令:vue.vue-build.vue-list.vue-init. vue命令的源码

  • 详解Docker与FastDFS的安装命令及使用

    Docker特点 1)上手快 用户只需要几分钟,就可以把自己的程序"Docker 化".Docker 依赖于"写时复制" (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到"随心所致,代码即改" 的境界. 随后,就可以创建容器来运行应用程序了.大多数 Docker 容器只需要不到 1 秒中即可 启动.由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也 可以运行更多的容器,使用户尽可能的充分利用系

  • 详解docker-compose.yml文件常用模版命令

    注:在编写docker-compose.yml文件时,所有的冒号(:).短横线(-)后面都需要加一个空格. 1.command 覆盖容器启动后默认执行的命令 command: echo "hello" 2.container_name 指定容器名称.默认将会使用 项目名称_服务名称_序号 这样的格式 container_name: docker-web-container 3.configs 仅用于Swarm mode 4.deploy 仅用于Swarm mode 5.devices

随机推荐