首页 百科知识 防火墙与代理服务器的搭建

防火墙与代理服务器的搭建

时间:2024-10-05 百科知识 版权反馈
【摘要】:为了满足公司员工的上网需求以及提高公司内部网络安全性, 公司希望不采购防火墙设备, 利用一台Linux主机构建网络防火墙。所以应使用Linux建立iptables防火墙, 通过NAT功能共享网络, 并且在Web服务器上建立服务器主机防火墙。RHEL6.4内置的iptables防火墙和代理服务器则提供了一种物美价廉的解决方案,如图11-1所示。这是运行在防火墙之上的一种应用层服务器程序, 它通过对每种应用服务编制专门的代理程序, 实现监视和控制应用层数据流的作用。

【学习目标】

知识目标:

•了解防火墙的基本概念、 分类与作用。

•掌握Squid代理服务器的分类及特点。

•熟悉Linux防火墙的架构及包过滤的匹配流程。

•掌握iptables命令的格式和使用。

•掌握NAT的配置方法。

能力目标:

•会安装iptables软件包。

•能使用iptables命令设置包过滤规则。

•会配置NAT服务。

•会安装Squid软件包。

•会架设普通代理、 透明代理和反向代理服务器。

•会在客户端测试iptables和Squid的配置情况。

【项目描述】

公司现在规模逐年扩大, 越来越多的员工需要在公司上互联网, 公司原来采购的出口路由器已经不堪重负, 频频死机。 为了满足公司员工的上网需求以及提高公司内部网络安全性, 公司希望不采购防火墙设备, 利用一台Linux主机构建网络防火墙。 此外, 公司的网站开通之后, 网站的访问量不断攀升, 公司也通过网站得到了好几笔订单。 老板在暗暗高兴的同时, 又产生了新的担心。 网络上存在很多威胁, 公司的网站会不会受到攻击和破坏呢? 所以应使用Linux建立iptables防火墙, 通过NAT功能共享网络, 并且在Web服务器上建立服务器主机防火墙。

【任务分解】

学习本项目需要完成6个任务: 任务1, 安装iptables主机防火墙; 任务2, 配置iptables规则; 任务3, 配置NAT; 任务4, 安装、 启动与停止Squid服务; 任务5, 配置Squid服务器; 任务6, 配置透明代理。

【问题引导】

•什么是防火墙?

•防火墙的作用是什么?

•什么是iptables?

【知识学习】

信息安全始终是企业信息化中一个不可忽视的重要方面, 而如何在保障企事业内部网络安全的同时为内网和外网 (互联网) 的用户提供高效、 安全、 稳定可靠的访问服务, 是网络管理员所考虑的问题。 RHEL6.4内置的iptables防火墙和代理服务器则提供了一种物美价廉的解决方案,如图11-1所示。

图11-1 iptables防火墙和代理服务器结构

防火墙是指设置在不同网络 (如可信任的企业内部网和不可信的公共网) 或网络安全域之间的一系列部件的组合。

它是不同网络或网络安全域之间信息的唯一出入口, 能根据企业的安全策略控制 (允许、 拒绝、 监测) 出入网络的信息流, 且本身具有较强的抗攻击能力。

在逻辑上, 防火墙是一个分离器、 限制器和分析器, 它能有效地监控内部网和Internet之间的任何活动, 保证了内部网络的安全。

1. 防火墙的功能

(1) 过滤进出网络的数据包, 封堵某些禁止的访问行为。

(2) 对进出网络的访问行为作出日志记录, 并提供网络使用情况的统计数据, 实现对网络存取和访问的监控审计。

(3) 对网络攻击进行检测和告警。

(4) 防火墙可以保护网络免受基于路由的攻击, 如IP选项中的源路由攻击和ICMP重定向中的重定向路径, 并通知防火墙管理员。

(5) 提供数据包的路由选择和网络地址转换 (NAT), 从而解决局域网中主机使用内部IP地址也能够顺利访问外部网络的应用需求。

2. 防火墙的类型

1) 按采用的技术划分

(1) 包过滤型防火墙。 在网络层或传输层对经过的数据包进行筛选。 筛选的依据是系统内设置的过滤规则, 通过检查数据流中每个数据包的IP源地址、 IP目的地址、 传输协议(TCP、 UDP、 ICMP等)、 TCP/UDP端口号等因素, 来决定是否允许该数据包通过 (包的大小为1500B)。

(2) 代理服务器型防火墙。 这是运行在防火墙之上的一种应用层服务器程序, 它通过对每种应用服务编制专门的代理程序, 实现监视和控制应用层数据流的作用。

2) 按实现的环境划分

(1) 软件防火墙: 学校、 上前台计算机的网吧。 普通计算机+通用的操作系统 (如Linux)。

(2) 硬件 (芯片级) 防火墙: 基于专门的硬件平台和固化在ASIC芯片来执行防火墙的策略和数据加解密, 具有速度快、 处理能力强、 性能高、 价格比较昂贵的特点 (如Net Screen、 Forti Net)。

通常有3个以上网卡接口

•外网接口: 用于连接Internet网。

•内网接口: 用于连接代理服务器或内部网络。

