CentOS7使用firewalld操作防火墙与端口

1、什么是FirewallD

  • RHEL 7系统中集成了多款防火墙管理工具,其中firewalld(Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。可以查看最后的介绍
  • 例如,我们有一台笔记本电脑,每天都要在办公室、咖啡厅和家里使用。按常理来讲,这三者的安全性按照由高到低的顺序来排列,应该是家庭、公司办公室、咖啡厅。当前,我们希望为这台笔记本电脑指定如下防火墙策略规则:在家中允许访问所有服务;在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。在以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率。
  • 在RHEL/CentOS 6/5/4系统,iptables是默认的防火墙,所以关于防火墙的操作也可以使用iptables

2、安装FirewallD

yum install firewalld firewall-config

3、配置firewalld-cmd

  • 查看firewalld的版本: firewall-cmd --version
  • 查看firewalld的帮助: firewall-cmd --help
  • 显示状态: firewall-cmd --state
  • 查看所有打开的端口: firewall-cmd --zone=public --list-ports
  • 更新防火墙规则: firewall-cmd --reload
  • 查看区域信息: firewall-cmd --get-active-zones
  • 查看指定接口所属区域:firewall-cmd --get-zone-of-interface=eth0
  • 拒绝所有包:firewall-cmd --panic-on
  • 取消拒绝状态:firewall-cmd --panic-off
  • 查看是否拒绝:firewall-cmd --query-panic

4、firewalld的基本使用

但是因为CentOS7版本后防火墙默认使用firewalld,因此在CentOS7中也可以使用以下命令关闭防火墙

  • 临时启动防火墙和firewall-cmd命令: systemctl start firewalld
  • 临时关闭防火墙和firewall-cmd命令:systemctl stop firewalld
  • 查看防火墙和firewall-cmd命令的状态:systemctl status firewalld
  • 开机禁用防火墙和firewall-cmd命令:systemctl disable firewalld
  • 开机启用防火墙和firewall-cmd命令:systemctl enable firewalld

5、firewalld开启端口号(开启外网能访问)

这个可以指定端口号开启关闭外网访问。以及查看状态等

  • 开启80端口(–permanent永久生效,没有此参数重启后失效):firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 重新载入(更新防火墙规则):firewall-cmd --reload
  • 查看端口状态:firewall-cmd --zone= public --query-port=80/tcp
  • 关闭端口:firewall-cmd --zone= public --remove-port=80/tcp --permanent

6、firewall-cmd命令中使用的参数以及作用

命令行终端是一种极富效率的工作方式,firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本。它的参数一般都是以“长格式”来提供的,大家不要一听到长格式就头大,因为RHEL 7系统支持部分命令的参数补齐,其中就包含这条命令(很酷吧)。也就是说,现在除了能用Tab键自动补齐命令或文件名等内容之外,还可以用Tab键来补齐下面所示的长格式参数
参数 作用

命令说明
get-default-zone查询默认的区域名称
set-default-zone=<区域名称>设置默认的区域,使其永久生效
get-zones显示可用的区域
get-services显示预先定义的服务
get-active-zones显示当前正在使用的区域与网卡名称
add-source将源自此IP或子网的流量导向指定的区域
remove-source不再将源自此IP或子网的流量导向某个指定区域
add-interface=<网卡名称>将源自该网卡的所有流量都导向某个指定区域
change-interface=<网卡名称>将某个网卡与区域进行关联
list-all显示当前区域的网卡配置参数、资源、端口以及服务等信息
list-all-zones显示所有区域的网卡配置参数、资源、端口以及服务等信息
add-service=<服务名>设置默认区域允许该服务的流量
add-port=<端口号/协议>设置默认区域允许该端口的流量
remove-service=<服务名>设置默认区域不再允许该服务的流量
remove-port=<端口号/协议>设置默认区域不再允许该端口的流量
reload让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
panic-on开启应急状况模式
panic-off关闭应急状况模式

ps 理解网络区

在CentOS/RHEL 7系统中,基于用户对网络中设备和通信所给与的信任程度,防火墙可用于将网络划分成不同的区域,区域类型如下:

  • drop(丢弃)
    任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
  • block(限制)
    任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
  • public(公共)
    在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。
  • external(外部)
    特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算机,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
  • dmz(非军事区)
    用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
  • work(工作)
    用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
  • home(家庭)
    用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。
  • internal(内部)
    用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
  • trusted(信任)
    可接受所有的网络连接。
    对于区域的修改,可使用网络管理器NetworkManager搞定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值