CentOS7防火墙firewall
一、Firewall
1. 从CentOS7开始,默认使用firewall来配置防火墙,没有安装iptables(旧版默认安装)。
2. firewall的配置文件是以xml的格式,存储在 /usr/lib/firewalld/ 和 /etc/firewalld/ 目录中。
(1)系统配置目录,目录中存放定义好的网络服务和端口参数,系统参数,不要修改。
1 /usr/lib/firewalld/
2 /usr/lib/firewalld/services
3 /usr/lib/firewalld/zones
(2)用户配置目录
1 /etc/firewalld/
2 /etc/firewalld/services
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配置文件中得到体现;
#开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#停止开放3306端口
firewall-cmd --zone=public --remove-port=3306/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="20"/>
<port protocol="tcp" port="21"/>
<port protocol="tcp" port="22"/>
<port protocol="tcp" port="80"/>
<port protocol="tcp" port="8888"/>
<port protocol="tcp" port="39000-40000"/>
<port protocol="tcp" port="3306"/>
</zone>
如上,需要开放的端口,已经添加再public这个区域里了。
三、firewall常用命令
1. 查看状态
systemctl status firewalld 或 firewall-cmd --state
2. 启动、停止、重启
# 启动
systemctl start firewalld
# 停止
systemctl stop firewalld
# 重启
systemctl restart firewalld
3. 开机自启动
# 设置开机自启动
systemctl enable firewalld
# 关闭开机自启动
systemctl disable 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=600 #临时允许 samba 服务通过 600 秒
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 1:把外部区域(external)的 22 端口 转发至 3753
firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753
# example 2:把外部区域(external)的 22 端口转发到 192.168.1.20 的同一端口
firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.20
# example 3:把外部区域(external)的 22 端口转发到 192.168.1.20 的 52222 端口
firewall-cmd --zone=external --add-forward-port=22:proto=tcp:toport=52222:toaddr=192.168.1.20
CentOS7防火墙firewall的更多相关文章
- CentOS7防火墙firewall相关操作
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...
- centos7防火墙--firewall
centos7的防火墙变成firewall了 systemctl start firewalld.service#启动firewallsystemctl stop firewalld.service# ...
- CentOS7 防火墙Firewall常用命令
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disab ...
- CentOS7下Firewall防火墙配置用法详解
官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...
- CentOS7 防火墙(firewall)的操作命令
CentOS7 防火墙(firewall)的操作命令 安装:yum install firewalld 1.firewalld的基本使用 启动: systemctl start firewalld 查 ...
- Centos7 使用firewall管理防火墙
一.Centos7使用firewall的管理防火墙 1.firewalld基本使用 启动:systemctl start firewalld 关闭:systemctl stop firewalld 状 ...
- Centos7防火墙快速开放端口配置方法
▲这篇文章主要为大家详细介绍了Centos7防火墙开放端口的快速方法,感兴趣的小伙伴们可以参考一下! Firewalld服务是红帽RHEL7系统中默认的防火墙管理工具,特点是拥有运行时配置与永久配置选 ...
- CentOS7 防火墙设置
CentOS7 防火墙命令 最近在公司服务器上安装了oracle12c数据库,在用数据库客户端连接的时候,连接不了.最后查找资料的原因是因为oracle的服务端口未开放. 首先还是还是输入以往的开启某 ...
- ss_port_change - 一键修改ss配置与Centos7的Firewall策略脚本
ss_port_change 修改ss配置与Centos7的Firewall策略脚本 注意是否需要修改config路径与ss服务的名 脚本的敏感字用了*代替 项目地址 Github 脚本 #!/bin ...
随机推荐
- HashMap原理及源码分析
HashMap 原理及源码分析 1. 存储结构 HashMap 内部是由 Node 类型的数组实现的.Node 包含着键值对,内部有四个字段,从 next 字段我们可以看出,Node 是一个链表.即数 ...
- day 9 scanf输入和gets输入的区别
(1).计算机高级语言程序运行方法有编译执行和编译解释两种,一下叙述中正确的是[A] A.C语言程序仅可以编译执行 B.C语言程序仅可以解释执行 C.C语言程序既可以编译执行又可以解释执行 D.以上说 ...
- Python SQL execute加参数的原理
在Python中,当用pymysql库,或者MySQLdb库进行数据库查询时,为了防止sql注入,可以在execute的时候,把参数单独带进去,例如: def execute_v1(): config ...
- golang中接口类型小案例
1. 在项目中实现注册成功之后,向用户发送邮件.微信提醒 package main import "fmt" type IMessage interface { send() b ...
- 人工智能与智能系统1->机器人学1 | 位置与姿态描述
寒假有几项学习计划,其中有一些是为了一些任务而学,最主要的任务是我要在2021_v4的基础上编写2022_v1的大援代码,为此顺便学习一下机器人学的知识(下学期也有这方面的老黄的课程),看看能不能在结 ...
- Flink源码学习笔记(2) 基于Yarn的自动伸缩容实现
1.背景介绍 随着实时计算技术在之家内部的逐步推广,Flink 任务数及计算量都在持续增长,集群规模的也在逐步增大,本着降本提效的理念,我们研发了 Flink 任务伸缩容功能: 提供自动伸缩容功能,可 ...
- SharePoint Online 触发 Outlook 邮件内审批
前言 我们在做SharePoint Online项目时, 经常会有客户问,我们能否在通知邮件中快速完成审批,而不是需要在邮件中打开系统,然后在系统中审批? 答案肯定是可以的,来!安排! 正文 1.我们 ...
- Vue2和Vue3技术整理3 - 高级篇
3.高级篇 前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xi ...
- Android中ActionBar和ToolBar添加返回箭头
感谢大佬:https://blog.csdn.net/baidu_32682229/article/details/77927745 ActionBar添加返回箭头 //onCreate方法中 Act ...
- NSArray 遍历
1.NSArray的下标遍历 NSArray *arr = @[p1, p2, p3, p4, p5]; for (int i = 0; i < arr.count; ++i) { Person ...