Firewalld 学习与配置

Firewalld

安全

  1. 按照OSI参考模型
  2. 物理安全: 防火、防水、防雷、防鼠、防盗、防静电。
  3. 网络安全:IP、端口、协议、网络层、传输层
  4. 应用层安全:http协议 按照功能分类: ​主机防火墙 ​ 网络防火墙
  5. 防火墙 ​
    软件防火墙: 在当前软件系统上安装实现 ​
    硬件防火墙:软件和硬件捆绑

centos 6 :iptables
centos 7 : iptables、firewalld(默认)

1.防火墙基本概念

Centos 7系统继承了多款防火墙管理工具,其中firewalld(Dynamic Firewalld Manager of Linux systems,Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。
在这里插入图片描述

1.1 firewalld与iptables的不同点

1、firewalld可以动态修改单条规则,不需要像iptables那样,在修改了规则后必须全部刷新猜可以生效。

2、firewalld在使用上比iptables人性化很多,即使不明白五表五链而且对TCP/IP协议不理解也可以实现大部分功能。

3、firewalld跟iptables比起来,不好的地方是每个服务都需要设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制

2.firewall区域概述

简单来说,区域就是Firewalld预先准备的几套防火墙策略集合(策略模板),用户可以根据不同场景限制核实的策略集合,从而实现防火墙策略之间的快速切换
在这里插入图片描述

2.1 Firewall区域规则

在这里插入图片描述
在这里插入图片描述

2.2 注意:

  1. 一个zone区域只能绑定一个网卡,设定不同的匹配规则

  2. 一个zone区域又可以针对不同的源地址设置不同的规则

3.Firewalld相关配置文件

默认定义的区域模板配置文件/usr/lib/firewalld/

存储规则配置文件/etc/firewalld

4.防火墙基本指定参数

firewalld的规则分两种状态
runtime(运行时):修改规则马上生效,但是临时生效[不建议]
permanent(持久):修改后需要重启reload重载服务[强烈推荐]
firewall-cmd命令分类

参数作用
Zone区域相关指令
–get-default-zone查询默认的区名称
–set-default-zone=<区域名称>设置默认的区域,使其永久生效
–get-active-zones显示正当前正在使用的区域与网络名称
–get-zones显示总共可用的区域
–new-zone=<区域名称>新增区域
Service服务相关指令
–get-service显示预先定义的服务
–add-service=<服务名>设置默认区域允许该服务的流量
–remove-service=<服务明>设置默认区域不再允许该服务的流量
Port端口相关指令
–add-port=<端口号/协议>设置默认区域允许该端口的流量
–remove-port<端口号/协议>设置默认区域不在允许该端口流量
Interface网卡相关指令
–add-interface=<网卡名称>设置默认区域允许改网卡
–change-interface=<网卡名称>
其他相关命令
–list-all
–reload重新加载firewalld

5.防火墙区域配置策略

5.1.未来能正常使用firewalld服务和相关工具去管理防火墙

//禁用传统防火墙服务

[root@zabbix ~]# systemctl mask iptables     //将服务关联到黑洞  关联后服务将无法启动
Created symlink from /etc/systemd/system/iptables.service to /dev/null.
[root@zabbix ~]# systemctl unmask iptables	//关闭服务关联到黑洞
Removed symlink /etc/systemd/system/iptables.service.

//启动firewalld防火墙,并加入开机启动服务

[root@zabbix ~]# systemctl start  firewalld
[root@zabbix ~]# systemctl enable  firewalld

//备份firewalld相关配置文件(重要)

5.1 案例:

要求:
1.设定默认区域为drop(拒绝所有)
2.设置白名单IP访问,将源192.168.101.0/24网段加入trusted区域

//将当前默认区域修改为drop

[root@zabbix ~]# firewall-cmd --permanent  --set-default-zone=drop

//将网络接口关联之drop区域

[root@zabbix ~]# firewall-cmd --permanent --change-interface=ens192 --zone=drop

//将192.168.0.0/16加入到trusted白名单

[root@zabbix ~]# firewall-cmd --permanent --add-source=192.168.0.0/16 --zone=trusted
[root@zabbix ~]# firewall-cmd --reload
[root@zabbix ~]# firewall-cmd --get-active-zone
drop
  interfaces: ens33 ens192
public
  interfaces: ens224
trusted
  sources: 192.168.0.0/16

6.firewall端口转发策略

端口转发是指传统的目标地址映射,实现外网访问内网资源

6.1 流量转发命令格式为

//创建
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标ip地址>
//删除
firewall-cmd --permanent --zone=<区域> --remove-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标ip地址>

端口转发是指内网的目标地址,实现外网访问资源

6.2 案例

1.添加本机端口转发将555/tcp端口转发到22策略,要求当前和长期有效

[root@nginx-web01 ~]# firewall-cmd --permanent --add-forward-port=port=555:proto=tcp:toport=22
success
[root@nginx-web01 ~]# firewall-cmd --reload
success

2.如果需要将本地的192.168.101.82:6666端口转发至后端172.16.20.105:22端口

#1.开启ip伪装

[root@nginx-web01 ~]# firewall-cmd --add-masquerade --permanent 
success

#2.配置转发

[root@nginx-web01 ~]# firewall-cmd --permanent --add-forward-port=port=6666:proto=tcp:toport=22:toaddr=172.16.20.90
success[root@nginx-web01 ~]# firewall-cmd --reload
success
[root@nginx-web01 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192 ens224
  sources: 
  services: dhcpv6-client http https ssh zabbix-agent
  ports: 
  protocols: 
  masquerade: yes				//yes开启ip伪装模式
  forward-ports: port=6666:proto=tcp:toport=22:toaddr=172.16.20.90
  source-ports: 
  icmp-blocks: 
  rich rules: 

7.firewall富贵则策略

firewalld中的富贵则表示更细致、更详细的防火墙策略,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置,优先级在所有的防火墙略中也是最高的。

[root@zabbix ~]# man firewall-cmd 
[root@zabbix ~]# man firewalld.richlanguage
rule
   [source]
   [destination]
   [service|port|protocol|icmp-block|icmp-type|masquerade|forward-port|source-port
   [log]
      [audit]
      [accept|reject|drop|mark]

rule [family="ipv4|ipv6"]
source address="address[/mask]" [invert="true"]
destination address="address[/mask]" invert="true"
server name="service name"
port port="port value" protocol="tcp|udp"
protocol value="protocol value"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address" 
log [prefix="prefix text"] [level="log level"] [limit value="rate/duration"]
accept | reject [type="reject type "] | drop

1.允许192.168.101.0/24网段中192.168.101.176主机访问http服务。其他同网段主机无法访问,当前和永久生效

[root@zabbix ~]# firewall-cmd --permanent --add-source=192.168.101.0/24 --zone=public
success
[root@zabbix ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.101.176/32 service name=http accept'
success
[root@zabbix ~]# firewall-cmd --reload
success

2.拒绝192.168.101.82主机发起ssh请求,当前和永久生效

[root@zabbix ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.101.82/32 service name=ssh drop'
success
[root@zabbix ~]# firewall-cmd --reload
success

3.将远程192.168.101.176主机请求firewalld的5551端口,转发至firewalld防火墙22端口

[root@zabbix ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.101.176/32 forward-port port=5551 protocol=tcp to-port=22' --permanent
success
[root@zabbix ~]# firewall-cmd --reload
success

4.将远程192.168.101.176主机的请求firewall的6661端口,转发至后端主机172.16.20.102的22端口

[root@zabbix ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.101.176/32 forward-port port=6661 protocol=tcp to-port=22 to-addr=172.16.20.102'
success
[root@zabbix ~]# firewall-cmd --reload
success

8.firewall开启内部上网

环境

firewalld 192.168.101.85 172.16.20.105
web01 182.168.101.102

8.1 firewall翻过墙开启ip伪装,实现地址转换。

#网卡默认始在public的zones内。也就是默认的zones。永久添加地址转换功能

[root@lb01 ~]# firewall-cmd --permanent  --add-masquerade 
success
[root@lb01 ~]# firewall-cmd --reload
success
#1.将客户端网关指向firewalld
#2. 客户端访问公网
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值