对于没有防火墙存在的一条网络路线中,主机A发送给主机B的任何一个数据包,主机B都会照单全收,即使是包含了病毒、木马等的数据也一样会收。虽说害人之心不可有,但是在网络上,你认为是害你的行为在对方眼中是利他的行为。所以防人之心定要有,防火墙就可以提供一定的保障。
有了简单的防火墙之后,在数据传输的过程中就会接受"入关"检查,能通过的数据包才继续传输,不能通过的数据包则拒绝或者直接丢弃。
从上面的图中可以看出,防火墙至少需要两个网卡,其中一块控制流入数据包,另一块网卡控制流出数据包。即使是软件防火墙,要实现完整的防火墙功能,也需要至少两块网卡。
所谓防火墙就是"防火的墙",如果过来的是"火"就得挡住,如果过来的不是"火"就放行,但什么是"火",这由人们自行定制。
但无论如何,所谓的"火"都是基于OSI七层模型的,简单的划分为四层:最高的应用层(如HTTP/FTP/SMTP),往下一层是传输层(TCP/UDP),再往下一层是网络层,最后是链路层。可以基于整个7层模型的每一层来定制防火墙,但是默认防火墙(没有编译内核源码定制七层防火墙)一般认为工作在以上的4层中。
在网上和很多书籍上都详细解释了OSI七层模型各层的行为和作用,我个人推荐一本《计算机网络原理创新教程》,里面的OSI模型是我学习过最通俗易懂且完整详细的教程。
数据传输流程