防火墙原理

来自CloudWiki
Chuliu讨论 | 贡献2020年9月19日 (六) 08:48的版本 (创建页面,内容为“ firewall守护进程目前具有以下功能: 支持绝大多数system-config-firewall所具有的功能。 实现动态管理,对于规则的更改不再需要…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
firewall守护进程目前具有以下功能:
支持绝大多数system-config-firewall所具有的功能。
实现动态管理,对于规则的更改不再需要重新创建整个防火墙。
一个简单的系统托盘区图标来显示防火墙状态,方便开启和关闭防火墙。
提供firewall-cmd命令行界面进行管理及配置工作。
为libvirt 提供接口及界面
实现firewall-config图形化配置工具。
实现系统全局及用户进程的防火墙规则配置管理。
区域Zone的支持。
NetworkManager防火墙规则助手


区域:定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。
服务∶是端口和/或协议入口的组合。备选内容包括netfilter助手模块以及IPv4、IPv6地址。
端口和协议:定义了tcp或udp端口,端口可以是一个端口或者端口范围。
ICMP阻塞:可以选择Internet 控制报文协议的报文。这些报文可以是信息请求亦可是对信息请求或错误条件创建的响应。 
伪装:私有网络地址可以被映射到公开的IP地址。这是一次正规的地址转换。
端口转发: 端口可以映射到另一个端口以及/或者其他主机
由firewalld提供的区域按照从不信任到信任的顺序排序。
丢弃:任何流入网络的包都被丢弃,不作出任何响应。只允许流出的网络连接。
阻塞:任何进入的网络连接都被拒绝,并返回IPv4的icmp-host-oprohibited报文或者1P的icmp6-adm-prohibited报文。只允许由该系统初始化的网络连接。
公开(默认):用以可以公开的部分。你认为网络中其他的计算机不可信并自苛能彷害你的许算机只资许巳中的连接接入。(You do not trust the other computers on networks to not harm your computer. Onlyselected incoming connections are accepted.)
外部:用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤善你的许算机。只允许选中的连接接入。
隔离区(dmz):用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。
工作:用在工作网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
家庭:用在家庭网络信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
内部:用在内部网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
受信任的:允许所有网络连接。
配置命令:firewall-cmd
配置图形工具:firewall-config
配置文件:/etc/firewalld/

常用

--add-source=<cidr>
--list-all 理出所有策略
--add-service=<服务名> 添加一个服务	
--add-port=<prot/protocol> 添加端口号
--reload 重新加载 防火墙配置 
--permanent:永久选项不直接影响运行时的状态。这些选项仅在重载或者重启服务时可用。获取永久选项所支持的服务
firewall-cmd --permanent --get-services
获取永久选项所支持的ICMP类型列表
firewall-cmd --permanent --get-icmptypes
获取支持的永久区域
firewall-cmd --permanent --get-zones
启用区域中的服务
firewall-cmd --permanent[--zone=<zone>] --add-service=<service此举将永久启用区域中的服务。如果未指定区域,将使用默认区域。
禁用区域中的一种服务
firewall-cmd --permanent[--zone=<zone>]--remove-service=<service>
询区域中的服务是否启用
firewall-cmd --permanent[--zone=<zone>] --query-service=<service>

管理富规则(rich rules )

firewall-cmd --permanent--zone=classroom --add-
rich-rule='rule family=ipv4 source
address=192.168.0.11/32 reject'
firewall-cmd --add-rich-rule='rule service name=ftp
limit value=2/m accept'
firewall-cmd --permanent --add-rich-rule='rule
protocol value=esp drop'
firewall-cmd --permanent --zone=work --add-rich- 
rule='rule service name="ssh" log prefix="ssh " 
level="notice" limit value="3/m" accept 
管理定制规则
firewall-cmd --permanent --add-rich-rule='rule
family=ipv4 source address=172.25.X.10/32servic
name="http" log level=notice prefix="NEW HTTP "
limit value="3/s" accept'

Firewall支持两种类型的NAT
地址伪装:Masquerading
firewall-cmd --permanent--zone=<ZONE> --add-masquerade
firewall-cmd --permanent--zone=<ZONE> --add-rich-
rule='rule family=ipv4 source address=192.168.0.0/24
masquerade'
端口转发:Port forwarding
转发源地址172.25.0.10的22号端口到443端口
firewall-cmd --permanent --add-rich-rule 'rule family=ipv4
source address=172.25.0.10/32 forward-port port=443
protocol=tcp to-port=22
ssh 172.25.0.10 -p 443
SELinux端口标示管理
查看端口selinux标示
semanage port-l
开启端口selinux标示
semanage port-a -t http_port_t-p tcp 81