设为首页 收藏本站
查看: 404|回复: 0

[经验分享] centos7中firewall的使用

[复制链接]

尚未签到

发表于 2018-4-25 10:45:24 | 显示全部楼层 |阅读模式
防火墙简介
  动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙,用以支持网络 “zones” ,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IPv4 和 IPv6 防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。
  1.了解防火墙
  一个图像化的配置工具,firewall-config,用于配置 firewalld:它依次用 iptables工具 与执行数据包筛选的内核中的 Netfilter 通信,
  使用图像化的 firewall-config 工具,按下 Super 键进入活动总览,点击 firewall,然后按下 Enter。firewall-config 工具就出现了。您将被提示输入管理员密码。
  firewall-config 工具里有一个标记为 Configuration 的下拉菜单,可以在 运行时间 和 永久 两种模式之间进行选择。要注意,如果您选择了 Permanent ,在左上角会出现一排附加的图标。因为不能在运行模式下改变一个服务参数,所以这些图标仅在永久配置模式中出现。
  由 firewalld 提供的是动态的防火墙服务,而非静态的。因为配置的改变可以随时随地立刻执行,不再需要保存或者执行这些改变。现行网络连接的意外中断不会发生,正如防火墙的所有部分都不需要重新下载。
  提供命令行客户端,firewall-cmd,用于进行永久性或非永久性运行时间的改变,正如在 man firewall-cmd(1)所解释的一样。永久性改变需要按照 firewalld(1) 手册页的解释来进行。注意, firewall-cmd 命令可以由 root 用户运行,也可以由管理员用户——换言之, wheel 群体的成员运行。在后一种情况里,命令将通过 polkit 进程来授权。
  firewalld 的配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 里的各种 XML 文件里,这样保持了这些文件被编辑、写入、备份的极大的灵活性,使之可作为其他安装的备份等等。
  其他应用程序可以使用 D-bus 和 firewalld 通信。
  2.比较 system-config-firewall 以及 iptables 的 firewalld
  firewalld 和 iptables service 之间最本质的不同是:

  •   iptables service 在 /etc/sysconfig/iptables 中储存配置,而 firewalld 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里,。要注意,当 firewalld 在Red Hat Enterprise Linux上安装失败时, /etc/sysconfig/iptables 文件就不存在。
  •   使用 iptables service,每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables里读取所有新的规则,然而使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同之处。因此,firewalld 可以在运行时间内,改变设置而不丢失现行连接。
  使用 iptables tool 与内核包过滤对话也是如此。

  3.对网络区的理解
  基于用户对网络中设备和交通所给与的信任程度,防火墙可以用来将网络分割成不同的区域。NetworkManager 通知 firewalld 一个接口归属某个区域。接口所分配的区域可以由NetworkManager 改变,也可以通过能为您打开相关 NetworkManager 窗口的 firewall-config 工具进行。
  在/etc/firewalld/的区域设定是一系列可以被快速执行到网络接口的预设定。列表并简要说明如下:

  •   drop(丢弃)
  •   任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
  •   block(限制)
  •   任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
  •   public(公共)
  •   在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。
  •   external(外部)
  •   特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
  •   dmz(非军事区)
  •   用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
  •   work(工作)
  •   用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
  •   home(家庭)
  •   用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。
  •   internal(内部)
  •   用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
  •   trusted(信任)
  •   可接受所有的网络连接。
  指定其中一个区域为默认区域是可行的。当接口连接加入了 NetworkManager,它们就被分配为默认区域。安装时,firewalld 里的默认区域被设定为公共区域。
  4.选择一个网络区域
  网络区域名已经选定为不加说明,即可明了,并允许用户快速地做出合理决定。但是,应对默认配置的设定进行检查,而且根据您的需要和风险评估,不必要的服务将不能使用。
  5.对预先定义的服务的理解
  一项服务可以是本地和目的地端口的列表,如果服务被允许的话,也可以是一系列自动加载的防火墙辅助模块。预先定义的服务的使用,让客户更容易被允许或者被禁止进入服务。与对开放端口或者值域,或者端口截然不同,使用预先定义服务,或者客户限定服务,或许能够让管理更容易。 firewalld.service(5) 中的手册页描述了服务配置的选择和通用文件信息。服务通过单个的 XML 配置文件来指定,这些配置文件则按以下格式命名:service-name.xml。
  用图形化 firewall-config 工具查看服务列表,按下 Super 键进入开始菜单,输入 firewall 然后按下 Enter,firewall-config 工具就出现了。您将被提示输入管理员密码。现在,在 Services 标签下,您可以查看服务列表了。
  要使用命令行列出默认的预先定义服务,以 root 身份执行以下命令:
