==============
iptables防火墙
==============
防火墙的策略有
ACCEPT:允许通过.
LOG:记录日志信息,然后传给下一条规则继续匹配.
REJECT:拒绝通过,必要时会给出提示.
DROP:直接丢弃,不给出任何回应.
规则链则依据处理数据包的位置不同而进行分类:
PREROUTING:在进行路由选择前处理数据包
INPUT:处理入站的数据包
OUTPUT:处理出站的数据包
FORWARD:处理转发的数据包
POSTROUTING:在进行路由选择后处理数据包
表的描述
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包(过滤)
4表中包含的连
filter表包含input链/forward链/output链
nat表包含prerouting链/output链/postrouting链
mangle表包含prerouting链/input链/postrouting链
raw表包含prerouting链/output链
表的执行优先级:raw→mangle→nat→filter
链的执行优先级:preroutong--》input--》output--》postrouting
prerouting--》forward--》postrouting
注意:如果写入规则时不指定表则默认是filter表
iptables命令规则策略格式为:“iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]”
常用的参数如下图:
参数 | 作用 |
-P | 设置表默认策略:iptables -P INPUT (DROP|ACCEPT) |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的末尾加入新规则 |
-I num | 在规则链的头部加入新规则 |
-D num | 删除某一条规则 |
-s | 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。 |
-d | 匹配目标地址 |
-i 网卡名称 | 匹配从这块网卡流入的数据 |
-o 网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议,如tcp,udp,icmp |
--dport num | 匹配目标端口号 |
--sport num | 匹配来源端口号 |
X 删除所有非内建的链【删除链条件:1.没有规则2.没有其他的链跟这个链产生关联】
N 新建链 例如: iptables -N vfast
v 详细信息 L A I D R 例如: iptables -L -v
x 精确信息 例如: iptables -L -x
n 以数字的形式显示内容 例如: iptables -L -n
line-number 显示规则序号 例如: iptables -L --line-number
数据包的走向:
进来 ---------》 出去 ----------》 路过
【以本地为目标的数据包走向】
线路上传输
进入接口(eth0)
mangle PREROUTING ttl/tos【打标记】
nat PREROUTING DNAT【目的地址的转换操作】
路由判断:1.包是给自己的2.包是给其他主机的
mangle INPUT ttl/tos
filter INPUT 过滤数据包
最后到达本地应用程序
-------------------------------------------------------------------------------------------------------
【以本地为源的数据包走向】
本地程序
路由判断 决定包要使用的源地址 外出接口.....
mangle OUTPUT ttl/tos
nat OUTPUT 对自身的包进行DNAT
filter OUTPUT 过滤
mangle POSTROUTING ttl/tos
nat POSTROUTING SNAT
离开接口
线路上传输
-------------------------------------------------------------------------------------------------------
【被转发的数据包走向】
线路上传输
进入接口
mangle PREROUTING
nat PREROUTING
路由判断
mangle FORWARD TOS TTL
filter FORWARD 过滤
mangle POSTROUTING
nat POSTROUTING
离开接口
传输
===================
firewalld防火墙
===================
Firewalld服务是红帽RHEL7系统中默认的防火墙管理工具
支持了动态更新和”zone“区域功能
有firewall-config图形化工具和firewall-cmd文本管理工具
默认的区域是public
区域的作用:
trusted 允许所有的数据包
home 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,mdns,ipp-client,samba-client与dhcpv6-client服务则允许
internal 等同于home区域
work 拒绝流入的数据包,除非于输出流量数据包相关或者是ssh,ipp-client与dhcpv6-client服务则允许
public 拒绝流入的数据包,除非与输出流量数据包相关或是ssh,dhcpv6-client服务则允许
external 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许
dmz 拒绝流入的数据包,除非与输出流量数据包相关或是ssh服务则允许
block 拒绝流入的数据包,除非与输出流量数据包相关
drop 拒绝流入的数据包,除非与输出流量数据包相关
命令行常用的参数:
--get-default-zone 查询默认的区域名称
--set-default-zone=<区域名称> 设置默认的区域,永久生效
--get-zone-of-interface=<网卡名称> 查看网卡所在的区域
--get-zones 显示可用的区域
--get-services 显示预先定义的服务
--get-active-zones 显示当前正在使用的区域与网卡名称
--add-source= 将来源于此IP或子网导向指定的区域
--remove-source= 不再将此IP或子网导向某个指定区域
--add-interface=<网卡名称> 将来自于该网卡的都导向某个指定区域
--change-interface=<网卡名称> 将某个网卡与区域做关联
--list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息
--list-all-zones 显示所有区域的网卡配置参数,资源,端口以及服务等信息
--add-service=<服务名> 默认区域允许该服务通行
--add-port=<端口号/协议> 默认区域允许该端口通行
--remove-service=<服务名> 默认区域不再允许该服务通行
--remove-port=<端口号/协议> 默认区域不再允许该端口通行
--reload 让“重启服务规则生效”的配置规则立即生效,覆盖当前的规则
--panic-on 启动应急状况模式,阻断所有网络连接
--panic-off 关闭应急状况模式,恢复网络
端口转发功能可以将原本到某端口的数据包转发到其他端口:
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号> :toaddr=<目标IP地址>
图形界面设置不做介绍