反向代理的另类使用方法

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、实验拓扑:

wKiom1TLDWuD998qAAU-qqAgCuI523.jpg


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来实现。如果你有这样的需求也可以这样做。有问题,可以随时来咨询我。