~]# ls /usr/lib/firewalld/services/  请勿编辑/usr/lib/firewalld/services/ ,只有 /etc/firewalld/services/ 的文件可以被编辑。
  要列出系统或者用户创建的系统,以 root 身份执行以下命令:
~]# ls /etc/firewalld/services/  使用图形化 firewall-config 工具和通过编辑 /etc/firewalld/services/ 中的 XML 文件,服务可以被增加和删除。如果服务没有被用户增加或者改变,那么 /etc/firewalld/services/ 中不会发现相应的 XML 文件。如果您希望增加或者改变服务, /usr/lib/firewalld/services/ 文件可以作为模板使用。以 root 身份执行以下命令:
~]# cp /usr/lib/firewalld/services/[service].xml /etc/firewalld/services/[service].xml  然后您可以编辑最近创建的文件。firewalld 优先使用 /etc/firewalld/services/ 里的文件,如果一份文件被删除且服务被重新加载后,会切换到 /usr/lib/firewalld/services/。
  6.理解直接接口
  firewalld 有一个被称为 “direct interface”(直接接口),它可以直接通过 iptables、ip6tables 和ebtables 的规则。它适用于应用程序,而不是用户。如果您不太熟悉 iptables,那么使用直接接口是很危险的,因为您可能无意中导致防火墙被入侵。firewalld 保持对所增加项目的追踪,所以它还能质询 firewalld 和发现由使用直接端口模式的程序造成的更改。直接端口由增加 --direct 选项到 firewall-cmd 命令来使用。
  直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。这些规则不是永久性的,它们需要在每次通过 D-BU S从 firewalld 接到启动、重新启动和重新加载信息后运用。
  7.检查是否已安装防火墙
  在 Red Hat Enterprise Linux 7 中,默认安装 firewalld 和图形化用户接口配置工具 firewall-config。作为 root 用户运行下列命令可以检查:
~]# yum install firewalld firewall-config 8.禁用防火墙
  要禁用 firewalld,则作为 root 用户运行下列命令:
~]# systemctl disable firewalld# systemctl stop firewalld9.使用 iptables 服务
  要用 iptables 和 ip6tables 服务代替 firewalld,则以 root 身份运行以下命令,先禁用 firewalld:
~]# systemctl disable firewalld# systemctl stop firewalld  然后安装 iptables-services 程序包,以 root 身份输入以下命令:
~]# yum install iptables-services  iptables-services 程序包包含了 iptables 服务和 ip6tables 服务。
  然后,以 root 身份运行 iptables 和 ip6tables 命令:
  # systemctl start iptables  
  # systemctl start ip6tables
  
  # systemctl enable iptables
  
  # systemctl enable ip6tables
10.启动防火墙
  要启动 firewalld,则以 root 用户身份输入以下命令:
~]# systemctl start firewalld11.检查防火墙是否运行
  如果 firewalld 在运行,输入以下命令检查:
~]$ systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemon  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
  Active: active (running) since Sat 2013-04-06 22:56:59 CEST; 2 days ago
  Main PID: 688 (firewalld)
  CGroup: name=systemd:/system/firewalld.service
  另外,检查 firewall-cmd 是否可以通过输入以下命令来连接后台程序:
~]$ firewall-cmd --state running12.安装防火墙
  要安装firewalld,则以 root 用户身份运行以下命令:
~]# yum install firewalld  要安装图形化用户接口工具 firewall-config,则以 root 用户身份运行下列命令:
~]# yum install firewall-config13.配置防火墙
  防火墙可以通过使用图形化用户接口工具 firewall-config、命令行接口工具 firewall-cmd 和编辑 XML 配置文件来配置。下面会以此详述这些方法:
启动图形化防火墙设置工具
  要启动图形化 firewall-config 工具,按下 Super 键进入开始菜单,点击 firewall,然后按 Enter 键,firewall-config 工具就出现了。您会被提示输入一个管理员密码。
  要用命令行启动图形化防火墙配置工具,则以 root 用户身份输入以下命令:
