代理服务器搭建文档

前言:检测到jayproxy使用的squid作为代理服务器,固我们也使用此软件来搭建代理服务器。

翻墙分析:Squid是很好的代理服务器,但它不能直接翻墙,因为在连接到Squid的过程中,就已经被墙了。所以得把传输的数据先进行加密再传输,这样等于是绕过了防火墙,这里就需要使用Stunnel来传输加密数据。

服务器需求:

1、一台可以正常访问互联网的服务器,代号A(国外的)

2、一台可以正常访问服务器A的国内服务器,代号B

访问过程:

1、用户设置代理指向B服务器的Stunnel服务监听的端口,访问网站

2、访问国外网站时在弹出框输入ldap用户信息,认证通过即可访问国外网站

3、这时B服务器的Stunnel会将信息做加密处理,然后发送到A服务器的Stunnel服务上

4、A服务器的Stunnel会将加密的信息做解密处理,然后发送给A服务器的Squid服务上

5、A服务器的Squid会向目标网站请求数据,然后将信息返回。

实施步骤:

一、在服务器A上安装Squid和Stunnel

1、安装Squid

//安装

yum -y install squid

//初始化squid

squid -z

//启动squid

service squid start

如果什么配置都不做修改,那默认的商品号为3128,这时候,可以打开你的浏览器,设置代理,填上A服务器的IP和3128端口号,访问baidu,输入ip看ip地址是不是代理服务器的ip,如果是,说明Squid已经能正常使用了,不过还不能翻墙。

2、安装Stunnel

//下载软件包

$wget http://www.stunnel.org/downloads/stunnel-5.01.tar.gz

//解压

$tar -zvxf stunnel-5.01.tar.gz

//进入软件包

$cd stunnel-5.01

//编译安装

$./configure

$make

$make install

配置Stunnel:

Stunnel比Squid要麻烦一些,因为Squid如果你什么都设置,同样能运行,而Stunnel就不行。它需要一个配置文件,还需要一个签名证书。

//先进到目录

cd /etc/stunnel/

$openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem

这样会在/etc/sutnnel/里生成密钥文件stunnel.pem

接着给它生成Diffie-Hellman部分:

$openssl gendh 512>> stunnel.pem

网络上说这是4.X版本必须要做的,但我使用的5.01也这么做了。

设置配置文件:

在/etc/stunnel/目录下有一个stunnel.conf.simple文件(好像是这样的),可以cp一份为stunnel.conf或是新建一个stunnel.conf,这里使用新建

$vim stunnel.conf

将以下内容复制进去

cert =/etc/stunnel/stunnel.pem

CAfile =/etc/stunnel/stunnel.pem

socket = l:TCP_NODELAY=1

socket = r:TCP_NODELAY=1

;;;chroot = /var/run/stunnel

pid = /tmp/stunnel.pid

verify = 3

;;; CApath = certs

;;; CRLpath = crls

;;; CRLfile = crls.pem

setuid = stunnel

setgid = stunnel

;;; client=yes

compression = zlib

;;; taskbar = no

delay = no

;;; failover = rr

;;; failover = prio

sslVersion = TLSv1

fips=no

debug = 7

syslog = no

output = stunnel.log

[sproxy]

accept = 34567

connect = 127.0.0.1:3128

这里有几个设置要说明一下:

第一行和二行是密钥文件的位置,如果按前面的做法,这里肯定是正确的。

setuid = stunnel

setgid = stunnel

是设置用户和用户组,都为stunnel,一般情况下是不会有它们的,所以要新建用户和用户组:

$groupadd -g 122 stunnel

$useradd -c stunnel -d /nonexistent -m -g 122 -u 122 stunnel

accept = 34567 是监听的端口号,也就是B服务器要指向的位置

connect = 127.0.0.1:3128 是本服务器,也就是A服务器Squid监听的端口号,也就是3128啦。

保存退出后,就可以试着启动stunnel了

$stunnel

如果正常是没有输出任何内容的,如果有问题,它会给出问题所在,仔细排查,基本上不会有什么问题。

