亚游wwwag8com
你好,游客 登录 注册
背景:
阅读新闻

CentOS 7上安装配置FirewallD防火墙详解

[日期:2018-11-03] 来源:Linux公社  作者:醉落红尘 [字体: ]

亚游wwwag8com,[汽车之家新闻] 此前我们曾报道了昌河M70车型的申报信息,新车为一款全新的MPV车型,搭载1.5L自然吸气发动机。近日我们从相关渠道获悉,新车将于12月内正式发布。

在2012年伦敦奥运会上,扎里波娃以9分06秒72的成绩获得冠军,这是俄罗斯代表队在当届奥运会上获得的第一枚金牌。在此之前,扎里波娃曾在世锦赛上获得这个项目的金牌,她是这个项目上最为顶尖的运动员之一。云南高速结冰15车相撞 家长翻护栏致怀抱女婴坠亡  国家知识产权发展研究中心的邓军主任提醒业界,如果不重视专利的开发和保护,手机行业有可能重复专利纠纷,中国企业将为此付出昂贵的专利费用,而这决不是危言耸听。

正确配置的防火墙是整个系统安全性中最重要的方面之一。

FirewallD是一个完整的防火墙解决方案,用于管理系统的iptables规则,并提供用于对其进行操作的D-Bus接口。 从CentOS 7开始,FirewallD将替换iptables为默认的防火墙管理工具。

在本教程中,我们将向您展示如何在CentOS 7系统上使用FirewallD设置防火墙,并向您解释基本的FirewallD概念。

CentOS 7上安装配置FirewallD防火墙详解

必要条件

在开始本教程之前,请确保使用具有sudo权限的用户帐户或root用户登录服务器。最佳做法是将管理命令作为sudo用户而不是root用户运行,如果您的CentOS系统上没有sudo用户,则可以按照这些说明创建一个。

Firewalld基本概念

FirewallD使用区域和服务的概念,而不是iptables链和规则。根据您要配置的区域和服务,您可以控制允许或禁止进出系统的流量。

可以使用firewall-cmd命令行实用程序配置和管理FirewallD。

Firewalld区域

区域是预定义的规则集,用于根据计算机连接到的网络上的信任级别指定应允许的流量。您可以将网络接口和源分配给区域。

  • Bellow是FirewallD提供的区域,根据区域的信任级别从不信任到可信:
  • drop:删除所有传入连接而不发出任何通知。仅允许传出连接。
  • block:所有传入连接都被拒绝,其中包含用于IPv4的icmp-host-prohibited消息和用于IPv6n的icmp6-adm-prohibited。仅允许传出连接。
  • 公众:用于不受信任的公共场所。您不信任网络上的其他计算机,但您可以允许选定的传入连接。
  • external:用于在系统充当网关或路由器时启用NAT伪装的外部网络。仅允许选定的传入连接。
  • internal:用于在系统充当网关或路由器时在内部网络上使用。网络上的其他系统通常是可信的。仅允许选定的传入连接。
  • dmz:用于位于非军事区的计算机,该计算机对网络其余部分的访问权限有限。仅允许选定的传入连接。
  • 工作:用于工作机器。网络上的其他计算机通常是可信的。仅允许选定的传入连接。
  • home:用于家用机器。网络上的其他计算机通常是可信的。仅允许选定的传入连接。
  • trusted:接受所有网络连接。信任网络中的所有计算机。

防火墙服务

Firewalld服务是在区域内应用的预定义规则,并定义必要的设置以允许特定服务的传入流量。

Firewalld运行时和永久设置

Firewalld使用两个独立的配置集,运行时和永久配置。

运行时配置是实际运行的配置,并且在重新启动时不会持久。 当Firewalld服务启动时,它会加载永久配置,从而成为运行时配置。

默认情况下,使用firewall-cmd实用程序更改Firewalld配置时,更改将应用于运行时配置,以使更改成为永久性,您需要使用--permanent标志。

安装并启用FirewallD

01、安装FirewallD

默认情况下,Firewalld安装在CentOS 7上,但如果系统上未安装,则可以通过键入以下命令安装软件包:

sudo yum install firewalld

02、检查防火墙状态。

默认情况下禁用Firewalld服务。 您可以使用以下命令检查防火墙状态

sudo firewall-cmd --state

如果您刚刚安装或从未激活过,则该命令将打印不运行,否则您将看到正在运行。

03、启用FirewallD

要启动FirewallD服务并在引导类型上启用它:

sudo systemctl start firewalld
sudo systemctl enable firewalld

如下图:

如何在CentOS 7上安装配置FirewallD防火墙详解

使用Firewalld区域

首次启用FirewallD服务后,公共区域将设置为默认区域。 您可以键入以下内容来查看默认区域:

sudo firewall-cmd --get-default-zone

输出:

public

要获取所有可用区域的列表,请输入:

sudo firewall-cmd --get-zones

