文章目录

  • 了解防火墙管理工具
  • 用于管理防火墙的规则策略
  • 规则链与策略
  • 基本命令参数
  • snat与dnat
  • 端口转发与流量均衡
  • firewalld防火墙
  • 特点
  • 区域概念与作用
  • 字符管理工具:`fireall-cmd`
  • 服务的访问控制列表


  • 防火墙管理命令fierwall-cmd
  • 图形化工具firewall-config
  • 数据包过滤、SNAT/SDAT技术、端口转发以及负载均衡等
  • Tcp_wrappers防火墙服务

了解防火墙管理工具

  • 依据策略对外部请求进行过滤。规则策略可以是基于来源地址、请求动作或者协议来定制的,最终仅让合法的用户请求流入到内网中,其余的均被丢弃
  • iptables和firewall只是防火墙管理工具,将定义好的规则交由内核中的netfilter(网络过滤器)来读取实现防火墙功能

用于管理防火墙的规则策略

iptables命令:iptables [-t 表名] 选项 [链名][条件][-j 控制类型]

规则链与策略

  1. 设置数据过滤或处理数据包的策略交规则,将多个规则合成一个链。控制类型如下:

类型

说明

accept

允许通过

log

记录日志,然后传给下一条规则继续匹配

reject

拒绝,必要时给提示

drop

直接丢弃,不给回应

  1. 依据处理数据包的位置不同进行分类

分类

说明

prerouting

在进行路由选择前处理数据包

input

处理入站的数据包

output

处理出站的数据包

forward

处理转发的数据包

postrouting

在进行路由选择后处理数据包

  1. 规则表用于容纳规则链,规则表默认是允许状态的,则规则连就是设置被禁止的规则,反之亦反。

规则表

说明

raw表

确定是否对该数据包进行状态跟踪

mangle表

为数据包设置标记

nat表

修改数据包中的源、目标ip地址或端口

filter表

确定是否放行该数据包(过滤)

  1. 规则链的先后顺序:
  • 入站顺序:prerouting->input
  • 出站顺序:output->postrouting
  • 转发顺序:prerouting->forward->postrouting
  1. 注意:
  • 没有指定规则表则默认指filter表
  • 不指定规则链则指表内所有的规则链
  • 在规则链匹配时一次检查,匹配即停止(log规则例外),若没匹配项则按链的默认状态处理

基本命令参数

参数

说明

-P

设置默认策略

-F

清空规则连

-L

查看规则连

-A

在规则链的末尾加入新规则

-I num

在规则连的头部加入新规则

-D num

删除某一条规则

-s

匹配来源地址,!表示除这个ip外

-d

匹配目标地址

-i

网卡名称 匹配从这块网卡流入的数据

-o

网卡名称 匹配从这块网卡流出的数据

-p

匹配协议

--dport num

匹配目标端口号

--sport num

匹配来源端口号

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

  1. 参数如下

参数

说明

--get-default-zone

查询默认的区域名称

--set-default-zone=<区域名称>

设置默认的区域,永久有效

--get-zone

显示可用区域

--get-services

显示预先定义的服务

--get-active-zones

显示当前正在使用的区域与网卡名称

--add-source=ip

将来源于此ip或子网的流量导向指定的区域

--remove-source=ip

不再将此ip或子网的流量导向指定区域

--add-interface=<网卡名称>

将来自于该网卡的所有流量都导向某个指定区域

--change-interface=<网卡名称>

将某个网卡与区域做关联

--list-all

显示当前区域的网卡配置参数、资源、端口及服务等信息

--list-all-zones

显示所有区域的网卡配置参数、资源、端口以及服务等信息

--add-service=<服务名>

设置默认区域允许该服务的流量

--add-port=<端口号/协议>

允许默认区域允许该端口的流量

--remove-service=<服务名>

设置默认区域不再允许该服务的流量

--remove-port=<端口号/协议>

允许默认区域不再允许该端口的流量

--reload

让永久生效的配置规则立即生效,覆盖当前的

  1. firewalld服务有两份策略配置记录
  • runtime正在生效的
  • permanent永久生效的
  • 应急状况模式:
  • firewall-cmd --panoic-on
  • firewall-cmd --panoic-off;
  1. 图形管理工具:firewall-config

服务的访问控制列表

Tcp_wrappers是一款基于ip层的acl访问控制列表流量监控程序,能够根据来访主机地址与本机目标服务程序做允许或拒绝规则

  • 允许名单:/ect/hosts.allow
  • 拒绝名单:/ect/hosts.deny