检查是否正常运行:

$ps -ef | grep stunnel

如果看到stunnel用户运行的stunnel,说明已经成功运行了。

这样A服务器的Squid和Stunnel都配置完成了,接下来配置国内B服务器的Stunnel。B服务器不需要Squid,所以只需要配置Stunnel

二、在服务器B上安装配置Stunnel

安装同A,密钥不要再生成了,从服务器A上拷过来

登录服务器A,进到/etc/stunnel/目录,向服务器B的/etc/stunnel/目录里拷贝stunnel.pem密钥:

$cd /etc/stunnel/

$scp stunnel.pem [email protected]服务器B的IP:/etc/stunnel/

接着登录服务器B,设置配置文件,同服务器A,可以cp一个,也可以新建,这里同样新建:

$cd /etc/stunnel/

$vim stunnel.conf

将下面的内容复制到里面:

cert =/etc/stunnel/stunnel.pem

socket = l:TCP_NODELAY=1

socket = r:TCP_NODELAY=1

verify = 2

CAfile =/etc/stunnel/stunnel.pem

client=yes

compression = zlib

ciphers = AES256-SHA

delay = no

failover = prio

sslVersion = TLSv1

fips = no

[sproxy]

accept  = 0.0.0.0:7071

connect = 服务器A的IP:34567

这里要说明的是:

accept = 0.0.0.0:7071 中的7071是用户需要设置的代理端口,可以随意设置,只要大于500就好。0.0.0.0是为了让外网能使用,如果只是内部使用,改成127.0.0.1即可。

connect = 服务器A的IP:34567,很显然这里要填什么,34567是服务器A的Stunnel监听的端口号,保持和它一至就对了。

保存退出后,就可以启动Stunnel了

$stunnel

如果没有意外,整个代理就正常运行了,打开浏览器,将代理设置服务器B的IP+7071端口号,此时即可访问国外网站。

三、配置squid服务器使用LDAP认证

1、安装ldap客户端

yum -y install openldap-clients nss-pam-ldapd openldap

添加ldap服务器信息

vim /etc/openldap/ldap.conf

添加以下2行

BASE dc=shuyun,dc=com

URI ldap://ldap.shuyun.com:389

重启nslcd服务

/etc/init.d/nslcd restart

测试与ldap服务器连通性

ldapsearch -x

2、配置squid与ldap通信

执行此条命令测试squid是否能与ldap连通

/usr/lib64/squid/squid_ldap_auth -u -cn -f "uid=%s" -b "ou=people,dc=shuyun,dc=com" -D "cn=user,ou=people,dc=shuyun,dc=com" -w "password"  -H ldap://ldap.shuyun.com

执行时需要输入用户和密码,连通后会显示ok

连通后请编辑/etc/squid/squid.conf文件

注释掉所有以http_access开头的内容,在最后面添加以下4行

auth_param basic program /usr/lib64/squid/squid_ldap_auth -u -cn -f "uid=%s" -b "ou=people,dc=shuyun,dc=com" -D "cn=user,ou=people,dc=shuyun,dc=com" -w "password"  -H ldap://ldap.shuyun.com

acl ldapauth proxy_auth REQUIRED

http_access allow ldapauth

http_access deny all

重启squid

/etc/init.d/squid/restart

打开网站看是否会弹出对话框要求输入用户名和密码

四、生成PAC文件,定义白名单翻墙网站

可以下载shadowsocks软件运行,然后提取里面的本地pac文件

然后把pac文件里面服务器的地址改成B服务器的地址

var proxy = "PROXY B服务器地址:7071; DIRECT;";

pac文件保存好后,下载到本地然后在浏览器代理设置使用这个pac文件即可实现翻墙的域名走国外服务器线路。

时间: 2024-11-05 04:51:26

代理服务器搭建文档的相关文章

openvpn搭建文档

