您好,欢迎访问三七文档
代理防火墙一、基本概念1、应用层代理2、网络层防火墙3、防火墙与代理的管理二、iptables1、iptable基本原理2、NAT与路由3、iptables安装配置三、缓存代理squid1、squid工作机制与基本功能2、squid组成部分3、squid安装配置代理防火墙一、基本概念由于网络访问是一项很复杂的活动,因而对它的管理也不容易,并且很多使用计算机用户也不是专业的计算机管理者,它们对于连接在网络上的计算机的保护很脆弱,导致其他用户在未经授权的情况下,很容易地通过网络进入到他的计算机中,窃取信息,或破坏计算机系统。为了防止这些问题,计算机专家提出了防火墙的概念,即首先选定一块受保护的计算机范围,然后添加一个类似与建筑物中用于防火的设施,即防火墙,并假定防火墙是这个保护区与外界联系的惟一出口,然后由防火墙来决定,是放行,还是封锁进出的数据包。(防火墙就好比是门口的保安,什么人允许过进出,什么人不允许进出。)根据防火墙在TCP/IP协议工作的不同层次,可将防火墙分为应用层代理和网络层防火墙。1、应用层代理(ApplicationLevelFirewall,应用层防火墙)针对不同网络服务提供细致而又安全的网络保护,它对每一种服务分别进行安全隔离,内部网络不直接与外部网络连接。提供应用层防火墙服务的机器一般被称为代理服务器,它位于客户机与服务器之间,完全阻挡了两者间的数据交流。为什么称为应用层代理。对于内部网络来看,它是一个服务器(内部客户机把请求都要交给它,但对于外部网络来看它只是一台客户机,这就是代理服务器的概念。)这样做的好处在于,内部客户机不直接与外部网络连接,减少了外部恶意侵害的可能性。缺点:对系统的整个性能有较大的影响,而且,代理服务器必须针对客户机可能产生的所有应用层型逐一进行设置,增加了系统管理的复杂性。2、网络层防火墙工作在TCP/IP的协议的网络层,也称为包过滤型防火墙,其技术依据是网络中的分组传输技术。每一个数据通常包含一些特定信息,如数据的源地址、目标地址、TCP/UDP、源端口和目标端口等。防火墙通过读取数据包中的地址信息,来判断这些包是否来自可信任的安全站点,一旦发现来自危险站点的数据包,防火墙便分将这些数据拒之门外。优点:简单实用,实现成本较低,在环境比较简单的情况下,能够以较小的代价在一定程度上保证系统的安全。缺陷:只能根据数据包的来源、目标和端口等网络信息进行判断,无法识别基于应用层的来意侵入,如恶意的Java小程序以及电子邮件中附带的病毒。3、防火墙与代理的管理主要的代理服务器管理工具有:apache、socks、squid,它们几乎能够实现所有服务的代理。Apache是一个服务器,但它可以通过自带的mod_proxy模块为apache服务器提供http代理服务。二、iptables1、iptable基本原理****netfilter框架在整个网络流程的若干位置旋转了一些钩子(HOOK),而每个钩子上登记了一些处理函数进行处理。IPv4一共有5个钩子函数,分别为:NF_IP_PRE_ROUTING:数据进入系统,经IP校验以后,数据会调用这一个钩子函数进行处理,决定是发给本机还是需要路由。NF_IP_LOCAL_IN:如果发给本机会调用这个钩子函数进行处理,处理后将数据交给上层。NF_IP_FORWARD:若该数据包应转发,则调用这个钩子函数。NF_IP_POST_ROUTING:将要转发的数据包再经过这个钩子函数处理后,再传输到网络上。NF_IP_LOCAL_OUT:本地产生的数据经过这个钩子函数处理后,进行路由选择处理,然后再经过第4个钩子函数处理后发送到网络上。****iptables规则链Iptables的作用在于为netfiler的处理提供相关规则,它们告诉netfiler对来自某些源、前往某些目的的或具有某些协议类型的数据包做些什么。如果某个数据包与规则匹配,则可以规则所确定的目标“ACCEPT(accept,接受)”允许该信息包通过,或目标“DRIP(滴,水滴)、REJECT(拒绝,抵制)”,来阻塞并杀死信息包,当然还可以执行其他管理员定义的目标。一条规则只定义了某一类型的数据包,而对其他类型的数据包,就需要另一条规则来描述,也就有了多种类型的规则存在。同时,这些规则均会被某个netfilter钩子函数来处理,我们把被同一个钩子函数处理的多条规则称为一条规则链。对应于netfilter框架中的5个检查点,iptables需要维护5条规则链:PREROUTINGFORWARDPOSTROUTINGINPUTOUTPUT建立规则并将链放在适当位置之后,就可以开始进行真正的网络信息包过滤工作了。来自外界的信息包到达防火墙时,首先被PREROUTING规则处理,这个信息包处理通过后,IP协议棧检查信息包的头信息,尤其是信息包的目的地,根据信息包的目的地决定信息包的走向,即进行路由。如果信息包的目的地是本地系统,那么,内核将它传递到INPUT链进行处理,通过这个规则链的相应处理后,即被系统上层应用程序接收。如果信息包源自系统内部,并且,此信息包要前往另一个外部系统,那么信息包传递到OUTPUT链,通过处理后,IP协议棧查看信息包头的信息进行路由,确定路由后,传输给POSTROUTING规则链进行处理,根据规则链的“目标”来发送或丢弃该包。如果信息包源自外部系统,并前往外部系统,在通过PREROUTING处理后,即传给FORWARD规则链处理,处理完成后,IP协议棧进行路由,最后交给POSTROUTING链处理发送。每次处理过程都基本相同,它使用包头信息,与它所传递到链中的每条规则进行比较,看是否与某条规则完全匹配。如果信息包与某条规则匹配,那么内核就对该信息包执行由规则指定的操作,如果不匹配,那么它将与链中的下一条规则进行比较。如果信息包与链中的任何规则都不匹配,那么内核将参考链的策略,来决定如何处理该信息包。iptables规则表iptables的规则组织在3个不同的规则表中:Filter:针对过滤系统NAT:针对地址转换系统Mangle:针对策略路由和特殊应用规则链分配如下:Filter:INPUT、FORWARD、OUTPUTNAT:PREROUTING、POSTROUTING、INPUT、OUTPUTMangle:OUTPUT、POSTROUTING针对主机的安全性主要集中在Filter表中的INPUT和OUTPUT规则链,这两个关键字在添加规则的时候用到。在内核编译了NetFilter系统以后,系统会自动建立这5个规则链和3个规则表。2、NAT与路由****NAT与路由的比较所有的路由仅仅充当中间人角色,也就是通常所说的存储转发(除将源MAC地址转换成自己的MAC地址外,路由器不会对转发的数据包做任何修改。)NAT(NetworkAddressTranslation,网络地址转换)恰恰是出于某种特殊需要而对数据包的源IP地址、目的IP地址、源端口、目的端口进行改写的操作。****NAT的使用1、使外部机器可以访问内网例:一个局域网内要建立一台服务器,可以在防火墙的外部网卡上绑定多个合法的IP地址,然后再将外部访问其中一个时,转发到内部的服务器地址上就可以了。2、代理上网例:一个局域网,有一台机器采用拨号上网,因为只有一个外部IP地址,哪么可以使用这台机器代理整个局域网上网(可以在应用层做代理,如使用代理软件。也可以在网络层做代理,如使用NAT。)3、NAT重定向(当接收到一个包后,不是转发这个包,而是将其重定向到系统上的某一个应用程序。最常风的应用就是与squid配合使用成为透明代理,在对http流量进行缓存的同时,可以提供对Internet的无缝访问。)****NAT的类型1、静态NAT(StaticNAT)内部永久映射成外部网络中的某个合法地址。2、动态NAT(PooledNAT)在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。3、网络端口转换(NetworkAddressPortTranslation,NAPT)是把内部地址映射到外部外部网络的一个IP地址的不同端口上。****通过iptables实现NAT在iptables/netfilter组合框架中,将NAT分成了两种类型,即源NAT(SNAT),就是改变数据包的源地址(出去),和目的NAT(DNAT),就是改变转换数据包的目的地址(进来)。如iptables规则表中所述,nat表用来实现地址转换,它定义了3条规则链:PREROUTING(对数据包的源地址进行地址转换)、POSTROUTING(对数据包的目的地址进行转换)、OUTPUT(对于本地数包的目的地址的转换,则由OUTPUT规则来实现),分别监听3个Netfilter钩子函数:NF_IP_PRE_ROUTINGNF_IP_POST_ROUTING及NF_IP_LOCAL_OUT。3、iptables安装配置****安装rpm-qa|grepiptablesrpm–ivhiptables*--force从处下载源代码包tar–zxvfiptables*cdiptables*makemakeinstall****配置防火墙1、命令语法Iptables工具安装成功后,即可使用iptables命令来设置、维护和检查Linux内核的IP包过滤规则。Iptables可以定义不同的表,每个表都包含几个内部的链,也能包含用户自定义的链。每个链都是一个规则列表,将对应的包进行匹配:每条规则指定了一个target(目标),指定如何处理与之匹配的包,也可以指定这个目标为跳向同一个表内的用户定义的链。语法为:2、规则操作参数说明(看书)3、规则定义参数说明(看书)4、匹配规则扩展选项(看书)****包过滤配置假定有这样一个局域网,内部IP地址范围为192.168.1.1-254,网关为192.168.1.1,绑定在eth0接口上,同时,网关具有外部Internet地址为10.25.0.7,绑定在eth1接口上,防火墙就位于网关上,通过它的设置,对流经防火墙的网络包进行过滤处理。同时,在局域内部有一台服务器,它的内部地址为192.168.1.2,它被设置为可以接受外部的网络用户访问。1、首先清空所有的规则链,并设置规则链的默认策略为DROP,即丢弃所有的网络数据包。iptables-Fiptables-PINPUTDROPiptables-POUTPUTDROPiptables-PFORWARDDROP2、新增用户自定义规则链bad_tcp_packets、allowed和icmp_packets。iptables-Nbad_tcp_packetsiptables-Nallowediptables-Nicmp_packets3、定义bad_tcp_packets规则链的规则:将要求重导向的网络连接记录起来,然后将报文丢弃(防止本地机器被其他主机作为入侵跳板,侵入别的主机):iptables–Abad_tcp_packets–pTCP!--syn-mstate--stateNEW-jLOG--log-levelINFO--log-prefix“Newnotsyn:”iptables-Abad_tcp_packets-pTCP!--syn-mstate--stateNEW-jDROP三、缓存代理squid1、squid工作机制与基本功能2、squid组成部分3、squid安装配置
本文标题:代理防火墙
链接地址:https://www.777doc.com/doc-5043914 .html