1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

CentOS 7上的FirewallD简明指南

2022-11-11 | 运维 | 1818ip | 661°c
A+ A-

CentOS 7上的FirewallD简明指南

FirewallD 是 CentOS 7 服务器上默认可用的防火墙管理工具。基本上,它是 iptables 的封装,有图形配置工具 firewall-config 和命令行工具 firewall-cmd。使用 iptables 服务,每次改动都要求刷新旧规则,并且从 /etc/sysconfig/iptables 读取新规则,然而 firewalld 只应用改动了的不同部分。

FirewallD 的区域(zone)

FirewallD 使用服务(service) 和区域(zone)来代替 iptables 的规则(rule)和链(chain)。

默认情况下,有以下的区域(zone)可用:

  • drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。
  • block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。
  • public — 只接受被选择的传入网络连接,用于公共区域。
  • external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。
  • dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。
  • work — 对于处在你工作区域内的计算机,只接受被选择的传入网络连接。
  • home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。
  • internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。
  • trusted — 所有网络连接都接受。

要列出所有可用的区域,运行:

#firewall-cmd--get-zones
workdropinternalexternaltrustedhomedmzpublicblock

列出默认的区域 :

#firewall-cmd--get-default-zone
public

改变默认的区域 :

#firewall-cmd--set-default-zone=dmz
#firewall-cmd--get-default-zone
dmz

FirewallD 服务

FirewallD 服务使用 XML 配置文件,记录了 firewalld 服务信息。

列出所有可用的服务:

#firewall-cmd--get-services
amanda-clientamanda-k5-clientbaculabacula-clientcephceph-mondhcpdhcpv6dhcpv6-clientdnsdocker-registrydropbox-lansyncfreeipa-ldapfreeipa-ldapsfreeipa-replicationftphigh-availabilityhttphttpsimapimapsippipp-clientipseciscsi-targetkadminkerberoskpasswdldapldapslibvirtlibvirt-tlsmdnsmoshmountdms-wbtmysqlnfsntpopenvpnpmcdpmproxypmwebapipmwebapispop3pop3spostgresqlprivoxyproxy-dhcpptppulseaudiopuppetmasterradiusrpc-bindrsyncdsambasamba-clientsanesmtpsmtpssnmpsnmptrapsquidsshsynergysyslogsyslog-tlstelnettftptftp-clienttinctor-sockstransmission-clientvdsmvnc-serverwbem-httpsxmpp-boshxmpp-clientxmpp-localxmpp-server

XML 配置文件存储在 /usr/lib/firewalld/services/ 和 /etc/firewalld/services/ 目录下。

用 FirewallD 配置你的防火墙

作为一个例子,假设你正在运行一个 web 服务器,SSH 服务端口为 7022 ,以及邮件服务,你可以利用 FirewallD 这样配置你的服务器:

首先设置默认区为 dmz。

#firewall-cmd--set-default-zone=dmz
#firewall-cmd--get-default-zone
dmz

为 dmz 区添加持久性的 HTTP 和 HTTPS 规则:

#firewall-cmd--zone=dmz--add-service=http--permanent
#firewall-cmd--zone=dmz--add-service=https--permanent

开启端口 25 (SMTP) 和端口 465 (SMTPS) :

firewall-cmd--zone=dmz--add-service=smtp--permanent
firewall-cmd--zone=dmz--add-service=smtps--permanent

开启 IMAP、IMAPS、POP3 和 POP3S 端口:

firewall-cmd--zone=dmz--add-service=imap--permanent
firewall-cmd--zone=dmz--add-service=imaps--permanent
firewall-cmd--zone=dmz--add-service=pop3--permanent
firewall-cmd--zone=dmz--add-service=pop3s--permanent

因为将 SSH 端口改到了 7022,所以要移除 ssh 服务(端口 22),开启端口 7022:

firewall-cmd--remove-service=ssh--permanent
firewall-cmd--add-port=7022/tcp--permanent

要应用这些更改,我们需要重新加载防火墙:

firewall-cmd--reload

最后可以列出这些规则:

#firewall-cmd–list-all
dmz
target:default
icmp-block-inversion:no
interfaces:
sources:
services:httphttpsimapimapspop3pop3ssmtpsmtps
ports:7022/tcp
protocols:
masquerade:no
forward-ports:
sourceports:
icmp-blocks:
richrules:

译者简介:

Locez 是一个喜欢技术,喜欢折腾的 Linuxer,靠着对 Linux 的兴趣自学了很多 Linux 相关的知识,并且志在于为 Linux 在中国普及出一份力。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/8481.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。