0
点赞
收藏
分享

微信扫一扫

Firewalld 学习与配置


Firewalld

安全

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

centos 6 :iptables

centos 7 : iptables、firewalld(默认)


目录

  • ​​Firewalld​​
  • ​​1.防火墙基本概念​​
  • ​​1.1 firewalld与iptables的不同点​​
  • ​​2.firewall区域概述​​
  • ​​2.1 Firewall区域规则​​
  • ​​2.2 注意:​​
  • ​​3.Firewalld相关配置文件​​
  • ​​4.防火墙基本指定参数​​
  • ​​5.防火墙区域配置策略​​
  • ​​5.1 案例:​​
  • ​​6.firewall端口发策略​​
  • ​​6.1 流量发命令格式为​​
  • ​​6.2 案例​​
  • ​​7.firewall富贵则策略​​
  • ​​8.firewall开启内部上网​​
  • ​​环境​​
  • ​​8.1 firewall翻过墙开启ip伪装,实现地址换。​​


1.防火墙基本概念

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

Firewalld 学习与配置_端口号

1.1 firewalld与iptables的不同点

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

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

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

2.firewall区域概述

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

Firewalld 学习与配置_linux_02

2.1 Firewall区域规则

Firewalld 学习与配置_nginx_03

Firewalld 学习与配置_端口号_04

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. 客户端访问公网



举报

相关推荐

0 条评论