•DMZ接口 (非军事化区): 专用于连接提供服务的服务器群。

从1.1内核开始, Linux系统就已经具有包过滤功能了, 随着Linux内核版本的不断升级, Linux下的包过滤系统经历了以下3个阶段:

在2.0内核中, 包过滤的机制是ipfw, 管理防火墙的命令工具是ipfwadm。

在2.2内核中, 包过滤的机制是ipchain, 管理防火墙的命令工具是ipchains。

在2.4之后的内核中, 包过滤的机制是netfilter, 防火墙的命令工具是iptables。

3.Linux防火墙的架构

Linux防火墙系统由以下两个组件组成。

1) netfilter

netfilter是集成在内核中的一部分, 作用是定义、 保存相应的过滤规则。

提供了一系列的表, 每个表由若干个链组成, 而每条链可以由一条或若干条规则组成。

netfilter是表的容器, 表是链的容器, 而链又是规则的容器。

2) iptables

这是Linux系统为用户提供的管理netfilter的一种工具, 是编辑、 修改防火墙 (过滤)规则的编辑器。

通过这些规则及其他配置, 告诉内核的netfilter对来自某些源、 前往某些目的地或具有某些协议类型的数据包如何处理。

这些规则会保存在内核空间之中。

按表→链→规则的分层结构来组织规则,如图11-2所示。

iptables规则的分层结构:

(1) 表 (tables) ——专表专用

①filter表——包过滤。

它含INPUT、 FORWARD、 OUTPUT这3个链。

②nat表——包地址修改: 用于修改数据包的IP地址和端口号, 即进行网络地址转换。

它含PREROUTING、 POSTROUTING、 OUTPUT这3个链。

③mangle表——包重构: 修改包的服务类型、 生存周期以及为数据包设置Mark标记,以实现Qo S (服务质量)、 策略路由和网络流量整形等特殊应用。

图11-2 防火墙系统结构

它含PREROUTING、 POSTROUTING、 INPUT、 OUTPUT和FORWARD这5个链。

④raw表——数据跟踪: 用于数据包是否被状态跟踪机制处理。

它包含PREROUTING、 OUTPUT两个链。

(2) 链 (chains) ——处理的数据包流向的不同。

①INPUT链。 当数据包源自外界并前往防火墙所在的本机 (入站) 时, 即数据包的目的地址是本机时, 则应用此链中的规则。

②OUTPUT链。 当数据包源自防火墙所在的主机并要向外发送 (出站) 时, 即数据包的源地址是本机时, 则应用此链中的规则。

③FORWARD链。 当数据包源自外部系统, 并经过防火墙所在主机前往另一个外部系统(转发) 时, 则应用此链中的规则。

④PREROUTING链。 当数据包到达防火墙所在的主机在作路由选择之前, 且其源地址要被修改 (源地址转换) 时, 则应用此链中的规则。

⑤POSTROUTING链。 当数据包在路由选择之后即将离开防火墙所在主机, 且其目的地址要被修改 (目的地址转换) 时, 则应用此链中的规则。

(3) 规则 (rules)。

规则其实就是网管员预定义的过滤筛选数据包的条件。

规则一般的定义为 “如果数据包头符合这样的条件, 就这样处理这个数据包”。

当数据包与规则匹配时, iptables就根据规则所定义的动作来处理这些数据包 (如放行、丢弃和拒绝等)。

配置防火墙的主要工作就是添加、 修改和删除这些规则。

数据包过滤匹配流程如下:

表间的优先顺序依次为raw、 mangle、 nat、 filter。

链间的匹配顺序如下:

入站数据: PREROUTING、 INPUT。

出站数据: OUTPUT、 POSTROUTING。

转发数据: PREROUTING、 FORWARD、 POSTROUTING。

链内规则的匹配顺序:

按顺序依次进行检查, 找到相匹配的规则即停止 (LOG策略会有例外)。

若在该链内找不到相匹配的规则, 则按该链的默认策略处理。

4. 代理服务器Squid

1) Squid代理服务器的作用

Squid除了具有防火墙的代理、 共享上网等功能外, 还有以下特别的作用:

(1) 加快访问速度, 节约通信带宽。

(2) 多因素限制用户访问, 记录用户行为。

2) Squid代理服务器的工作流程

其流程如图11-3所示。

图11-3 Squid代理服务器的工作流程

3) Squid代理服务器的分类及特点

Squid代理服务器按照代理的设置方式, 可以分为以下3种。

(1) 普通 (标准) 代理服务器。

这种代理服务器需要在客户端的浏览器中设置代理服务器的地址和端口号。

(2) 透明代理服务器。

透明代理是NAT和代理的完美结合, 之所以称为透明, 是因为在这种方式下用户感觉不到代理服务器的存在, 不需要在浏览器或其他客户端工具 (如网络快车、 QQ、 迅雷等)中做任何设置, 客户机只需要将默认网关设置为代理服务器的IP地址便可。

(3) 反向代理服务器。

普通代理和透明代理是为局域网用户访问Internet中的Web站点提供缓存代理, 而反向代理恰恰相反, 是为Internet中的用户访问企业局域网内的Web站点提供缓存加速。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