CentOS7下如何利用Firewalld防火墙实现IP+Port细粒度访问控制

本文涉及的产品
云防火墙,500元 1000GB
访问控制,不限时长
简介: CentOS7下如何利用Firewalld防火墙实现IP+Port细粒度访问控制

如何利用CentOS7 Firewalld防火墙实现IP+Port细粒度访问控制


640.png


本文参考RedHat官方文档进行实践测试


https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide


640.png


测试的CentOS7 服务器IP :192.168.31.230


1、通常情况我们在默认zone:public上添加需要访问的端口


firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --permanent --zone=public --add-port=1514/udp
firewall-cmd --add-port=27017/tcp --permanent --zone=public
firewall-cmd --add-port=9200/tcp --permanent --zone=public
firewall-cmd --reload


2、查看firewalld已经开放的端口


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


下面进入正题:现在需要对9000端口进行细粒度更高的访问控制 比如只允许192.168.31.100等特定IP访问9000端口


可以通过如下两种方式来实现


一、启用internel 内部zone的方式


1、先将public zone中9000端口移除


firewall-cmd --permanent --zone=public --remove-port=9000/tcp
firewall-cmd --reload


640.png

在其他机器上用nc测试9000端口,可以看到已经无法访问

640.png

nc -vz 192.168.31.230 9000 -s 192.168.31.127


2、接下将启用zone:internel


firewall-cmd --list-all --zone=internal
firewall-cmd --zone=internal --add-port=9000/tcp --permanent 
firewall-cmd --reload
firewall-cmd --add-source=192.168.31.100/32 --permanent --zone=internal
firewall-cmd --reload

640.png

可以在192.168.31.100 Windows机器上测试


640.png


internal(内部)zone的特性  
For use on internal networks when you mostly trust the other computers on the network. Only selected incoming connections are accepted.

640.png


firewall-cmd --add-source=192.168.31.127/32 --permanent --zone=internal  
firewall-cmd --reload
firewall-cmd --list-all --zone=internal


添加前和添加后的对比测试截图如下


640.png


640.png

开启deny log打印


firewall-cmd --set-log-denied=all
firewall-cmd --add-source=192.168.31.127/32 --permanent --zone=internal 
firewall-cmd --reload


关闭deny日志打印


firewall-cmd --set-log-denied=off


640.png

当然也支持如下语法


firewall-cmd --add-source={192.168.31.230/32,192.168.31.100/32} --permanent  --zone=internal


二、rich-rules的方式


firewall-cmd --remove-port=9000/tcp --permanent --zone=public 
firewall-cmd --reload
firewall-cmd --add-rich-rule='rule family="ipv4"  source address="192.168.31.100/32" port port="9000" protocol="tcp" log prefix="graylog9000" level="info"  accept' --permanent
firewall-cmd --add-rich-rule='rule family="ipv4"  source address="192.168.31.127/32" port port="9000" protocol="tcp" log prefix="graylog9000" level="info"  accept' --permanent
firewall-cmd --reload
nc -vz 192.168.31.230 9000 -s 192.168.31.127

640.png


当然也可以不加日志打印


firewall-cmd --add-rich-rule='rule family="ipv4"  source address="192.168.31.100/32" port port="9000" protocol="tcp"  accept' --permanent
firewall-cmd --reload


3、禁ping的配置方式


参考官方文档


https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-managing_icmp_requests
firewall-cmd --set-target=DROP --zone=public --permanent
firewall-cmd --add-icmp-block-inversion
firewall-cmd --reload


640.png

640.png

相关文章
|
21天前
|
安全 Linux 网络安全
centos7中firewall防火墙的常用命令总结
以上命令集覆盖了 `firewalld`的基本操作,是维护CentOS 7系统安全不可或缺的工具。对于更高级的配置需求或遇到特定问题
18 3
|
4月前
|
网络协议 Linux Python
Python脚本配置Centos静态ip地址
这是一个Python脚本,用于自动化配置CentOS系统的静态IP地址。脚本创建或修改文件,填写接口名(如ens33)、IP地址、子网掩码、网关和DNS。运行时需替换变量值并使用`sudo`以管理员权限执行。完成配置后,它会重启网络服务。注意,用户应根据实际网络环境调整参数。
139 4
Python脚本配置Centos静态ip地址
|
4月前
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。
155 5
|
3月前
|
应用服务中间件 nginx 数据安全/隐私保护
nginx配置源IP访问控制
nginx配置源IP访问控制
|
6月前
|
网络协议 物联网 Linux
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
你不能不知道的:无公网IP,SSH远程连接CentOS服务器【内网穿透】
338 0
|
6月前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
6月前
|
XML 安全 Linux
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
|
6月前
|
Linux
CentOS 设置静态 IP 配置
防止 CentOS 服务器的 IP 地址更改,可以设置静态 IP 配置,而不是依赖 DHCP(动态主机配置协议)分配 IP 地址。
370 7
|
6月前
|
Java
Centos7.9的ip更改--详细版
Centos7.9的ip更改--详细版
1084 4
|
6月前
|
Linux 网络安全
centos7如何关闭防火墙
centos7如何关闭防火墙
559 3