当前位置: 代码网 > 服务器>服务器>Linux > Linux利用firewalld和iptables实现IP端口限制与开放

Linux利用firewalld和iptables实现IP端口限制与开放

2025年02月15日 Linux 我要评论
前言在服务器管理中,防火墙是保护系统安全的重要工具。通常,我们可能会关闭firewalld,但在某些情况下,我们需要利用firewalld或iptables来限制ip请求。本文将详细介绍如何使用fir

前言

在服务器管理中,防火墙是保护系统安全的重要工具。通常,我们可能会关闭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 移除某个规则

  • 查看当前的rich rules
sudo firewall-cmd --list-rich-rules
  • 移除 rich rule
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.1.1.4" port port="8848" protocol="tcp" accept'
  • 重新加载防火墙
sudo firewall-cmd --reload
  • 验证规则是否已移除
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端口的访问权限,从而提升服务器的安全性。

以上就是使用firewalld和iptables实现ip端口限制与开放的详细内容,更多关于firewalld iptables ip端口限制与开放的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com