CentOS 7 防火墙详解
当涉及到保护你的CentOS 7 服务器不受未经授权的访问和网络攻击时,防火墙是一个至关重要的工具。CentOS 7 默认使用的是 firewalld
防火墙管理工具,它提供了灵活的配置选项,以确保你的服务器安全性。在本文中,我们将深入探讨 CentOS 7 防火墙命令,包括基本操作、规则管理、服务设置和高级配置,帮助你更好地了解如何保护你的服务器。
什么是防火墙
防火墙是一种网络安全工具,用于管理网络流量并决定哪些流量被允许进入你的服务器,哪些被拒绝。它是保护服务器免受网络攻击的第一道防线。在 CentOS 7 中,firewalld
是默认的防火墙管理工具。
firewalld
vs. iptables
在 CentOS 7 之前的版本中,iptables
是默认的防火墙工具。然而,firewalld
更加现代化和易于管理,它是一个动态的防火墙管理器,允许你在运行时添加、删除和修改规则,而不需要重新启动防火墙服务。这使得firewalld
更加适合在生产环境中使用。
基本操作
启用/停用防火墙
在 CentOS 7 中,默认情况下 firewalld
服务是启用的。你可以使用以下命令来检查 firewalld
服务是否启用:
|
|
如果显示disabled
,说明firewalld
服务被禁用了,可以使用以下命令启用firewalld
服务:
|
|
如果想要停用 firewalld
服务,可以使用以下命令:
|
|
查看防火墙状态
当你想要知道firewalld
服务是否在运行时,你可以使用以下命令来检查 firewalld
服务的状态:
|
|
或者使用下面这个命令:
|
|
如果防火墙正在运行,将返回 running
。
启动/停止防火墙
如果firewalld
服务没有启动,可以使用以下命令启动 firewalld
服务:
|
|
停止firewalld
服务使用以下命令:
|
|
查看活动区域
firewalld
使用区域(zone)的概念来管理网络规则。要查看当前活动的区域,可以运行以下命令:
|
|
查看区域详细信息
要查看特定区域的详细信息,例如默认区域(通常为 public
),可以运行以下命令:
|
|
这将显示所选区域的详细配置信息,包括已定义的规则和服务。
规则管理
添加规则
开放单个端口
要允许特定端口的入站流量,可以使用以下命令:
|
|
这将在 public
区域中添加一个永久的入站规则,允许 SSH 流量进入。
批量开放端口
如果我们要开放8000到9000之间的全部端口,可以使用以下命令:
|
|
查询端口是否开放
使用以下命令查看端口是否开放:
|
|
查询所有开放端口
使用以下命令查看当前区域所有已开放的端口:
|
|
允许特定IP地址访问
如果你只希望允许特定IP地址的访问,可以使用以下命令:
|
|
移除规则
要移除防火墙规则,可以使用 --remove
参数,如下所示:
|
|
应用规则变更
在添加或删除规则后,需要重新加载防火墙以使更改生效。可以使用以下命令:
|
|
服务设置
查看可用服务
firewalld
提供了一个服务定义的列表,可以用来简化规则设置。你可以使用以下命令列出所有可用服务,包括常见的网络服务,如 SSH、HTTP、FTP 等:
|
|
添加服务规则
要允许特定服务的流量,比如HTTP服务,可以使用以下命令:
|
|
移除服务规则
要移除服务规则,可以使用 --remove-service
参数,如下所示:
|
|
查看已添加的服务规则
你可以使用以下命令查看当前区域中已添加的服务规则:
|
|
高级配置
自定义区域
除了默认的区域(例如 public
、internal
、trusted
等),你还可以创建自定义区域以根据需要管理防火墙规则。要创建自定义区域,可以使用以下命令:
|
|
然后,你可以将规则添加到自定义区域中,类似于之前的示例。
转发端口
有时你可能需要将某个端口的流量从一个接口转发到另一个接口。你可以使用 --add-forward-port
参数来设置端口转发规则,如下所示:
|
|
这将设置一个端口转发规则,将来自 eth0
接口的 80 端口流量转发到 eth1
接口的 8080 端口,目标地址是 192.168.1.2
。
日志记录
你可以配置防火墙以记录特定规则的流量。要启用规则的日志记录,可以使用 --add-rich-rule
参数,如下所示:
|
|
这将启用对来自 IP 地址 192.168.1.100
的端口 22 入站流量的日志记录。
永久规则 vs. 运行时规则
在示例中,我们经常使用 --permanent
参数来添加规则。这会将规则设置为永久规则,并在防火墙重新加载时保留。如果不使用 --permanent
参数,规则将仅在当前运行时生效,重启后将被丢弃。
在进行了一系列规则的更改之后,如果要确保这些更改在服务器重新启动后仍然有效,需要保存规则。你可以使用以下命令保存规则:
|
|
总结
在本文中,我们详细讨论了在 CentOS 7 上管理防火墙的各种命令和操作。通过使用 firewalld
工具,你可以轻松地配置规则、管理服务和自定义防火墙设置,以保护你的服务器免受未经授权的访问和网络攻击。
如果你正在运行一个生产环境中的服务器,建议详细了解 firewalld
的文档以满足你的特定需求。同时,也要定期审查和更新你的防火墙规则,以确保服务器的安全性得到持续维护。
希望这篇文章对你理解 CentOS 7 防火墙命令和操作提供了有用的信息。祝你的服务器安全无虞!