溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

代理服務(wù)器搭建文檔

發(fā)布時間:2020-07-29 18:33:37 來源:網(wǎng)絡(luò) 閱讀:983 作者:Bruceweien 欄目:建站服務(wù)器

前言:檢測到j(luò)ayproxy使用的squid作為代理服務(wù)器,固我們也使用此軟件來搭建代理服務(wù)器。

×××分析:Squid是很好的代理服務(wù)器,但它不能直接×××,因?yàn)樵谶B接到Squid的過程中,就已經(jīng)被墻了。所以得把傳輸?shù)臄?shù)據(jù)先進(jìn)行加密再傳輸,這樣等于是繞過了防火墻,這里就需要使用Stunnel來傳輸加密數(shù)據(jù)。

服務(wù)器需求:

1、一臺可以正常訪問互聯(lián)網(wǎng)的服務(wù)器,代號A(國外的)

2、一臺可以正常訪問服務(wù)器A的國內(nèi)服務(wù)器,代號B

訪問過程:

1、用戶設(shè)置代理指向B服務(wù)器的Stunnel服務(wù)監(jiān)聽的端口,訪問網(wǎng)站

2、訪問國外網(wǎng)站時在彈出框輸入ldap用戶信息,認(rèn)證通過即可訪問國外網(wǎng)站

3、這時B服務(wù)器的Stunnel會將信息做加密處理,然后發(fā)送到A服務(wù)器的Stunnel服務(wù)上

4、A服務(wù)器的Stunnel會將加密的信息做解密處理,然后發(fā)送給A服務(wù)器的Squid服務(wù)上

5、A服務(wù)器的Squid會向目標(biāo)網(wǎng)站請求數(shù)據(jù),然后將信息返回。

實(shí)施步驟:

一、在服務(wù)器A上安裝Squid和Stunnel

1、安裝Squid

//安裝

yum -y install squid  

//初始化squid

squid -z

//啟動squid

service squid start  

如果什么配置都不做修改,那默認(rèn)的商品號為3128,這時候,可以打開你的瀏覽器,設(shè)置代理,填上A服務(wù)器的IP和3128端口號,訪問baidu,輸入ip看ip地址是不是代理服務(wù)器的ip,如果是,說明Squid已經(jīng)能正常使用了,不過還不能×××。

2、安裝Stunnel

//下載軟件包

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

//解壓

$tar -zvxf stunnel-5.01.tar.gz

//進(jìn)入軟件包

$cd stunnel-5.01

//編譯安裝

$./configure

$make

$make install

配置Stunnel:

Stunnel比Squid要麻煩一些,因?yàn)镾quid如果你什么都設(shè)置,同樣能運(yùn)行,而Stunnel就不行。它需要一個配置文件,還需要一個簽名證書。

//先進(jìn)到目錄

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

網(wǎng)絡(luò)上說這是4.X版本必須要做的,但我使用的5.01也這么做了。

設(shè)置配置文件:

在/etc/stunnel/目錄下有一個stunnel.conf.simple文件(好像是這樣的),可以cp一份為stunnel.conf或是新建一個stunnel.conf,這里使用新建

$vim stunnel.conf

將以下內(nèi)容復(fù)制進(jìn)去

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

這里有幾個設(shè)置要說明一下:

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

setuid = stunnel

setgid = stunnel

是設(shè)置用戶和用戶組,都為stunnel,一般情況下是不會有它們的,所以要新建用戶和用戶組:

$groupadd -g 122 stunnel

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

accept = 34567 是監(jiān)聽的端口號,也就是B服務(wù)器要指向的位置

connect = 127.0.0.1:3128 是本服務(wù)器,也就是A服務(wù)器Squid監(jiān)聽的端口號,也就是3128啦。

保存退出后,就可以試著啟動stunnel了

$stunnel

如果正常是沒有輸出任何內(nèi)容的,如果有問題,它會給出問題所在,仔細(xì)排查,基本上不會有什么問題。

檢查是否正常運(yùn)行:

$ps -ef | grep stunnel

如果看到stunnel用戶運(yùn)行的stunnel,說明已經(jīng)成功運(yùn)行了。

這樣A服務(wù)器的Squid和Stunnel都配置完成了,接下來配置國內(nèi)B服務(wù)器的Stunnel。B服務(wù)器不需要Squid,所以只需要配置Stunnel

二、在服務(wù)器B上安裝配置Stunnel

安裝同A,密鑰不要再生成了,從服務(wù)器A上拷過來

登錄服務(wù)器A,進(jìn)到/etc/stunnel/目錄,向服務(wù)器B的/etc/stunnel/目錄里拷貝stunnel.pem密鑰:

$cd /etc/stunnel/

$scp stunnel.pem root@服務(wù)器B的IP:/etc/stunnel/

接著登錄服務(wù)器B,設(shè)置配置文件,同服務(wù)器A,可以cp一個,也可以新建,這里同樣新建:

$cd /etc/stunnel/

$vim stunnel.conf

將下面的內(nèi)容復(fù)制到里面:

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 = 服務(wù)器A的IP:34567

這里要說明的是:

accept = 0.0.0.0:7071 中的7071是用戶需要設(shè)置的代理端口,可以隨意設(shè)置,只要大于500就好。0.0.0.0是為了讓外網(wǎng)能使用,如果只是內(nèi)部使用,改成127.0.0.1即可。

connect = 服務(wù)器A的IP:34567,很顯然這里要填什么,34567是服務(wù)器A的Stunnel監(jiān)聽的端口號,保持和它一至就對了。

保存退出后,就可以啟動Stunnel了

$stunnel

如果沒有意外,整個代理就正常運(yùn)行了,打開瀏覽器,將代理設(shè)置服務(wù)器B的IP+7071端口號,此時即可訪問國外網(wǎng)站。

三、配置squid服務(wù)器使用LDAP認(rèn)證

1、安裝ldap客戶端

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

添加ldap服務(wù)器信息

vim /etc/openldap/ldap.conf

添加以下2行

BASE dc=shuyun,dc=com

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

重啟nslcd服務(wù)

/etc/init.d/nslcd restart

測試與ldap服務(wù)器連通性

ldapsearch -x

2、配置squid與ldap通信

執(zhí)行此條命令測試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

執(zhí)行時需要輸入用戶和密碼,連通后會顯示ok

連通后請編輯/etc/squid/squid.conf文件

注釋掉所有以http_access開頭的內(nèi)容,在最后面添加以下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

打開網(wǎng)站看是否會彈出對話框要求輸入用戶名和密碼

四、生成PAC文件,定義白名單×××網(wǎng)站

可以下載shadowsocks軟件運(yùn)行,然后提取里面的本地pac文件

然后把pac文件里面服務(wù)器的地址改成B服務(wù)器的地址

var proxy = "PROXY B服務(wù)器地址:7071; DIRECT;";

pac文件保存好后,下載到本地然后在瀏覽器代理設(shè)置使用這個pac文件即可實(shí)現(xiàn)×××的域名走國外服務(wù)器線路。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI