firewall-cmd命令详解

如题所述

第1个回答  2022-06-20
# 安装firewalld

yum install firewalld firewall-config

systemctl start  firewalld # 启动

systemctl status firewalld # 或者 firewall-cmd --state 查看状态

systemctl disable firewalld # 停止

systemctl stop firewalld  # 禁用

# 你也可以关闭目前还不熟悉的FirewallD防火墙,而使用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 --reload # 更新防火墙规则

firewall-cmd --complete-reload

# 两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

# 将接口添加到区域,默认接口都在public

firewall-cmd --zone=public --add-interface=eth0

# 永久生效再加上 --permanent 然后reload防火墙

# 设置默认接口区域,立即生效无需重启

firewall-cmd --set-default-zone=public

# 查看所有打开的端口:

firewall-cmd --zone=dmz --list-ports

# 加入一个端口到区域:

firewall-cmd --zone=dmz --add-port=8080/tcp

# 打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档

firewall-cmd --zone=work --add-service=smtp

# 移除服务

firewall-cmd --zone=work --remove-service=smtp

# 显示支持的区域列表

firewall-cmd --get-zones

# 设置为家庭区域

firewall-cmd --set-default-zone=home

# 查看当前区域

firewall-cmd --get-active-zones

# 设置当前区域的接口

firewall-cmd --get-zone-of-interface=enp03s

# 显示所有公共区域(public)

firewall-cmd --zone=public --list-all

# 临时修改网络接口(enp0s3)为内部区域(internal)

firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改网络接口enp03s为内部区域(internal)

firewall-cmd --permanent --zone=internal --change-interface=enp03s

服务管理

# 显示服务列表

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 --add-service=mysql # 开放mysql端口

firewall-cmd --remove-service=http      # 阻止http端口

firewall-cmd --list-services            # 查看开放的服务

firewall-cmd --add-port=3306/tcp        # 开放通过tcp访问3306

firewall-cmd --remove-port=80tcp        # 阻止通过tcp访问3306

firewall-cmd --add-port=233/udp        # 开放通过udp访问233

firewall-cmd --list-ports              # 查看开放的端口

伪装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=proto=80:proto=tcp:toaddr=192.168.1.0.1# 将80端口的流量转发至192.168.0.1

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

当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。

端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。

转自:

https://www.cnblogs.com/tkzc2013/p/11319625.html

Firewalld常用命令
以下是Firewalld常用命令:1. 启动或停止Firewalld服务:firewall-cmd --state,显示服务状态;firewall-cmd --reload,重载配置文件;firewall-cmd --restart,重启服务。2. 显示当前防火墙规则:firewall-cmd --list-all,查看所有规则。3. 添加自定义规则:firewall-cmd --permanent --add-rich-...

如何使用 firewall-cmd 管理网络服务 | Linux 中国
首先,确保防火墙运行正常,通过状态选项检查。了解你的网络接口和活跃域是下一步,使用如firewall-cmd --get-active-zones来获取。查看特定域的详细信息,如目标、ICMP行为和接口列表。在处理服务、端口和协议时,firewall-cmd默认会阻止所有,只允许已列出的。例如,允许的基本服务如samba-client、DNS通信...

firewall 防火墙命令使用
要查看当前开放的端口,使用命令:firewall-cmd --list-all 如果你想开放8080端口,执行:firewall-cmd --zone=public --add-port=8080\/tcp --permanent 关闭端口则相反,例如关闭8080端口:firewall-cmd --zone=public --remove-port=8080\/tcp --permanent 重启防火墙以应用更改,使用:firewall-cmd...

firewall-cmd命令详解
firewall-cmd --get-zone-of-interface=eth0  # 查看指定接口所属区域 firewall-cmd --panic-on  # 拒绝所有包 firewall-cmd --panic-off  # 取消拒绝状态 firewall-cmd --query-panic  # 查看是否拒绝 firewall-cmd --reload # 更新防火墙规则 firewall-cmd --co...

Centos7 防火墙详细操作
首先,要确保防火墙状态,可以使用`firewall-cmd --state`或`systemctl status firewalld`,其中active表示开启,inactive表示关闭。对于防火墙的开关,可以通过`systemctl start\/stop\/restart`命令来实现,同时,设置开机启动或禁用也很关键。开放或限制服务器端口是防火墙管理的核心。使用`firewall-cmd --...

如何使用firewall-cmd命令动态管理防火墙规则?
firewalld的语法结构简单明了,如要查看当前服务状态,只需输入`firewall-cmd --state`。查看开放的端口,使用`--zone=public --list-ports`选项,而`firewall-cmd --reload`命令则是用于加载修改后的配置,无需重启系统。要了解所有区域的配置信息,可以执行`firewall-cmd --list-all-zones`。通过...

firewa11-cmd--permanent--add-service=http是什么意思?
- firewall-cmd:是一个Linux防火墙管理工具,用于配置iptables和nftables防火墙规则。- --permanent:表示将规则永久保存在防火墙配置中,以便在重启后仍然有效。- --add-service=http:表示添加一个名为“http”的服务,该服务对应的端口是80,允许通过防火墙的HTTP流量。这个命令的作用是将HTTP服务添加到...

Linux里面firewall-cmd命令作用是什么?
firewalld 、firewall-cmd 、firewall-offline-cmd它们Python脚本,通过定义的在\/usr\/lib\/firewalld下面的xml配置信息,在启动时自动载入默认iptables配置,并应用到系统中,当使用firewalld-cmd添加防火墙规则时,它实际是转换成 iptables规则后,在应用到系统中。

Centos7防火墙基本操作
1.执行firewall-cmd --zone=public --add-port=80\/tcp命令打开80\/tcp。这里需要注意,这是临时的打开端口,重启后无效。2.执行systemctl restart firewalld.service命令重启防火墙。注意:当开放端口设置完成后必须要重启,否则不生效!!!永久打开端口 1.执行firewall-cmd --permanent --zone=public ...

操作指南如何关闭Linux的防火墙关闭linux的防火墙
`sudo firewall-cmd –permanent –zone=public –remove-service=ssh`该命令将关闭特定网络上的SSH服务,其中zone参数是public,因此规则将应用于所有从公共网络接入的客户端。处理该命令后,您应该在终端中运行以下命令:`sudo systemctl restart firewalld`这将重新加载firewalld服务,...

相似回答
大家正在搜