输出:

block dmz drop external home internal public trusted work

默认情况下,为所有网络接口分配默认区域。 要检查网络接口使用的区域类型,请执行以下操作:

sudo firewall-cmd --get-active-zones

输出:

public
  interfaces: ens33

上面的输出告诉我们,接口ens33分配给public区域。

您可以使用以下方式打印区域配置设置:

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

输出:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client
  ports: 3389/tcp 21/tcp 60000-65535/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

以上命令截图如下:

如何在CentOS 7上安装配置FirewallD防火墙详解

从上面的输出中,我们可以看到公共区域处于活动状态并设置为默认值,由ens33接口使用。还允许与DHCP客户端和SSH相关的连接。

如果要检查所有可用区域的配置,请键入:

sudo firewall-cmd --list-all-zones

该命令将打印一个巨大的列表,将所有可用区域的设置。

如下图:

如何在CentOS 7上安装配置FirewallD防火墙详解

更改接口区域

您可以使用--zone标志结合--change-interface标志轻松更改接口区域。 以下命令将eth1接口分配给工作区:

sudo firewall-cmd --zone=work --change-interface=eth1

输入以下内容验证更改:

sudo firewall-cmd --get-active-zones

输出:
work
  interfaces: eth1
public
  interfaces: eth0

更改默认区域

要更改默认区域,请使用--set-default-zone标志,后跟要作为默认区域的名称。 例如,要将默认区域更改为home,您应该运行以下命令:

sudo firewall-cmd --set-default-zone=home

验证更改:

sudo firewall-cmd --get-default-zone

输出

home

开放端口或服务

使用FirewallD,您可以根据称为服务的预定义规则允许特定端口的流量。

要获取所有默认可用服务类型的列表:

sudo firewall-cmd --get-services

如何在CentOS 7上安装配置FirewallD防火墙

您可以通过在/usr/lib/firewalld/services目录中打开关联的.xml文件来查找有关每个服务的更多信息。 例如,HTTP服务定义如下:

