透明代理让你轻松上网!反向代理让你安全无忧访问web服务!

本文涉及的产品
云防火墙,500元 1000GB
简介:

  透明代理是NAT和代理的完美结合,之所以称为透明,是因为在这种工作方式下用户感觉不到代理服务器的存在,不需要在浏览器或其他客户端工具(如网络快车等)中作任何设置,客户机只需要将默认网关设置为Linux服务器的IP地址即可。当客户机访问Internet,请求数据包经过Linux服务器转发时,Linux服务器上的iptables将客户机的HTTP请求重定向到Squid代理服务器,由代理服务器代替客户机访问外部信息资源,再将获取的数据传回客户机。

拓扑图:(内网访问外网)

image

设备                      ip地址/子网掩码             网关                       DNS

pc :                    192.168.20.22/24       192.168.20.100       222.85.85.85

服务器:  eth1:  192.168.20.100/24   

                  eth0:  192.168.2.10/24              192.168.2.1

无线AP               192.168.2.1/24

一、准备工作:

1.配ip: setup

image image

网络服务重启并查看网关:

image

2.连接方式:

eth0  VMnet0  Bridged      //桥接到无线路由器直接上网!

eth1  VMnet1  Host-only

image

image

3.pc1(内网主机)作为测试: (windows xp)

image

二、具体配置:

1.开启数据包转发功能!

[root@gjp99 ~]# vim /etc/sysctl.conf

image

[root@gjp99 ~]# sysctl –p   //查看是否已修改成功 
net.ipv4.ip_forward = 1 
net.ipv4.conf.default.rp_filter = 1 
net.ipv4.conf.default.accept_source_route = 0 
kernel.sysrq = 0 
kernel.core_uses_pid = 1 
net.ipv4.tcp_syncookies = 1 
kernel.msgmnb = 65536 
kernel.msgmax = 65536 
kernel.shmmax = 4294967295 
kernel.shmall = 268435456

2.NAT 代替代理实现其功能!

[root@gjp99 ~]# iptables -t nat -L 
Chain PREROUTING (policy ACCEPT) 
target     prot opt source               destination        

Chain POSTROUTING (policy ACCEPT) 
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT) 
target     prot opt source               destination

[root@gjp99 ~]# iptables -t filter -L 
Chain INPUT (policy ACCEPT) 
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT) 
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT) 
target     prot opt source               destination

在squid机器上设置关于dns的nat转换

[root@gjp99 ~]# iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -p udp --dport 53 -o eth0 -j MASQUERADE

image 

imageimage

[root@gjp99 ~]# iptables -t nat -L -v –n        //查看nat的详细信息! 
Chain PREROUTING (policy ACCEPT 165 packets, 22327 bytes) 
pkts bytes target     prot opt in     out     source               destination     

Chain POSTROUTING (policy ACCEPT 35 packets, 2134 bytes) 
pkts bytes target     prot opt in     out     source               destination         
      251 MASQUERADE  udp  --  *      eth0    192.168.20.0/24      0.0.0.0/0           udp dpt:53

设置端口重定向:

[root@gjp99 ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-ports  3128

3.打开透明传输

[root@gjp99 ~]# vim /etc/squid/squid.confimage

4.客户端访问成功

image

注意:要经过代理服务器访问的主机,在DOS下不能使用ping  、tracert命令,但可以正常上网!

[root@gjp99 ~]# tail -f /var/log/squid/access.log

1346486724.345   1295 192.168.20.22 TCP_MISS/302 928 GET http://www.google.com/ - DIRECT/74.125.128.104 text/html

 反向代理:

简介:

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

什么是反向代理呢?

反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的WEB缓冲服务器(即:WEB反向代理服务器)来降低实际的WEB服务器的负载。

Web服务器加速(反向代理)是针对Web服务器提供加速功能的。它作为代理Cache,但并不针对浏览器用户,而针对一台或多台特定Web服务器(这也是反向代理名称的由来)。实施反向代理,只要将Reverse Proxy Cache设备放置在一台或多台Web服务器前端即可。当互联网用户访问某个WEB服务器时,通过DNS服务器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服务器的IP地址,这时Reverse Proxy Server设备充当Web服务器浏览器可以与它连接,无需再直接与Web服务器相连。因此,大量Web服务工作量被卸载到反向代理服务上。不但能够防止外部网主机直接和web服务器直接通信带来的安全隐患,而且能够很大程度上减轻web服务器的负担,提高访问速度。

1 .反向代理 - 原理

反向代理服务器位于本地WEB服务器和Internet之间。当用户浏览器发出一个HTTP请求时,通过域名解析将请求定向到反向代理服务器(如果要实现多个WEB服务器的反向代理,需要将多个WEB服务器的域名都指向反向代理服务器)。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据(比如html网页和图片等),而一些CGI脚本程序或者ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。有四个最重要HTTP头标记: 
Last-Modified: 告诉反向代理页面什么时间被修改 
Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 
Cache-Control: 告诉反向代理页面是否应该被缓冲 
Pragma: 告诉反向代理页面是否应该被缓冲. 
例如:在默认情况下,ASP页面返回” Cache-control: private.” ,所以ASP页面时不会在反向代理服务器缓存的

2 .反向代理服务器与内容服务器

代理服务器充当服务器的替身,如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。

客户机向站点提出请求时,请求转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何  URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向  URL。

这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。

3. 反向代理服务器的工作流程

1)用户通过域名发出访问 web 服务器的请求,该域名被 DNS 服务器解析为反向代理服务器的 IP地址;

