文档章节

CentOS7防火墙firewalld操作

dingdayu
 dingdayu
发布于 2018/10/20 01:03
字数 1377
阅读 201
收藏 16

精选30+云产品,助力企业轻松上云!>>>

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。

firewall-cmdfirewalld 的字符界面管理工具,firewalldCentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的 zone 概念。

firewalldiptables比起来至少有两大好处:

  1. firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
  2. firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalldiptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalldiptables的结 构以及使用方法不一样罢了。

安装启动

# 安装firewalld
yum install firewalld firewall-config

# 开机启动
systemctl enable firewalld

# 禁止开机启动
systemctl disable firewalld

# 启动/停止/重启 firewalld
systemctl start firewalld
systemctl stop firewalld
systemctl restart firewalld

# 查看状态
systemctl status firewalld

# 或者通过  firewall-cmd 查看状态
firewall-cmd --state

当然你也可以换会iptables

yum install iptables-services
systemctl start iptables
systemctl enable iptables

查看状态

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  # 查看是否拒绝
firewall-cmd --permanent --list-all # 查看被firewalld允许的服务

常用操作

服务管理

Amanda, FTP, Samba和TFTP等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:

# 显示服务列表
firewall-cmd --get-services

# 允许SSH服务通过
firewall-cmd --enable service=ssh

# 禁止SSH服务通过
firewall-cmd --disable service=ssh

# 打开TCP的8080端口
firewall-cmd --enable ports=8080/tcp

# 临时允许Samba服务通过600秒
firewall-cmd --enable service=samba --timeout=600

# 显示当前服务
firewall-cmd --list-services

# 添加HTTP服务到内部区域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload     # 在不改变状态的条件下重新加载防火墙

端口管理

# 打开443/TCP端口
firewall-cmd --add-port=443/tcp

# 永久打开3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp

# 永久打开端口需要reload一下,临时打开不用,如果用了reload临时打开的端口就失效了
firewall-cmd --reload

# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all

可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放 http 服务就是开放了 80 端口,但是还是不能通过端口号来关闭,也就是说通过指定服务名开放的就要通过指定服务名关闭;通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议,tcp 还是 udp。知道这个之后以后就不用每次先关防火墙了,可以让防火墙真正的生效。

重载规则

firewall-cmd --reload # 更新防火墙规则
firewall-cmd --complete-reload
# 两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

直接模式

Firewall 包括一种直接模式,使用它可以完成一些工作,例如打开TCP协议的9999端口

firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload

伪装 IP

firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade   # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

端口转发

端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定 ip 的话就默认为本机,如果指定了 ip 却没指定端口,则默认使用来源端口。 如果配置好端口转发之后不能用,可以检查下面两个问题:

比如我将 80 端口转发至 8080 端口,首先检查本地的 80 端口和目标的 8080 端口是否开放监听了 其次检查是否允许伪装 IP,没允许的话要开启伪装 IP

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080   # 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 # 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口

当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。 端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

链接

  1. CentOS7防火墙firewalld的配置
  2. firewall-cmd
dingdayu

dingdayu

粉丝 34
博文 126
码字总数 63890
作品 3
海淀
后端工程师
私信 提问
加载中
此博客有 1 条评论,请先登录后再查看。
Centos7常用操作

1.虚拟机环境下centos的防火墙可以关闭,否则主机调用虚拟机的相关服务时需要调整相应端口: CentOS7: systemctl stop firewalld.service #停止 systemctl disable firewalld.service #禁用 ...

osc_hssgzmz0
2018/05/04
2
0
Centos 的防火墙(firewalld,iptables)

Centos系统防火墙介绍 概述:   1.Filewalld(动态防火墙)作为redhat7系统中变更对于netfilter内核模块的管理工具;   2.iptables service 管理防火墙规则的模式(静态):用户将新的防...

osc_ypm51igr
2019/02/21
16
0
centos7防火墙配置

centos7的防火墙,改为firewalld,而不是之前的iptables 1. 开启、关闭、查看防火墙状态 a)systemctl方式 systemctl status firewalld 查看状态 systemctl start firewalld 开启防火墙(临时...

osc_8fe4srvi
2019/09/16
2
0
CentOS 7 Firewall防火墙使用

centos7 中 firewalld 使用 CentOS 7通过Firewall开放防火墙端口 说明: CentOS 7上开放端口用iptabless是没效果的(或者是sodino没找到正确的命令,注意:Centos7 下默认的防火墙是 Firewall,...

John966
2018/06/15
0
0
Centos7 防火墙常用配置及说明

一、 Centos7和Centos6 防火墙的区别: 使用的工具不一样了。Centos6 使用的是iptables ,Centos7 使用的是filewall iptables 用于过滤数据包,属于网络层防火墙。 firewall 能够允许哪些服务...

osc_gssohi23
2018/12/14
3
0

没有更多内容

加载失败,请刷新页面

加载更多

BIOS开启虚拟化技术支持_MQ

安装虚拟机前开启虚拟化技术支持 1.首先,你需要确认的使你的计算机型号和CPU、BIOS的型号,因为过老的计算机是不支持虚拟化技术的。 2.那么怎么知道呢,方法很简单。开机时按F2、F12、DEL、...

osc_52r4y6wv
14分钟前
4
0
推进BI国产化替代,永洪科技新产品性能提升200%

各行各业已经进入到数字化转型的时间,数字化成为未来企业必须的标签,“国产化替代”成为当今企业的首要选择。 7月9日,以《绽放科技创新力量,推进BI国产化替代》为主题的2020永洪科技新产...

osc_4x0ulctb
16分钟前
16
0
手把手教你Python GUI开发系列之--框架

框架 框架(Frame)相对于其他组件而言,它只是个容器,因为它没有方法,但它可以捕获键盘和鼠标的事件来进行回调。 框架一般用作包含组控件的主体,且可以定制外观。 创建不同样式的框架 再次...

osc_8eb8cps3
17分钟前
13
0
Just test it!!软件测试测起来!!

(图片: josh@unsplash,字数:700,时间:1分钟) (一) 一切的软件质量保障活动,归根结底,就两种类型。 一种是基于代码执行的,一种是不基于代码执行的。 测试之于肉眼自查、静态检查、代...

osc_8cqhsn24
18分钟前
4
0
A Bug's Life POJ - 2492

A Bug's Life Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only inte......

osc_7nzqlmki
19分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部