/usr/lib/firewalld/services/http.xml

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WWW (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="80"/>
</service>

要允许公共区域中的接口传入HTTP流量(端口80),仅针对当前会话(运行时配置)类型:

sudo firewall-cmd --zone=public --add-service=http

如果要修改默认区域,可以省略--zone标志。

要验证是否已成功添加服务,请使用--list-services标志:

sudo firewall-cmd --zone=public --list-services

输出:

ssh dhcpv6-client http

如果你想在重新启动后保持端口80打开,你需要再次输入相同的命令,但这次使用--permanent标志:

sudo firewall-cmd --permanent --zone=public --add-service=http

使用--list-services和--permanent标志来验证您的更改:

sudo firewall-cmd --permanent --zone=public --list-services

输出:

ssh dhcpv6-client http

删除服务的语法与添加服务时的语法相同。 只需使用--remove-service而不是--add-service标志:

sudo firewall-cmd --zone=public --remove-service=http --permanent

上面的命令将从公共区域永久配置中删除http服务。

如果您正在运行没有适当服务的Plex Media Server等应用程序,该怎么办?

【Plex Media Server进入Ubuntu和其他Linux发行版的Snap生态应用  见 /wwwd35clinuxidcd35ccom/Linux/2018-10/154783.htm

在这种情况下,您有两种选择。 您可以打开相应的端口或定义新的FirewallD服务。

例如,Plex服务器侦听端口32400并使用TCP,使用--add-port =标志打开当前会话的公共区域中的端口:

sudo firewall-cmd --zone=public --add-port=32400/tcp

协议可以是tcp或udp。

要验证端口是否已成功添加,请使用--list-ports标志:

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

32400/tcp

要在重新启动后保持端口32400打开,请通过使用--permanent标志运行相同的命令将规则添加到永久设置。

删除端口的语法与添加端口时的语法相同。 只需使用--remove-port而不是--add-port标志。

sudo firewall-cmd --zone=public --remove-port=32400/tcp

创建新的FirewallD服务

正如我们已经提到的,默认服务存储在/ usr / lib / firewalld / services目录中。 创建新服务的最简单方法是将现有服务文件复制到/ etc / firewalld / services目录,该目录是用户创建的服务的位置并修改文件设置。

例如,要为Plex Media Server创建服务定义,我们可以使用HTTP服务文件:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

打开新创建的plexmediaserver.xml文件,并在<short>和<description>标记内更改服务的短名称和描述。 您需要更改的最重要标记是端口标记,用于定义要打开的端口号和协议。 在以下示例中,我们将打开1900个UDP和32400个TCP端口。

/etc/firewalld/services/plexmediaserver.xml

<?xml version="1.0" encoding="utf-8"?>
<service version="1.0">
<short>plexmediaserver</short>
<description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description>
<port protocol="udp" port="1900"/>
<port protocol="tcp" port="32400"/>
</service>

保存文件并重新加载FirewallD服务:

sudo firewall-cmd --reload

您现在可以在区域中使用plexmediaserver服务,与任何其他服务相同。

使用Firewalld转发端口

要将流量从一个端口转发到另一个端口或地址,请首先使用--add-masquerade开关为所需区域启用伪装。 例如,要为外部区域类型启用伪装:

sudo firewall-cmd --zone=external --add-masquerade

在同一服务器上将流量从一个端口转发到另一个端口

在以下示例中,我们将流量从端口80转发到同一服务器上的端口8080:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

将流量转发到其他服务器

在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口80:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.2

将流量转发到其他端口上的另一台服务器

在以下示例中,我们将流量从端口80转发到IP 192.168.1.2的服务器上的端口8080:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.2

如果你想使前锋永久性只是附加--permanent标志。

使用FirewallD创建规则集

在以下示例中,我们将向您展示如果您运行Web服务器时如何配置防火墙。 我们假设您的服务器只有一个接口eth0,并且您希望仅在SSH,HTTP和HTTPS端口上允许传入流量。

01、将默认区域更改为dmz

我们将使用dmz(非军事化或隔离区)区域,因为默认情况下它只允许SSH流量。 要将默认区域更改为dmz并将其分配给eth0接口,请运行以下命令:

sudo firewall-cmd --set-default-zone=dmz
sudo firewall-cmd --zone=dmz --add-interface=eth0

02、打开HTTP和HTTPS端口:

要打开HTTP和HTTPS端口,请向dmz区域添加永久服务规则:

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

通过重新加载防火墙立即使更改生效:

03、验证更改

要检查dmz区域配置设置,请键入:

sudo firewall-cmd --zone=dmz --list-all

输出:

dmz (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh http https
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

上面的输出告诉我们dmz是默认区域,应用于eth0接口,ssh(22)http(80)和https(443)端口打开。

总结

您已经学习了如何在CentOS系统上配置和管理FirewallD服务。

确保允许系统正常运行所需的所有传入连接,同时限制所有不必要的连接。

Linux公社的RSS地址亚游wwwag8com/wwwd35clinuxidcd35ccom/rssFeed.aspx

本文永久更新链接地址亚游wwwag8com/wwwd35clinuxidcd35ccom/Linux/2018-11/155155.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
十八大以来120名原省部级以上干部被立案侦查 普京要求换装14个团亚尔斯洲际核导弹 并量产S500 贵州省委常委班子获“补血” 一度减员至7人 易车网11月9日发布第三季度财报 广东山东两强省主官公开亮啥短? 中国金洋:预料恒指30000点至30800点水平上落 天王星云层被发现含硫化氢 像一颗大号臭鸡蛋(图) 安监总局16个督导组赴各地开展两会期间生产检查 戴姆勒称未来与吉利的交易取决于现在的合作伙伴北汽 赖清德自称“台独”工作者 吴敦义:啥意思说清楚 间歇性断食疑问大解除 想用怕出问题 教你正确打开它 当完得分王又当板神!这样的阿不都让戈尔偷笑
5岁男童9楼坠落奇迹生还 多亏楼下住户安装了它 恒大赢球稳不稳?参与亚冠问答赢一万金豆 巴基斯坦海军举行海上实战演习 发射中国导弹 货币基金最近有点“疯”7日年化收益率最高涨超10% 社交电商换发新生机 美丽联合集团或赴美IPO 路透社:丰田计划通过广汽进入中国电动汽车市场 四川德阳50人在酒店参加婚宴后呕吐腹泻:饭有异味 女子拿菜刀路上游荡被警方控制 家属:精神有异常 李盈莹:第一次决赛不紧张 从金软景那学到很多 抢人大战蔓延金融领域 上海浦东将推五大举措引才 落马厅官手机存有大量淫秽视频 说不全入党誓词 红球2组连号&断一区 双色球开1注1000万落江苏
赵薇公司或遭逾60亿元索赔 270余位投资者已起诉 陆奇出局 烧钱的AI敌不过竞价排名 四看中国市场世界机遇|第三看:中国营商环境越来越好 Facebook为在保守派政治会议期间演示VR射击游戏… 穆帅遭英媒挖坟!当年嘲笑弗格森 现在遭报应了 台媒:美军陆战队或将进驻台湾 进一步刺激台海局势 以色列要建\"中东超级联盟\"围剿伊朗 还威吓叙总统 詹姆斯遭疑似脑震荡回更衣室!这下该吹恶犯吗 欧盟开始着手制定九项经济计划 维护伊核协议 开盘:美股延续上周下跌趋势 道指下挫逾300点 中国留学生在美持有突击步枪被捕 还买了退役警车 宋超智不再担任国家测绘局副局长(图/简历) 昆明市政府工作报告:今年推进嵩明和宜良撤县设市 亚游wwwag8com