赞
踩
firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务器列表。
firewalld防火墙预定义了9个区域:
区域 | 功能 |
---|---|
public(公共区域) | 默认只允许ssh、dhcp协议数据包传入 |
home(家庭区域) | 默认只允许ssh、dhcp、samba、mdns协议数据包传入 |
work(工作区域) | 默认只允许ssh、dhcp协议数据包传入 |
internal(内部区域) | 默认只允许ssh、dhcp、samba、mdns协议数据包传入 |
external(外部区域) | 默认只允许ssh协议数据包传入,传出数据包会做地址伪装转换(MASQUERADE) |
dmz(隔离区域也称为非军事区域) | 非军事区域,默认只允许ssh协议数据包传入 |
trusted(信任区域) | 允许所有的传入流量 |
block(限制区域) | 拒绝所有,有响应消息 |
drop(丢弃区域) | 丢弃所有,无响应消息 |
附:默认情况的默认区域为public(默认与所有网卡绑定)。要激活某个区域,需要将区域与源地址或网卡绑定
先检查传入数据包的源地址,若源地址与特定区域绑定,则使用该区域的规则过滤数据包
若源地址与特定区域没有绑定,且数据包传入网卡与特定区域绑定,则使用绑定网卡的区域的规则过滤数据包
若也没有区域绑定网卡则使用public区域(默认区域)的规则过滤数据包
1.使用firewall-com 命令行工具
2.使用firewall-config 图形工具
3.编写/etc/firewalld/ 中的配置文件
区域配置文件
/etc/firewalld/zones/*
/usr/lib/firewalld/zones/*
首先要求确保firewalld.service处于开启状态
systemctl start firewalld.service
== 常用的firewall-cmd 命令选项==
代码 | 作用 |
---|---|
get | 显示信息 |
–zone=xxx | 指定区 |
zones | 所有区 |
default | 默认 |
active | 已绑定 |
interface | 接口(网卡) |
list | 列表显示 |
service | 服务 |
port | 端口号 |
ports | 所有端口号 |
add | 添加 |
remove | 删除 |
代码 | 作用 |
---|---|
firewall-cmd --get-zones | 显示所有可用的区域 |
firewall-cmd --get-default-zone | 查看默认区域 |
firewall-cmd --get-active-zones | 显示当前正在使用的区域及其对应的网卡接口 |
firewall-cmd --get-zone-of-interface=<interface> | 显示指定接口绑定的区域 |
firewall-cmd --list-all-zones | 显示所有区域及其规则 |
firewall-cmd --list-all --zone=xxx | 显示指定区域及其所有规则 |
firewall-cmd --list-service --zone=xxx | 显示指定区域内允许访问的所有服务 |
firewall-cmd --list-ports | 显示指定区域内允许访问的所有端口号 |
…… | …… |
格式展示:
firewall-cmd --get-zones | 显示所有可用的区域
firewall-cmd --get-default-zone | 查看默认区域
firewall-cmd --get-active-zones | 显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --get-zone-of-interface=<interface> | 显示指定接口绑定的区域
firewall-cmd --list-all-zones | 显示所有区域及其规则
firewall-cmd --list-service --zone=xxx | 显示指定区域内允许访问的所有服务
firewall-cmd --list-ports | 显示指定区域内允许访问的所有端口号
代码 | 作用 |
---|---|
firewall-cmd --add-interface=ensxx --zone=xxx | 为指定的接口绑定区域 |
firewall-cmd --add-source=xxxx --zone=xxx | 为指定的源地址绑定区域 |
firewall-cmd --add-services=xxx --zone=xxx | 为指定区域设置允许访问的某项服务 |
…… | …… |
格式展示:
firewall-cmd --add-interface=ensxx --zone=xxx | 为指定的接口绑定区域
firewall-cmd --add-source=xxxx --zone=xxx | 为指定的源地址绑定区域
firewall-cmd --add-services=xxx --zone=xxx | 为指定区域设置允许访问的某项服务
一个区域可以关联多个网卡或源地址
一个网卡或源地址只能关联一个区域
代码 | 作用 |
---|---|
firewall-cmd --remove-interface=ensxx --zone=xxx | 解除指定网卡的绑定 |
firewall-cmd --remove-source=xxxx --zone=xxx | 删除源地址的绑定 |
firewall-cmd --remove-services=xxx --zone=xxx | 为指定区域设置删除允许访问的某项服务 |
…… | …… |
格式展示:
firewall-cmd --remove-interface=ensxx --zone=xxx | 解除指定网卡的绑定
firewall-cmd --remove-services=xxx --zone=xxx | 为指定区域设置删除允许访问的某项服务
代码 | 作用 |
---|---|
firewall-cmd --set-default-zone=xxx | 修改默认区域 |
firewall-cmd --change-interface=xxx --zone=xxx | 修改网卡的绑定区域 |
firewall-cmd --change-source=xxx --zone=xxx | 修改源地址的绑定区域 |
格式展示:
firewall-cmd --set-default-zone=xxx | 修改默认区域
firewall-cmd --change-interface=xxx --zone=xxx | 修改网卡的绑定区域
永久生效(重新加载后生效或重启服务):permanent
firewall-cmd xxxxxxxxx–permanent
相当于把配置写进了配置文件中不会立即生效需要重启服务或者重新加载
重新加载配置文件:reload
firewall-cmd --reload
将现有配置转换为永久配置
firewall-cmd --runtime-to-permanent
设置地址转换
(1)设置 SNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.80.0/24 -j SNAT --to-source 12.0.0.1
(2)设置 DNAT
firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.80.11
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。