~]# firewall-config  Firewall Configuration 窗口就打开了。注意,这个命令可以由普通用户运行,但随后您会被反复提示输入管理员密码。

  图 4.2. 防火墙配置工具
  在左下方角落寻找 “Connected” 字符,这标志着 firewall-config 工具已经连接到用户区后台程序 firewalld。注意,ICMP Types、Direct Configuration 和 Lockdown Whitlist 标签只在从 View 下拉菜单中选择之后才能看见。
改变防火墙设置
  要立刻改变现在的防火墙设置,须确定当前视图设定在 Runtime。或者,从下拉菜单中选择Permanent,编辑下次启动系统或者防火墙重新加载时执行的设定。
  注意
  在 Runtime 模式下更改防火墙的设定时,一旦您启动或者清除连接服务器的复选框,选择立即生效。当您在一个也许还被其他用户使用的系统上工作时,应当谨记这一点。
  在Permanent 模式下更改防火墙的设定,您的选择将仅仅在您重新加载防火墙或者系统重启之后生效。您可以使用 文件 菜单下的重新加载图标,或者点击 选项 菜单,选择 重新加载防火墙 。
  您可以选择左边列里的分区。您将注意到这些分区包含一些可用的服务,您可能需要调整或者滚动窗口才能看见整个列表。您可以通过选择和取消选择一个服务来自定义设定。
增加一个接口到分区
  要增加或者重新分配一个连接到分区的接口,则启动 firewall-config,从菜单栏选择 Options,由下拉菜单里选择 更改连接的分区 ,Connections 列表就出现了。选择被分配的连接,出现 Select Zone for Connection 窗口。从下拉菜单中选择新的防火墙分区并点击 OK。
设置默认分区
  要设定一个将要被分配新接口的分区作为默认值,则启动 firewall-config,从菜单栏选择Options,由下拉菜单中选择 Change Default Zone,出现Default Zone 窗口。从给出的列表中选择您需要用的分区作为默认分区,点击 OK。
配置服务
  要使用或者禁用一个预先设定或用户服务,则启动 firewall-config工具并选择将要配置服务的网络分区。选中Services标签并选择每个您需要信任的服务类型的复选框。清除复选框则限制服务。
  要编辑一项服务,开始 firewall-config 工具,然后从标记为 Configuration 的下拉选项菜单选择Permanent 模式。其余的图标和菜单案件会出现在 Services 窗口的底部。选择您想要配置的服务。
  Ports and Protocols 标签可以为选择的服务执行增加、更改、移除端口和协议。模块标签用于配置Netfilter 辅助模块。Destination模块使得受限的流量进入一个特定的目的地址和互联网协议 (IPv4 or IPv6)。
打开防火墙里的端口
  要允许流量通过防火墙到达某个端口,则启动 firewall-config 并选择您想更改设定的网络区域。选择Ports 图标并点击右边的 Add 按钮,Port and Protocol 就打开了。
  输入端口数量或者端口号范围,获得许可。从下拉菜单中选择 tcp 或者 udp。
使用伪装的 IP 地址
  要将 IPv4 地址转换为一个单一的外部地址,则启动 firewall-config 工具并选择需要转换地址的网络区域。选择 Masquerading 标签和复选框以便把 IPv4 地址转换成一个单一的地址。
配置端口转发
  为一个特定端口转发入站网络流量或 “packets” 到一个内部地址或者替代端口,首先激活伪装IP地址,然后选择 Port Forwarding 标签。
  在窗口靠上部分选择入站流量协议和端口或者端口范围。靠下部分是用于设置目的端口细节的。
  要转发流量到一个本地端口即同一系统上的端口,需选择 Local forwarding 复选框,输入要转发的流量的本地端口或者端口值范围。
  要转发流量到其他的 IPv4 地址,则选择 Forward to another port 复选框,输入目的地 IP 地址和端口或者端口范围。如果端口位置空缺则默认发送到同一个端口。点击 OK 执行更改。
配置 ICMP 过滤
  要使用或者禁用一个 ICMP 过滤,则启动 firewall-config 工具并选择要过滤其信息的网络区域。选择ICMP Filter 图标并选择每种您需要过滤的 ICMP 信息类型的复选框。清除复选框以禁用过滤。这种设定是单向的,默认允许全部。
  要编辑一个 ICMP 类型,则启动 firewall-config然后从标签为 Configuration 的下拉菜单里选择Permanent 模式。在 Services 窗口底部会出现附加图标。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451773-1-1.html 上篇帖子: CentOS_6.x安装VNC_Server 下篇帖子: centos7中firewall的使用-2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表