系统安全-Firewall

Netfilter/iptables是与最新的2.6.x版本Linux内核集成的ip信息包过滤系统。若是Linux系统链接到因特网或LAN、服务器或链接LAN和因特网的代理服务器,则该系统有理由在Linux系统上更好的控制IP信息包过滤和防火墙配置。centos

虽然Netfilter/iptablesIP信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter和iptables组成。netfilter组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。服务器

 

iptables流程图

Netfilter/iptablesIP信息包过滤系统是一种功能强大的工具,能够用于添加、编辑和除去规则,这些规则是在作信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Linux内核中。在信息包过滤表中,规则被分组放在咱们所谓的链(chain)中。网络

iptables四张表五条链

filter:表用来过滤数据ssh

nat:转换包的源地址或目标地址工具

  DNAT测试

  SNATcentos7

  MASQUERADEspa

mangle:使用mangle匹配来改变包的特性命令行

  TOS代理

  TTL

  MARK

raw:能够对收到的数据包在连接跟踪前进行处理。

iptables语法结构

iptables基本应用

  1. 基于IP地址
  2. 基于服务端口号

iptables状态机制

Netfilter/iptables的最大优势是它能够配置有状态的防火墙。有状态的防火墙可以制定并记住为发送或接受信息包所创建的链接的状态。防火墙能够从信息包的连接跟踪状态得到该消息。在决定新的信息包过滤时,防火墙所使用的这些状态信息能够增长其效率和速度。

stata基于连接的状态 

这里有四种有效状态,名称分别为ESTABLISHED、INVALID、NEW和RELATED。

NEW意味着该信息包已经或将启动新的连接,或者它与还没有用于发送和接收信息包的链接相关联。

RETABLISHED指出该信息包属于已创建的链接,该连接一直用于发送和接收信息包而且彻底有效。

RELATED表示该信息包正在启动新链接,以及它与已创建的连接相关联。

INVALID状态指出该信息包与任何已知的流或链接都不相关联,它可能包含错误的数据或头。

 iptables NAT简介

网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法ip地址的转换技术,它被普遍应用于各类类型Internet接入方式和各类类型的网络中。缘由很简单,NAT不只完美地解决了IP地址不足的问题,并且还可以有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

 Firewalled基础

firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;另外firewalled增长了“zone”的概念。

firewalld将全部incoming流量划分红zone,每一个zone都具备本身的一套规则。

firewalld在判断incoming流量使用那一个zone,使用如下规则:

  1. 若是incoming packets的源地址与zone的某个源规则相匹配,则使用该区域
  2. 若是incoming packets 的接口与zone的filter设置相匹配,则使用该区域
  3. 若是使用default zone。若是没有配置,default zone为public

trusted 

容许全部incoming/outgoing taiffic

home 

除非与outgoing taiffic相关,或与ssh,mdns,ipp-client,samba-client,dhcpv6-client这些预约义服务匹配,不然拒绝incoming taiffic。

internal  

除非与outgoing taiffic相关,或与ssh,mdns,ipp-client,samba-client,dhcpv6-client这些预约义的服务匹配,不然拒绝incoming taiffic。(开始时与home zone相同)

 work  

除非有outgoing taiffic相关,或与ssh,ipp-client,dhcpv6-client这些预约义服务相匹配,不然拒绝incoming taiffic

public 

除非与outgoing taiffic相关,或与ssh,dhcpv6-client这些预约义服务相匹配,不然拒绝incoming taiffic。(新添加的网络接口默认为zone)

external

 除非与outgoing taiffic相关,或与ssh预约义服务匹配,不然拒绝incoming taiffic。将经过此zone转发的Ipv4 outgoing taiffic 的源地址假装成outgoing网络接口的IPV4地址。

dmz 

除非与outgoing taiffic相关,或与ssh预约义服务匹配,不然拒绝incoming taiffic。

block 

除非与outgoing taiffic先关,不然拒绝全部incoming taiffic。

drop 

除非与outgoing taiffic相关,不然丢弃全部incoming taiffic。(不产生包含ICMP错误的响应)

Firewalld配置

使用三种方式来管理firewalld

  1. 使用命令行工具firewalld-cmd
  2. 使用图形工具firewalld-config
  3. 使用/etc/firewalld/中的配置文件(不建议直接编辑配置文件,但使用配置管理工具时,配置配置会颇有用的)

使用firewalld-cmd,几乎全部命令都对当前状态生效(触发指定---permanent),若是没有使用----zone,使用默认zone。

配置防火墙时,一般会使用 --permanent配置全部更改,而后使用firewalld-充满电 --reload激活这些更改。测试可能有危险的新规则时,能够省略 -permanent并添加-题么呕吐=<TIME in SECONDS> 必定时间后自动删除某个规则,来方式意外锁定某个系统。

Firewalld 富规则

firewalld 的rich rule提供了一种表达性语言,经过这种语言能够表达firewalld基本语法中未涵盖的自定义防火墙规则。例如。仅容许某个特定ip(而非经过某个zone路由的全部IP地址)链接到服务。

Firewalld假装和端口转发

。。。。。具体请百度。没测试。等测试了以后会在博客补齐

相关文章
相关标签/搜索