2)反向代理服务器接受用户的请求

3)反向代理服务器在本地缓存中查找请求的内容找到后直接把内容发送给用户

4)如果本地缓存里没有用户所请求的信息内容反向代理服务器会代替用户向源服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是缓存的还会把它保存到缓存中。

4 .反向代理的好处

1) 解决了网站服务器对外可见的问题;

2) 节约了有限的 IP 地址资源,企业内所有的网站共享一个在 internet 中注册的 IP 地址,这些服务器分配私有地址,采用虚拟主机的方式对外提供服务;

3) 保护了真实的 web 服务器,web 服务器对外不可见,外网只能看到反向代理服务器,而反向代理服务器上并没有真实数据,因此,保证了 web 服务器的资源安全;

拓扑图:(外网访问内网)

image

配置:

代理服务器配置:

[root@gjp99 ~]# vim /etc/squid/squid.conf[root@gjp99 ~]# vim /etc/squid/squid.conf

1.添加访问 ip及端口:

image

2.添加内网服务器ip 及访问端口

image

 

3.默认拒绝所有,要打开允许!

image 

内网web服务器的配置:

    mount 
    mount /dev/cdrom /mnt/cdrom 
    cd /mnt/cdrom/Server 

[root@localhost Server]# ll http* 
-r--r--r-- 55 root root 1270589 2008-12-11 httpd-2.2.3-22.el5.i386.rpm 
-r--r--r-- 63 root root  151651 2008-12-11 httpd-devel-2.2.3-22.el5.i386.rpm

     rpm -ivh httpd-2.2.3-22.el5.i386.rpm

     yum   list  all  |grep http

     yum install httpd-devel-2.2.3-22.el5.i386.rpm

     vim /etc/yum.repos.d/rhel-debuginfo.repo 

[root@localhost Server]# cat /etc/yum.repos.d/rhel-debuginfo.repo 
[rhel-server] 
name=Red Hat Enterprise Server 
baseurl=file:///mnt/cdrom/Server 
enabled=1 
gpgcheck=1 
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release 
        cd /var/www/html 
        echo "gjp" >> index.html 
        firefox 
        ll lyn  x-2.8.5-28.1.el5_2.1.i386.rpm  
        rpm -ivh lynx-2.8.5-28.1.el5_2.1.i386.rpm  
        lynx http://127.0.0.1

        service  httpd start

外网,访问192.168.2.10 ,作为测试:

image



本文转自 gjp0731 51CTO博客,原文链接:http://blog.51cto.com/guojiping/980077


相关文章
|
4月前
|
Web App开发 监控 安全
OSS客户端签名直传实践:Web端安全上传TB级文件方案(含STS临时授权)
本文深入解析了客户端直传技术,涵盖架构设计、安全机制、性能优化等方面。通过STS临时凭证与分片上传实现高效安全的文件传输,显著降低服务端负载与上传耗时,提升系统稳定性与用户体验。
456 2
|
25天前
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
219 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
3月前
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
365 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
3月前
|
存储 安全 JavaScript
Web Storage有哪些安全风险?
Web Storage有哪些安全风险?
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
6月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
235 35
|
6月前
|
安全 Linux API
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
296 6
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
|
5月前
|
人工智能 安全 程序员
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
|
7月前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
167 0
|
3天前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
42 4