作为一名系统管理员或开发者,你是否曾经被 Linux 防火墙配置搞得头大?在生产环境中,我们经常需要配置防火墙来保护服务器安全,但面对 iptables 和 firewalld 这两个工具,很多人都会觉得无从下手。别担心!这篇文章将用通俗易懂的方式,带你了解 CentOS 中的防火墙配置,并通过一个实际案例,手把手教你如何正确设置防火墙规则。
配置文件存放地址:
/etc/firewalld/ # 系统配置文件目录
/usr/lib/firewalld/ # 默认配置文件目录
注意:
/etc/firewalld/
:优先级高,用户配置目录/usr/lib/firewalld/
:优先级低,默认配置目录/etc/firewalld/
下修改配置配置文件存放地址:
/etc/sysconfig/iptables # 规则配置文件
区域 | 说明 |
---|---|
信任 | 可接收所有的网络连接 |
public | 除非与传出流量相关,或与 ssh 或 dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
work | 除非与传出流量相关,或与 ssh、ipp-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
家 | 除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
internal | 除非与传出流量相关,或与 ssh、ipp-client、mdns、samba-client、dhcpv6-client 预定义服务匹配,否则拒绝流量传入 |
external | 除非与传出流量相关,或与 ssh 预定义服务匹配,否则拒绝流量传入 |
dmz | 除非与传出的流量相关,或与 ssh 预定义服务匹配,否则拒绝流量传入 |
block | 除非与传出流量相关,否则拒绝所有传入流量 |
drop | 除非与传出流量相关,否则丢弃所有传入流量,并且不产生包含 ICMP 的错误响应 |
图形化不过多解释 需要的话你搜其他文章
+-------------+ +-------------+ +-------------+
| Client | | Firewall | | Apache |
|192.168.14.112| |192.168.14.111| |Linux 服务器 |
+-------------+ +-------------+ +-------------+
| | |
| | |
+--------------------+--------------------+
服务器配置
ip地址是192.168.14.111
yum install -y httpd
[root@localhost ~]# echo 2024-12-3 > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# curl 127.0.0.1
2024-12-3
配置完成apache服务之后
客户端是可以ping的
# 启动 firewalld 并设置为开机自启动
systemctl start firewalld
systemctl enable firewalld
# 禁止 ping 服务器
firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
firewall-cmd --reload
# 验证配置
firewall-cmd --list-all
客户端测试
# 移除默认区域的 SSH 服务
firewall-cmd --zone=public --remove-service=ssh --permanent
# 只允许 192.168.8.130 主机访问 SSH 服务
firewall-cmd --zone=work --add-source=192.168.14.112 --permanent
firewall-cmd --zone=work --add-service=ssh --permanent
firewall-cmd --reload
# 验证配置
firewall-cmd --list-all
客户端测试
其他ip的主机远程是拒绝了 因为只有 192.168.14.112可以远程
192.168.14.112 主机可以远程访问
# 允许所有主机访问 Apache 服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
# 验证配置
firewall-cmd --list-all
客户端测试
为开放apache的流量之前
[root@localhost ~]# curl 192.168.14.111
curl: (7) Failed connect to 192.168.14.111:80; 没有到主机的路由
开放之后 所有的主机均可以访问的
[root@localhost ~]# curl 192.168.14.111
2024-12-3
通过这篇文章,我们不仅学习了 firewalld 和 iptables 的基本概念,更重要的是通过一个实际的案例,展示了如何:
记住,防火墙配置不是一成不变的,你可以根据实际需求随时调整规则。最重要的是理解每个配置背后的原理,这样才能灵活应对各种场景。希望这篇文章能帮助你在实际工作中少走弯路,轻松搞定防火墙配置!
成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。