文章目录
- 了解防火墙管理工具
- 用于管理防火墙的规则策略
- 规则链与策略
- 基本命令参数
- snat与dnat
- 端口转发与流量均衡
- firewalld防火墙
- 特点
- 区域概念与作用
- 字符管理工具:`fireall-cmd`
- 服务的访问控制列表
- 防火墙管理命令fierwall-cmd
- 图形化工具firewall-config
- 数据包过滤、SNAT/SDAT技术、端口转发以及负载均衡等
- Tcp_wrappers防火墙服务
了解防火墙管理工具
- 依据策略对外部请求进行过滤。规则策略可以是基于来源地址、请求动作或者协议来定制的,最终仅让合法的用户请求流入到内网中,其余的均被丢弃
- iptables和firewall只是防火墙管理工具,将定义好的规则交由内核中的netfilter(网络过滤器)来读取实现防火墙功能
用于管理防火墙的规则策略
iptables命令:iptables [-t 表名] 选项 [链名][条件][-j 控制类型]
规则链与策略
- 设置数据过滤或处理数据包的策略交规则,将多个规则合成一个链。控制类型如下:
类型 | 说明 |
accept | 允许通过 |
log | 记录日志,然后传给下一条规则继续匹配 |
reject | 拒绝,必要时给提示 |
drop | 直接丢弃,不给回应 |
- 依据处理数据包的位置不同进行分类
分类 | 说明 |
prerouting | 在进行路由选择前处理数据包 |
input | 处理入站的数据包 |
output | 处理出站的数据包 |
forward | 处理转发的数据包 |
postrouting | 在进行路由选择后处理数据包 |
- 规则表用于容纳规则链,规则表默认是允许状态的,则规则连就是设置被禁止的规则,反之亦反。
规则表 | 说明 |
raw表 | 确定是否对该数据包进行状态跟踪 |
mangle表 | 为数据包设置标记 |
nat表 | 修改数据包中的源、目标ip地址或端口 |
filter表 | 确定是否放行该数据包(过滤) |
- 规则链的先后顺序:
- 入站顺序:prerouting->input
- 出站顺序:output->postrouting
- 转发顺序:prerouting->forward->postrouting
- 注意:
- 没有指定规则表则默认指filter表
- 不指定规则链则指表内所有的规则链
- 在规则链匹配时一次检查,匹配即停止(log规则例外),若没匹配项则按链的默认状态处理
基本命令参数
参数 | 说明 |
| 设置默认策略 |
| 清空规则连 |
| 查看规则连 |
| 在规则链的末尾加入新规则 |
| 在规则连的头部加入新规则 |
| 删除某一条规则 |
| 匹配来源地址,!表示除这个ip外 |
| 匹配目标地址 |
| 网卡名称 匹配从这块网卡流入的数据 |
| 网卡名称 匹配从这块网卡流出的数据 |
| 匹配协议 |
| 匹配目标端口号 |
| 匹配来源端口号 |
snat与dnat
- snat:源地址转换技术:能够让多个内网用户通过一个外网地址上网
- dnat:目地地址转换技术:能够让外网ip用户访问局域网内不同的服务器
端口转发与流量均衡
- 端口转发功能可以将原本到某端口的数据包转发到其他端口:
firewall-cmd --permanent--zone=<区域>--add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toadd=<目标ip复制>
- 【例如】将访问192.168.10.10主机端口的请求转发至22端口:
firewall-cmd --permanent--zone=public--add-forward-port=port=888:proto=tcp:toport=22:toadd=192.168.10.10 # 使用客户机的ssh命令访问192.168.10.10:ssh -p 888 192.168.10.10
- 均衡技术:
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.10:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.11:80
iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.10.12:80
firewalld防火墙
特点
拥有运行时配置与永久配置选项能够支持动态更新以及zone的区域功能概念
区域概念与作用
网络区域定义了网络连接的可信等级,区域规则如下
规则 | 说明 |
trusted | 允许所有的数据包; |
home | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh/mdns/ipp-client/samba-clent与dhcpv6-client服务则允许; |
internal | 等同于home区域; |
work | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh/ipp-client/与dhcpv6-client服务则允许 |
public | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh/dhcpv6-client服务则允许 |
external | 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许 |
block | 拒绝流入的数据包,除非与输出流量数据包相关 |
drop | 拒绝流入的数据包,除非与输出流量数据包相关; |
默认区域为public
字符管理工具:fireall-cmd
- 参数如下
参数 | 说明 |
| 查询默认的区域名称 |
| 设置默认的区域,永久有效 |
| 显示可用区域 |
| 显示预先定义的服务 |
| 显示当前正在使用的区域与网卡名称 |
| 将来源于此ip或子网的流量导向指定的区域 |
| 不再将此ip或子网的流量导向指定区域 |
| 将来自于该网卡的所有流量都导向某个指定区域 |
| 将某个网卡与区域做关联 |
| 显示当前区域的网卡配置参数、资源、端口及服务等信息 |
| 显示所有区域的网卡配置参数、资源、端口以及服务等信息 |
| 设置默认区域允许该服务的流量 |
| 允许默认区域允许该端口的流量 |
| 设置默认区域不再允许该服务的流量 |
| 允许默认区域不再允许该端口的流量 |
| 让永久生效的配置规则立即生效,覆盖当前的 |
- firewalld服务有两份策略配置记录
- runtime正在生效的
- permanent永久生效的
- 应急状况模式:
firewall-cmd --panoic-on
firewall-cmd --panoic-off;
- 图形管理工具:firewall-config
服务的访问控制列表
Tcp_wrappers是一款基于ip层的acl访问控制列表流量监控程序,能够根据来访主机地址与本机目标服务程序做允许或拒绝规则
- 允许名单:
/ect/hosts.allow
- 拒绝名单:
/ect/hosts.deny