firewalld防火墙配置学习笔记

简介

firewalld服务是Linux系统中默认的动态防火墙配置管理工具,拥有基于CLI(命令行界面)和基于GUI(图形用户界面)两种管理方式。
特点:

  • 支持动态更新技术
  • 加入了区域的概念
    区域: firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产厂家的不同选择合适的策略集合,从而实现防火墙策略之间的快速切换。

firewalld中常用的区域名称及策略规则

区域默认策略规则
trusted允许所有的数据包
home拒绝流入的流量,除非与流出的流量有关;如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal等同home区域
work拒绝流入的流量,除非与流出的流量相关;如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public拒绝流入的流量,除非与流出的流量相关;如果流量与ssh、dhcpv6-client服务相关,则允许流量
external拒绝流入的流量,除非与流出的流量相关;如果流量与ssh服务相关,则允许流量
dmz拒绝流入的流量,除非与流出的流量相关;如果流量与ssh服务相关,则允许流量
block拒绝流入的流量,除非与流出的流量相关
drop拒绝流入的流量,除非与流出的流量相关

firewalld 命令行防火墙配置管理工具

命令: firewalld-cmd
----------------------------------------------------firewalld-cmd命令参数------------------------------------------------------

参数作用
--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关闭应急状况模式
--query-service=<端口号/协议>查询端口号或者协议是否响应访问请求
  • firewalld防火墙策略默认为当前生效模式(runtime)模式,配置随着系统重启失效
  • 永久(permanent)模式,在使用firewall-cmd时添加--permanent参数,但是在系统重启之后才能生效
  • 永久模式想要立即生效需要执行firewall-cmd --reload命令

操作实践

查询网卡信息

nmcli 命令

[root@MyCentOS ~]# nmcli
virbr0: 已连接 到 virbr0
        "virbr0"
        bridge, 52:54:00:F9:CF:22, 软件, mtu 1500
        inet4 192.168.122.1/24
        route4 192.168.122.0/24

ens33: 已断开
        "Intel 82545EM"
        1 连接可用
      

lo: 未托管
        "lo"
        loopback (unknown), 00:00:00:00:00:00, 软件, mtu 65536

virbr0-nic: 未托管
        "virbr0-nic"
        tun, 52:54:00:F9:CF:22, 软件, mtu 1500

使用 "nmcli device show" 获取关于已知设备的完整信息,以及 
"nmcli connection show" 获取活动连接配置集的概述。

完整的用法细节,可参考 nmcli(1) 和 nmcli-examples(7) 手册页。

查询正在使用的网卡所在区域

[root@MyCentOS ~]# firewall-cmd --get-zone-of-interface=virbr0
libvirt

更改网卡默认区域

更改默认区域为external

[root@MyCentOS ~]# firewall-cmd --permanent  --zone=external  --change-interface=virbr0
success
查询runtime模式下网卡所处区域
[root@MyCentOS ~]# firewall-cmd --get-zone-of-interface=virbr0
libvirt
查询permanent模式下网卡所处区域
[root@MyCentOS ~]# firewall-cmd --permanent  --get-zone-of-interface=virbr0
external

查询external区域是否响应ssh请求

[root@MyCentOS ~]# firewall-cmd --zone=external --query-service=ssh
yes

设置端口号流量策略为允许

[root@MyCentOS ~]# firewall-cmd --zone=libvirt --add-port=8080-8081/tcp
success

流量转发

命令格式: firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

把访问本机某端口的流量转发到其他端口
[root@MyCentOS ~]# firewall-cmd --permanent  --zone=libvirt --add-forward-port=port=666:proto=tcp:toport=66:toaddr=192.168.10.10
success

命令注释: 在永久模式下,针对libvirt区域将本机IP 192.168.10.10上端口为666接收到的信息转发到端口号为66。

富规则

拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务。

[root@MyCentOS ~]# firewall-cmd --permanent  --zone=libvirt --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success

富规则貌似还有挺多东西,以后有时间再详细看看。

富规则特点:

  • 优先级在防火墙策略中最高
  • 能表现更细致、更详细的防火墙配置策略
  • 可以针对源端口号、源目的地址等很多信息进行更有针对性的策略配置

服务的访问控制列表

iptables防火墙与firewalld防火墙配置管理工具是在内网与外网之间的屏障,是基于TCP/IP协议的流量过滤工具。TCP Wrappers是Linux系统中系统内的防火墙。linux通过两个层面的防火墙策略来保护系统的完全。
TCP Wrappers

  • linux系统中默认启用的一款流量监控程序。
  • TCP Wrappers服务防火墙策略由两个控制列表文件控制,分别为允许控制列表文件(/etc/hosts.allow)和拒绝控制列表文件(/etc/hosts.deny)。
  • 控制列表修改后立即生效,先匹配允许控制列表,在匹配拒绝控制列表,如果都没匹配到则默认放行
    ---------------------------------------------控制列表常用参数-------------------------------------------------------------
客户端类型示例满足示例的客户端列表
单一主机192.168.10.10IP地址为192.168.10.10的主机
指定网段192.168.10.IP段为.168.10.0/24的主机
指定网段192.168.10.0/255.255.255.0IP段为.168.10.0/24的主机
指定DNS后缀.bilibili.com所有DNS后缀为.bilibili.com的主机
指定主机名称www.bilibili.com主机名称为www.bilibili.com的主机
指定所有客户端ALL所有主机全部包括在内

配置TCP Wrappers防火墙原则

  1. 编写拒绝策略规则时,天写服务名称,而不是协议名称
  2. 先编写拒绝策略规则,再编写允许策略规则,能更直观看见相应效果。

配置拒绝控制列表

打开/etc/hosts.deny文件在其中添加下一句

ssh: *

以上语句表示拒绝所有请求要求使用SSH服务的流量。

配置允许拒绝控制列表

打开/etc/hosts.allow文件,在其中添加下列一句。

ssh:192.168.10.

上面的语句表示允许192.168.10.网段的所有IP地址访问ssh服务。

总结

当存在多块网卡同时提供服务时,对内网和对外网提供服务的网卡要选择的防火墙策略区域也是不一样的。将网卡与防火墙策略区域进行绑定,就可以使用不同的防火墙区域策略,对源自不同网卡的流量进行针对性的监控,效果更好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值