苇塘
for one night什么意思⽹络安全——防⽕墙详解
什么是防⽕墙?路由策略和策略路由
在计算机中,防⽕墙是基于预定安全规则来监视和控制传⼊和传出⽹络流量的⽹络安全系统。该计算机流⼊流出的所有⽹络通信均要经过此防⽕墙。防⽕墙对流经它的⽹络通信进⾏扫描,这样能够过滤掉⼀些攻击,以免其在⽬标计算机上被执⾏。防⽕墙还可以关闭不使⽤的端⼝。⽽且它还能禁⽌特定端⼝的流出通信,封锁特洛伊⽊马。最后,它可以禁⽌来⾃特殊站点的访问,从⽽防⽌来⾃不明⼊侵者的所有通信。
防⽕墙分为软件防⽕墙和硬件防⽕墙,他们的优缺点:
**硬件防⽕墙:**拥有经过特别设计的硬件及芯⽚,性能⾼、成本⾼(当然硬件防⽕墙也是有软件的,只不过有部分功能由硬件实现,所以硬件防⽕墙其实是硬件+软件的⽅式);
**软件防⽕墙:**应⽤软件处理逻辑运⾏于通⽤硬件平台之上的防⽕墙,性能⽐硬件防⽕墙低、成本低、性价⽐⾼。
Netfilter与iptables的关系
Netfilter是Linux操作系统核⼼层内部的⼀个数据包处理模块,它具有如下功能:
⽹络地址转换(Network Address Translate)
数据包内容修改
以及数据包过滤的防⽕墙功能
Netfilter平台中制定了数据包的五个挂载点(Hook Point,我们可以理解为回调函数点,数据包到达这些位置的时候会主动调⽤我们的函数,使我们有机会能在数据包路由的时候改变它们的⽅向、内容),这5个挂载点分别
是PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING。
Netfilter所设置的规则是存放在内核空间中的,⽽iptables是⼀个应⽤层的应⽤程序,它通过Netfilter放出的接⼝来对存放在内核空间中的XXtables(Netfilter的配置表)进⾏修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应⽤层负责修改这个规则⽂件,类似的应⽤程序还有firewalld(CentOS7默认防⽕墙)。
所以Linux中真正的防⽕墙是Netfilter,iptables只是作为⼀个⼯具。但由于都是通过应⽤层程序如iptables或firewalld进⾏操作,所以我们⼀般把iptables或firewalld叫做Linux的防⽕墙。
**注意:**以上说的iptables都是针对IPv4的,如果IPv6,则要⽤ip6tables,⾄于⽤法应该是跟iptables是⼀样的。
链的概念
iptables开启后,数据报⽂从进⼊服务器到出来会经过5道关卡,分别为Prerouting(路由前)、Input(输⼊)、Outpu(输出)、Forward(转发)、Postrouting(路由后):
每⼀道关卡中有多个规则,数据报⽂必须按顺序⼀个⼀个匹配这些规则,这些规则串起来就像⼀条链,所以我们把这些关卡都叫
**“链”**:
**INPUT链:**当接收到防⽕墙本机地址的数据包(⼊站)时,应⽤此链中的规则;
**OUTPUT链:**当防⽕墙本机向外发送数据包(出站)时,应⽤此链中的规则;
**FORWARD链:**当接收到需要通过防⽕墙发送给其他地址的数据包(转发)时,应⽤此链中的规则;
PREROUTING链:(互联⽹进⼊局域⽹)在对数据包作路由选择之前,应⽤此链中的规则,如DNAT(只有⽬标地址的转换 公⽹访问私⽹);
POSTROUTING链:(局域⽹出互联⽹)在对数据包作路由选择之后,应⽤此链中的规则,如SNAT(只有源地址的转换 私⽹访问公⽹)。
其中中INPUT、OUTPUT链更多的应⽤在“主机防⽕墙”中,即主要针对服务器本机进出数据的安全控制;⽽FORWARD、PREROUTING、POSTROUTING链更多的应⽤在“⽹络防⽕墙”中,特别是防⽕墙服务器作为⽹关使⽤时的情况。
表的概念
虽然每⼀条链上有多条规则,但有些规则的作⽤(功能)很相似,多条具有相同功能的规则合在⼀起就组成了⼀个“表”,iptables提供了四种“表”:
– **filter表:**主要⽤于对数据包进⾏过滤,根据具体的规则决定是否放⾏该数据包(如DROP、ACCEPT、REJECT、LOG),所谓的防⽕墙其实基本上是指这张表上的过滤规则,对应内核模块iptables_filter;
– **nat表:**network address translation,⽹络地址转换功能,主要⽤于修改数据包的IP地址、端⼝号等信息(⽹络地址转换,如SNAT、DNAT、MASQUERADE、REDIRECT)。属于⼀个流的包(因为包的⼤⼩限制导致数据可能会被分成多个数据包)只会经过这个表⼀次,如果第⼀个包被允许做NAT或Masqueraded,那么余下的包都会⾃动地被做相同的操作,也就是说,余下的包不会再通过这个表。对应内核模块iptables_nat;
– **mangle表:**拆解报⽂,做出修改,并重新封装,主要⽤于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,⽣存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应⽤,由于需要相应的路由设备⽀持,因此应⽤并不⼴泛。对应内核模块iptables_mangle;
– **raw表:**是⾃1.2.9以后版本的iptables新增的表,主要⽤于决定数据包是否被状态跟踪机制处理,在匹配数据包时,raw表的规则要优先于其他表,对应内核模块iptables_raw。美剧汉尼拔
我们最终定义的防⽕墙规则,都会添加到这四张表中的其中⼀张表中。
2014广东高考作文
表链关系
5条链(即5个关卡)中,并不是每条链都能应⽤所有类型的表,事实上除了Ouptput链能同时有四种表,其他链都只有两种或三种表:
易听实际上由上图我们可以看出,⽆论在哪条链上,raw表永远在mangle表上边,⽽mangle表永远在nat表上边,nat表⼜永远在filter表上边,这表明各表之间是有匹配顺序的。
前⾯说过,数据报⽂必须按顺序匹配每条链上的⼀个⼀个的规则,但其实同⼀类(即属于同⼀种表)的规则是放在⼀起的,不同类的规则不会交叉着放,按上边的规律,每条链上各个表被匹配的顺序为:raw→mangle→nat→filter。
前⾯说过,我们最终定义的防⽕墙规则,都会添加到这四张表中的其中⼀张表中,所以我们实际操作是对“表”进⾏操作的,所以我们反过来说⼀下,每种表都能⽤于哪些链:
表名能应⽤的链
raw prerouting output
toranimangle prerouting input forward output postrouting
nat prerouting input(仅centos7)output postrouting filter input forward output
综上,数据包通过防⽕墙的流程可总结为下图:
forward功能 :默认是0,打开为1即⽣效
匹配条件
防晒霜要卸妆吗S_IP:source ip 源ip
aggressively
S_PORT:source port 源端⼝
D_IP:destination ip ⽬标ip
memories是什么意思D_PORT:destination port ⽬标端⼝
TCP/UDP:第四层 传输层协议
处理的动作:
accept:允许数据包通过
drop:直接丢弃数据包,不回应任何消息,客户端只有当该链接超时后才会有反应 timeout–超时reject:拒绝数据包,会给客户端发送⼀个数据包被丢弃的响应的信息 result out–请求丢失关闭防⽕墙
关闭firewalld防⽕墙开机启动
配置好yum源,完成挂载后
安装iptables防⽕墙
安装iptables的rvice启动⼯具
启动iptables
查看iptables状态
停⽌iptables
重启iptables
重载iptables
使⽤rvice命令查看iptables状态
查询规则
1.-L list,列出每条链上的规则,且链名必须全⼤写
列出input链上的规则systemctl stop firewalld
how do you do1systemctl disable firewalld
1sudo yum -y install iptables
1sudo yum -y install iptables-rvices 1systemctl start iptables 1systemctl status iptables 1systemctl stop iptables 1systemctl restart iptables 1systemctl reload iptables 1rvice iptables status
1