利用Firewalld和Iptables实现IP端口限制与开放

news/2025/2/20 3:38:08/

这里写目录标题

  • 前言
  • 一、FirewalldIP端口限制
    • 1.1 确认启动状态
    • 1.2 启动Firewalld
    • 1.3 查看当前连接到Nacos的IP
    • 1.4 添加访问规则
    • 1.5 重新加载配置
    • 1.6 查看当前活动的规则列表
    • 1.7 移除某个规则
  • 二、Firewalld 开放端口
    • 2.1 开放 6379端口
    • 2.2 重新加载防火墙
    • 2.3 验证规则
  • 三、Iptables限制ip端口(未验证)
    • 3.1 添加规则允许特定IP访问Nacos服务:
    • 3.2 保存 iptables 规则
    • 3.3 解决浏览器无法访问Nacos页面的问题
  • 总结

前言

在服务器管理中,防火墙是保护系统安全的重要工具。通常,我们可能会关闭firewalld,但在某些情况下,我们需要利用firewalld或iptables来限制IP请求。本文将详细介绍如何使用firewalld和iptables来实现IP端口限制与开放。

一、FirewalldIP端口限制

1.1 确认启动状态

首先,我们需要确认firewalld的启动状态

sudo systemctl status firewalld

1.2 启动Firewalld

如果firewalld未启动,执行以下命令启动:

sudo systemctl start firewalld

1.3 查看当前连接到Nacos的IP

以Nacos为例,查看当前连接到Nacos的IP:

netstat -antp | grep ':8848' | awk '{print $5}' | cut -d':' -f1 | sort | uniq

此处查询的ip仅供参考,可作为梳理后的补充

1.4 添加访问规则

添加访问规则,允许特定IP访问Nacos服务:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.1.1.3" port port=8848 protocol=tcp accept'

其中,address是需要连接到Nacos的服务器的IP(内网/弹性都要加),port指定Nacos端口。多个IP可多次执行上面代码。

1.5 重新加载配置

添加规则后,重新加载配置:

sudo firewall-cmd --reload

1.6 查看当前活动的规则列表

查看当前活动的规则列表:

sudo firewall-cmd --list-all

输出示例:

public (active)
target: default
icmp-block-inversion: no
interfaces: ens3
sources:
services: cockpit dhcpv6-client mdns ssh
ports: 8848/tcp 6379/tcp 8012/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family=“ipv4” source address=“172.1.1.1” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.2” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.3” port port=“8848” protocol=“tcp” accept
rule family=“ipv4” source address=“172.1.1.4” port port=“8848” protocol=“tcp” accept

1.7 移除某个规则

1.查看当前的rich rules

sudo firewall-cmd --list-rich-rules
  1. 移除 rich rule
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.1.1.4" port port="8848" protocol="tcp" accept'
  1. 重新加载防火墙
sudo firewall-cmd --reload
  1. 验证规则是否已移除
sudo firewall-cmd --list-rich-rules

二、Firewalld 开放端口

上一节是针对ip开放端口,那么如何直接开放端口,所有ip都可访问?

2.1 开放 6379端口

sudo firewall-cmd --permanent --add-port=6379/tcp

2.2 重新加载防火墙

添加完规则后,需要重新加载防火墙以使更改生效:

sudo firewall-cmd --reload

2.3 验证规则

您可以通过以下命令来验证当前的防火墙规则,确保 Redis 的端口已经被成功开放:

sudo firewall-cmd --list-all

三、Iptables限制ip端口(未验证)

3.1 添加规则允许特定IP访问Nacos服务:

sudo iptables -A INPUT -p tcp -s 172.16.17.33 --dport 8848 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 8848 -s 172.16.61.83 -j ACCEPT

3.2 保存 iptables 规则

Ubuntu/Debian:

sudo iptables-save > /etc/iptables.up.rules

CentOS/RHEL:

sudo service iptables save

3.3 解决浏览器无法访问Nacos页面的问题

添加完规则之后,可能浏览器依然无法访问Nacos页面,并且对应服务器可能ping通,但curl无法访问。可能是因为有一条规则导致的,去掉后可以正常访问。

5 REJECT all – 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

总结

在服务器管理中,梳理清楚当前服务器有哪些需要对外访问的服务非常重要。类似1.3中查看连接IP并不全面,因此需要结合实际情况进行规则配置。通过firewalld和iptables,我们可以灵活地控制IP端口的访问权限,从而提升服务器的安全性。


在这里插入图片描述


http://www.ppmy.cn/news/1572617.html

相关文章

3、树莓派5 安装VNC查看器 开启VNC服务器

在前序文章中( 2、树莓派5第一次开机),可以使用三种方式开机,其中使用网线及wifi的方式均需要使用到VNC查看器进行远程桌面控制,本文将介绍如何下载安装并配置及使用VNC查看器及服务器,对前序文章做一些补充…

算法思考:非0整数除法

这是一道很简单的问题,但是我们可以有更多的思考 1.如何提升效率? 除法,很明显就是循环嘛,那么如何进一步提升效率?就是跳过多余的循环步骤比如15/2,原先是1111111再余1,现在尽量每次除2的最大…

ArcGIS基础知识之ArcMap基础设置——ArcMap选项:数据视图及布局视图选项卡的作用及设置

在使用ArcMap进行地图制作和地理数据分析时,数据视图和布局视图是两个不可或缺的重要模式。它们各自承担着不同的功能,帮助用户高效地完成从数据处理到地图输出的全流程操作。今天,我们就来详细了解一下这两个视图的作用及设置方法。 一、数据视图选项 数据视图是 ArcMap …

使用 Python 将爬取的内容保存到 Excel 表格

在数据爬取的过程中,很多时候我们需要将爬取到的内容保存到 Excel 表格中,以便进一步处理、分析和可视化。Python 提供了强大的库来实现这一功能,常用的有 requests、BeautifulSoup 用于网页内容的爬取,以及 pandas、openpyxl 用于…

华为小艺支持DeepSeek

华为小艺支持DeepSeek 小艺集成DeepSeek,使用便捷流畅 华为纯血鸿蒙HarmonyOS NEXT系统内置的小艺助手App已成功整合DeepSeek服务。用户能够免费且无门槛地使用该服务,同时还享有特别资源支持。目前,小艺在整合DeepSeek服务后运行极为流畅&…

wps接入DeepSeek教程

访问DeepSeek官网 申请API key 3.配置WPS (1)访问 OfficeAI 助手插件下载地址:https://www.office-ai.cn/ (2)安装插件后,打开 WPS,菜单栏会新增“OfficeAI 助手” 4.接入DeepSeek 不过现…

redis sentinel模式 与 redis 分片集群 配置

Redis 最低为5.0版本,以下为6.2.6版本信息。 模式 高可用性 数据分片 部署复杂度 适用场景 Sentinel 模式 高 无 中等 中小规模,需要高可用性 集群模式 高 支持 复杂 大规模,需要高…

Eureka 服务注册和服务发现的使用

1. 父子工程的搭建 首先创建一个 Maven 项目&#xff0c;删除 src &#xff0c;只保留 pom.xml 然后来进行 pom.xml 的相关配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xs…