# openvpn搭建文档 ## 安装相关包文件 ### 安装openssl和lzo包,lzo包用于压缩通讯数据加快传输速度 ``` yum -y install openssl openssl-devel yum -y install lzo ``` ### 安装openvpn和easy-rsa ``` yum -y install openvpn easy-rsa ``` ## 服务器端生成相关文件 ### 修改vars文件 ``` cd /usr/share/easy-rsa/2.0/ v

生产环境轻量级dns服务器dnsmasq搭建文档

dnsmasq搭建文档 一.生产环境域名解析问题 之前生产环境设备较少,是通过维护master(192.168.1.1)设备的hosts文件实现的.每次新增设备后,需要在master的hosts文件中新增ip和主机名,再将master的hosts文件批量拷贝到生产所有已部署设备和新增设备.设备少时维护比较简单,随时设备越来越多,维护起来变得很繁琐,批量拷贝也非常消耗精力. 为了减轻维护成本,和提高维护效率,在生产环境搭建一台dns服务器非常有必要. 进过筛选,dnsmasq这个轻量级的dns服务

环境搭建文档——Windows下的Python3环境搭建

前言 背景介绍: 自己用Python开发了一些安卓性能自动化测试的脚本, 但是想要运行这些脚本的话, 本地需要Python的环境. 测试组的同事基本都没有安装Python环境, 于是乎, 我就想直接在网上找一篇Python环境搭建的文章, 但是没有找到让我觉得简洁又满意的搭建文档,所以我就直接用虚拟机的环境去记录一次Python环境的搭建文档 说明: 此次搭建的是Windows下的Python3的环境, Python2的环境应该也可以参照这篇文章(建议大家使用Python3的环境, Python

Readthedocs+Github搭建文档

环境配置 要求已经具备下列工具: Python pip 本教程是在Windows10上进行搭建的,Linux需要稍作修改 原文链接:Getting Started 安装Sphinx美化文章 $ pip install sphinx sphinx-autobuild 在本地创建一个你要保存文档的文件夹,然后进入到该文件夹 $ cd /path/to/project $ mkdir docs $ cd docs 使用sphinx-quickstart进行快速配置 $ sphinx-quickstar

cacti监控搭建文档(中文版)

说明:CactiEZ中文版V10.1是基于CentOS6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统! 优点:省去了复杂烦琐的Cacti配置过程,安装之后即可使用,全部中文化,界面更友好 缺点:CactiEZ是一个完整的操作系统,需要专门一台电脑才能安装使用 监控主机搭建: 一:首先下载cacti镜像.参考链接http://pan.baidu.com/s/1mgIBEo4 密码:sa5o 二:安装.如果是虚拟机安装,请设置磁盘空间大于10G,安装过程基本上一直是默认回车. 三

各种Java项目环境搭建-文档引用汇总记录

springmvc环境搭建 1.如何用Maven创建web项目(具体步骤) 2.springmvc环境搭建,一步一步超简单

Hadoop集群搭建文档

  环境: Win7系统装虚拟机虚拟机VMware-workstation-full-9.0.0-812388.exe Linux系统Ubuntu12.0.4 JDK                jdk-7u17-linux-i586.tar.gz 搭建步骤: 首先在win系统装虚拟机,执行VMware-workstation-full-9.0.0-812388.exe: 其次需要在虚拟机上装Ubuntu12.0.4: 安装完成Ubuntu12.0.4之后,需要安装JDK,(注意:安装JDK需

zabbix3.2 C/S架构搭建文档

zabbix  是用PHP开发的.得需要搭建LAMP环境 zabbix-server 192.168.1.101zabbix-agent 192.168.1.105 zabbix 下载 https://www.zabbix.com/ 安装zabbix3.2版本需要一下:apacache 1.3以上的版本PHP 5.4 以上的版本 安装编译源码所需的工具和库yum install make gcc gcc-c++ 先将系统自带的php卸载yum remove php*安装5.4以上的PHPrpm

Oracle 12C R2 on Linux 7.X Data Guard 搭建文档

1.查看主机和数据库信息 [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue May 29 01:19:35 2018 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0