概念
防火墙就是通过定义一些有顺序的规则,管理进入到网络内的主机数据数据包的一种机制,只要能分析和过滤进入我们管理的网络的数据包,就可以称之为防火墙。
防火墙的主要类别
1. Netfilter(数据包过滤机制)
将数据包的头部提取出来进行分析,以决定该链接是放行或抵挡的机制。可提取数据包中的MAC,IP,TCP,UDP,ICMP 等进行过滤,主要分析OSI七层协议中的2,3,4层。
linux上内核内建了Netfilter这个机制,提供了iptables这个软件来作为防火墙数据包过滤命令,由于是内建命令,所以效率非 常高。
2.TCP Wrapper(程序管理)
此类防火墙是通过服务器程序的外挂(tcpd)来处置的。如/etc/hosts.allow和/etc/hosts.deny文件的配置,文件配置语法 如下(前提:只有支持TCP Wrapper函数功能的软件程序才能使用如上配置文件的设置):
程序名称:IP或域或主机名:操作
举例:
sshd:127.0.0.200:allow
sshd:127.0.0.100:deny
sshd:127.168.1.0/255.255.255.0:allow ------支持
sshd:127.168.1.0/24:allow ------不支持
注:通常判断服务程序是否支持TCP Wrapper,是通过该程序是否支持tcp wrappers所提供的libwrap.so这个函数库文件, 例如sshd服务程序是支持tcp wrappers函数功能的。
[root@localhost ~]# ldd $(which sshd) | grep 'wrap'
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f795febc000)
配置文件的优先级顺序如下:
(1) 先以 /etc/hosts.allow进行优先对比,符合规则就予以放行
(2) 再以 /etc/hosts.deny对比,符合规则就予以抵挡
(3)若不在这两个文件内,则予以放行
3. Proxy(代理服务器)
代理服务器可以代理用户的需求,代为前往目标服务器取得相关的资料,并回传给用户,主要流程有如下4步:
(1)客户端主机向Proxy服务器要求数据
(2)Proxy可以分析用户的IP是否合法,想要去的目标服务器是否合法,如果客户端的要求都合法,那代理服务器就会 主动到目标服务器获取客户端主机要求的数据。
(3)由于目标服务器把数据传递给Proxy服务器的,所以目标服务器只能看到代理服务器的IP。
(4)Proxy把数据返回给客户端主机。