专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Centos7防火墙--禁止ping&端口控制

Centos7使用的防火墙是Firewalld

如果你的系统上没有安装使用命令安装

安装firewalld 防火墙yum install firewalld

开启服务systemctl start firewalld.service

关闭防火墙systemctl stop firewalld.service

开机自动启动systemctl enable firewalld.service

关闭开机制动启动systemctl disable firewalld.service

为确认服务是否已经启动,运行下面的命令获取有效的服务列表。

firewall-cmd --get-services

禁止ping

firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'

查询端口是否开放

firewall-cmd --query-port=8080/tcp

开放80端口

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

移除端口

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

重加载防火墙(修改配置后要重加载防火墙)

firewall-cmd --reload

参数解释

1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、–permanent:表示设置为持久; 3、–add-port:标识添加的端口;

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

firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-service=http

移除

firewall-cmd --permanent --zone=public --remove-service=http

增加范围端口

firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp

查看当前默认zone

firewall-cmd --get-default-zone

设置默认zone

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

VPN L2TP+IPSec

firewall-cmd --zone=public --permanent --add-port=1701/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp

仅允许部分IP访问本机服务配置

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24" service name="http" accept"

允许部分IP访问ssh(不允许访问: drop/reject)

firewall-cmd --permanent --zone=public --add-rich-rule=’rule family=ipv4 source address=192.168.0.0/24 service  name=ssh accept’

仅允许部分IP访问本机端口配置

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24"port protocol="tcp" port="8080" accept"

查看rich规则

Firewall-cmd  --list-rich-rules

删除rich规则

firewall-cmd --permanent --zone=public --remove-rich-rule=’rule family=ipv4 source address=192.168.0.0/24 service name=ssh accept’

创建rich规则,可以指定日志的前缀和输出级别

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24"port port=8080 protocol="tcp" log prefix=proxy level=warning accept"

可以通过查看/var/log/messages日志文件



根据接口获取区域即需要查看哪个区域和这个接口绑定即查看某个接口是属于哪个zone的:

firewall-cmd --get-zone-of-interface=接口名

将接口(网卡)增加到区域

firewall-cmd [--zone=] --add-interface=接口名

修改接口所属区域

firewall-cmd [--zone=] --change-interface=接口名

查询区域中是否包含某接口

firewall-cmd [--zone=] --query-interface=接口名

启用区域中的 IP 伪装功能

firewall-cmd [–zone=区域] –add-masquerade

此操作启用区域的伪装功能。私有网络的地址将被隐藏并映射到一个公有IP。这是地址转换的一种形式,常用于路由。由于内核的限制,伪装功能仅可用于IPv4。

禁用区域中的 IP 伪装

firewall-cmd [–zone=区域] –remove-masquerade

查询区域的伪装状态

firewall-cmd [–zone=区域] –query-masquerade

启用区域的 ICMP 阻塞功能

firewall-cmd [–zone=区域] –add-icmp-block=icmp类型 此操作将启用选中的 Internet 控制报文协议(ICMP)报文进行阻塞。 ICMP 报文可以是请求信息或者创建的应答报文,以及错误应答。

11、禁止区域的 ICMP 阻塞功能

firewall-cmd [–zone=区域] –remove-icmp-block=icmp类型

12、查询区域的 ICMP 阻塞功能

firewall-cmd [–zone=区域] –query-icmp-block=icmp类型

13、在区域中启用端口转发或映射

firewall-cmd [–zone=区域] –add-forward-port=port=portid[-portid]:proto=protocol[ :toport=portid[-portid]][ :toaddr=address [/mask]]

端口可以映射到另一台主机的同一端口,也可以是同一主机或另一主机的不同端口。端口号可以是一个单独的端口或者是端口范围 – 。协议可以为tcp或udp。目标端口可以是端口号或者是端口范围 – 。目标地址可以是 IPv4 地址。受内核限制,端口转发功能仅可用于IPv4。

firewall-cmd控制端口与端口转发

一 、控制端口/服务 可以通过两种方式控制端口的开放,一种是指定端口号另一种是指定服务名。虽然开放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

防火墙可以实现伪装IP的功能,下面的端口转发就会用到这个功能。

firewall-cmd –query-masquerade # 检查是否允许伪装IP

firewall-cmd –permanent –add-masquerade # 允许防火墙伪装IP

firewall-cmd –permanent –remove-masquerade# 禁止防火墙伪装IP

三、端口转发

端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。

如果配置好端口转发之后不能用,可以检查下面两个问题:

比如我将80端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了

其次检查是否允许伪装IP,没允许的话要开启伪装IP

将80端口的流量转发至8080

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080

将80端口的流量转发至

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1

将80端口的流量转发至192.168.0.1的8080端口

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080

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

文章永久链接:https://tech.souyunku.com/42137

未经允许不得转载:搜云库技术团队 » Centos7防火墙--禁止ping&端口控制

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们