反向代理的另类使用方法
1、环境简述:
一个公司,两个部门,部门一种有6个网段,部门二也有留个网段,如下图,且两个部门网络是独立的,使用不同的公网出口.但是在楼层3中,部门一和部门二都有交换机在。
2、需求简述:
现在部门一的1.0网段有一台web服务器192.168.1.2,部门二中的192.168.4.0和172.16.0.0网段的用户想访问这台web服务器.不能使用×××和外网开放端口。
思路简介:部门一和部门二均有交换机在楼层3,不能使用×××和开放端口,找一台双网卡的主机,分别接入部门一和部门二。(如果是虚拟机可以利用虚拟机中的虚拟交换机和交换机的VLAN来实现虚拟机接入到两个不同的网络)。接下来使用反向代理和路由解决部门二中的eth4接口用户访问部门中的eth1接口中的服务器。
3、具体实现:
看我的配置文件。
4、实验拓扑:
5、配置步骤:
(1)web服务器配置
略,不需要怎么配,架设好web服务,配置网络就可以了
(2)中间代理服务器配置(重点)
a、代理配置文件(这里使用squid,关于squid的配置不做解释,网上配置较多,大家可以搜索)
[root@fz ~]# cat -n /usr/local/squid/etc/squid.conf
1 cache_effective_user squid
2 cache_effective_group squid
3 #parent
4 cache_peer 192.168.1.2 parent 80 0 no-query originserver proxy-only
5 #cache_peer 192.168.1.103 parent 128 0 no-query originserver round-robin proxy-only
6 #cache_peer 192.168.5.93 parent 128 0 no-query originserver round-robin proxy-only
7 acl all src all
8 acl manager proto cache_object
9 acl localhost src 127.0.0.1/32
10 #acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
11
12 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
13 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
14 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
15 #acl localnet src fc00::/7 # RFC 4193 local private network range
16 #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
17
18 acl SSL_ports port 443
19 acl Safe_ports port 80 # http
20 acl Safe_ports port 21 # ftp
21 acl Safe_ports port 443 # https
22 acl Safe_ports port 70 # gopher
23 acl Safe_ports port 210 # wais
24 acl Safe_ports port 1025-65535 # unregistered ports
25 acl Safe_ports port 280 # http-mgmt
26 acl Safe_ports port 488 # gss-http
27 acl Safe_ports port 591 # filemaker
28 acl Safe_ports port 777 # multiling http
29 #?¨ò????¨1y????2?д255.255.255.0??ó′λê
30 acl thinkpig007 src 0.0.0.0/0 #define access network
31 acl CONNECT method CONNECT
32 http_access allow manager localhost
33 http_access deny manager
34 http_access deny !Safe_ports
35 http_access deny CONNECT !SSL_ports
36 #
37 http_access allow thinkpig007
38 http_access allow localnet
39 http_access allow localhost
40 http_access deny all
41 never_direct allow all
42 http_port 28128 transparent
43 hierarchy_stoplist cgi-bin ?
44 cache_store_log none
45 cache_mem 100 MB
46 maximum_object_size 20 MB
47 cache_swap_low 90
48 cache_swap_high 95
49 coredump_dir /var/spool/squid
50 refresh_pattern ^ftp: 1440 20% 10080
51 refresh_pattern ^gopher: 1440 0% 1440
52 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
53 refresh_pattern . 0 20% 4320
54
55 header_access HTTP_VIA deny all
56 header_access Via deny all
57 header_access X-Forwarded-For deny all
58 forwarded_for off
59 cache_mgr thinkpig007@gmail.com
b、基于网卡的路由配置(这个是实现互访的重点)
192.168.6.2网卡路由配置
[root@fz ~]# vi /etc/sysconfig/network-scripts/route-eth0
192.168.1.0/24 via 192.168.6.1 dev eth0
192.168.3.2网卡路由配置
[root@fz ~]# vi /etc/sysconfig/network-scripts/route-eth1
0.0.0.0/0 via 192.168.3.1 dev eth1
(3)客户端
配置网络即可,不需要其他配置
6、场景说明:
通过拓扑图,可以看到,两个网络中均有一些相同的网段,这个很可能造成网段冲突,所以这里我找了一个部门一种不会和部门二中冲突的网段192.168.6.0来实现。如果你有这样的需求也可以这样做。有问题,可以随时来咨询我。
转载于:https://blog.51cto.com/thinkpig007/1609944