230 likes | 336 Views
主要内容. 防火墙 代理服务器 代理防火墙 HTTP 简介 Socket 简介. 防火墙. 防火墙 (firewall) 是指一个由软件或和硬件设备组合而成 的安全防护系统 ,处于企业或网络群体计算机与外界通道 (Internet) 之间,限制外界用户对内部网络访问及管理内部用户访问外界网络的权限。. 防火墙的功能. 防火墙是网络安全的屏障 防火墙可以强化网络安全策略 对网络存取和访问进行监控审计 防止内部信息的外泄. 防火墙的分类. 包过滤型 应用代理型. 包过滤防火墙.
E N D
主要内容 • 防火墙 • 代理服务器 • 代理防火墙 • HTTP简介 • Socket简介
防火墙 • 防火墙(firewall)是指一个由软件或和硬件设备组合而成的安全防护系统,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络访问及管理内部用户访问外界网络的权限。
防火墙的功能 • 防火墙是网络安全的屏障 • 防火墙可以强化网络安全策略 • 对网络存取和访问进行监控审计 • 防止内部信息的外泄 防火墙的分类 • 包过滤型 • 应用代理型
包过滤防火墙 • 在网络层中检查数据流中每个数据包 ,根据数据包的源地址、目标地址、以及包所使用的端口确定是否允许该类数据包通过 • 210.45.160.23:1234 -> 210.45.160.37:80 TCP TTL:128 TOS:0x0 ID:2823 IpLen:20 DgmLen:461 DF • 优点:用户透明、速度快、效率高 • 缺点:不能防止内部攻击、不能彻底防止地址欺骗、一些应用协议不适合于数据包过滤
代理服务器 • Internet是一个典型的客户机/服务器(Client/Server)结构:当我们在使用本地机与Internet相连接时,一般通过本地机上的客户端程序(例如浏览器、软件下载工具等)发出请求;远端的WWW服务器程序在接到这些请求后响应请求并提供相应的服务。 • Proxy Server则处在客户机和服务器之间,对于远程的服务器而言,代理服务器是客户机,它向服务器提出各种服务申请;对于客户机而言,代理服务器则是服务器,它接受客户机提出的申请并提供相应的服务。
代理服务器 • 当代理服务器得到一个客户的连接意图时,它将核实客户请求,并经过特定的安全化的Proxy应用程序处理连接请求,将处理后的请求传递到真实的服务器上,然后接受服务器应答,并做进一步处理后,将答复交给发出请求的最终客户。 • 代理服务器在外部网络向内部网络申请服务时发挥了中间转接的作用。
代理服务器的主要功能 • 设置用户验证和记帐功能 • 对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。 • 增加缓冲器(Cache),提高访问速度 • 连接Internet与Intranet充当FireWall(防火墙) • 节省IP开销
代理防火墙 • 又叫应用层网关,是使代理技术参与到一个TCP连接的全过程,从内部发出的数据包经过防火墙处理后,好像是源于防火墙外部网卡一样,可以隐藏内部网络的结构。 • 工作在应用层,针对不同网络服务提供细致而又安全的网络保护 • 优点:安全 • 缺点:速度相对比较慢
HTTP协议简介 • HTTP(Hyper Text Transfer Protocol)是超文本传输协议的缩写,它用于传送WWW方式的数据。它采用了请求/响应模型。
HTTP协议的内部操作过程 • 建立连接连接的建立是通过申请套接字(Socket) 实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。 • 发送请求打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。 • 发送响应服务器在处理完客户的请求之后,要向客户机发送响应消息。 • 关闭连接客户和服务器双方都可以通过关闭套接字来结束TCP/IP连接。
HTTP请求 • HTTP/1.0 请求消息的格式为: • 请求消息=请求行(通用信息|请求头|实体头) CRLF[实体内容 • 请求行=方法 请求URL HTTP版本号 CRLF • 方法=GET|HEAD|POST|扩展方法 • URL=协议名称+域名+目录与文件名
示例信息1 • GEThttp://download.microtool.de:80/somedata.exeHost:download.microtool.deAccept:*/*Pragma:no-cacheCache-Control:no-cacheReferer:http://download.microtool.de/User-Agent:Mozilla/4.04[en](Win95;I;Nav)Range:bytes=554554-
响应信息 • HTTP/1.0的响应消息格式如下:响应消息=状态行(通用信息头|响应头|实体头)CRLF实体内容〕 • 状态行=HTTP版本号 状态码 原因叙述 • 状态码表示响应类型 • 1xx:信息响应类,表示接收到请求并且继续处理2xx:处理成功响应类,表示动作被成功接收、理解和接受3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理4xx:客户端错误,客户请求包含语法错误或者是不能正确执行5xx:服务端错误,服务器不能正确执行一个正确的请求
示例1 • HTTP/1.0200OKDate:Mon,31Dec200104:25:57GMTServer:Apache/1.3.14(Unix)Content-type:text/htmlLast-modified:Tue,17Apr200106:46:28GMTEtag:"a030f020ac7c01:1e9f"Content-length:39725426Content-range:bytes554554-40279979/40279980
套接字 • Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输、接收的信息都通过这个Socket接口来实现。在应用开发中就像使用文件句柄一样,可以对 Socket句柄进行读、写操作。 • SOCKET接口是TCP/IP网络最为通用的API,也是在INTERNET上进行应用开发最为通用的API。 • Windows Sockets规范是一套开放的、支持多种协议的 Windows下的网络编程接口。
Socket网络编程主要函数 • SOCKET socket(int af, int type, int protocol);定义一个原始套接字 • int bind(SOCKET s,struct sockaddr *sa, int addrlen);将本地地址绑定到所创建的套接字上,以使在网络上标识该套接字。 • listen(SOCKET s, int queue_length);将套接字置于监听模式并准备接收连接请求。 • SOCKET accept(SOCKET s,struct sockaddr *sa,int *addrlen);进入监听状态后,通过调用accept使套接字准备接收客户连接的请求。
Socket网络编程主要函数--续 • int connect(SOCKET s, struct sockaddr *sa, int addrlen);客户向服务器发出连接请求。 • int closesocket(SOCKET s);关闭连接将中断对该socket的读写操作。 • 发送数据:int send(SOCKET s, const char *buf, int len, int flags); • 接收数据:int recv(SOCKET s, char *buf, int len, int flags);