自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Squid代理服務(wù)器應(yīng)用案例 多出口多用戶認證上網(wǎng)

原創(chuàng)
系統(tǒng) Linux
筆者最近幫朋友接了個小項目,客戶在他們的美國機房租了幾臺服務(wù)器,然后想在上面做上網(wǎng)用的代理服務(wù)器,供客戶在國內(nèi)使用,希望具有多個出口ip地址供不同用戶通過認證上網(wǎng)的方式使用。本文的目的就是向大家介紹筆者實現(xiàn)這個需求的思路和步驟。整個方案通過Squid代理服務(wù)器實現(xiàn)。

【51CTO獨家特稿】最近幫朋友接了個小項目,客戶在他們的美國機房租了幾臺服務(wù)器,然后想在上面做上網(wǎng)用的代理服務(wù)器,供客戶在國內(nèi)使用。具體需求如下:

1、客戶的這臺服務(wù)器具有多個出口ip地址

2、客戶希望使用認證的方式使用代理服務(wù)器上網(wǎng)

3、客戶希望通過不同的認證用戶實現(xiàn)從不同的出口ip訪問網(wǎng)絡(luò)

4、隱藏代理信息,隱藏真實上網(wǎng)ip

此客戶需求相當(dāng)明確,根據(jù)上面羅列,條理也很清晰。本文的目的就是向大家介紹筆者實現(xiàn)這個需求的思路和步驟。

作者簡介:劉晗昭,網(wǎng)名蚊子(博客),某通信業(yè)國企系統(tǒng)工程師,熟悉各種主流開源軟件的使用,部署和組合應(yīng)用,以及主流網(wǎng)站架構(gòu)。目前關(guān)注系統(tǒng)架構(gòu)和系統(tǒng)優(yōu)化。

筆者使用了Squid來實現(xiàn)這一需求。Squid是一種在Linux系統(tǒng)下使用的優(yōu)秀的代理服務(wù)器軟件,還可以用在AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO和Solaris等系統(tǒng)上。更多關(guān)于squid的介紹就不在這里多講了,有需要的去官方網(wǎng)站上看吧,51CTO也有這方面的專題。

這里先看下我設(shè)計的邏輯圖:

Squid邏輯圖

根據(jù)圖中所示,紅色的用戶1會通過紅色的出口ip1訪問internet,綠色的用戶2會通過綠色的出口ip2訪問internet,用戶3和用戶4同樣對應(yīng)相應(yīng)顏色的出口訪問internet。

接下來根據(jù)上面的需求進行逐一的分解。

一、需求分析

1、服務(wù)器具有多個出口ip地址

這個沒什么可說的,客戶的出口ip為:

10.100.10.1
10.100.10.2
10.100.10.3

2、使用認證的方式使用代理服務(wù)器上網(wǎng)

這里要用到squid的認證功能。squid的認證功能大類包括basic_auth,digest_auth,external_acl,negotiate_auth,ntlm_auth這5種(注:squid-2.7.STABLE9版本),每個大類下面還有具體的認證方式,如NCSA,LDAP,DB等等,具體支持哪些可以去這些目錄下面看。

筆者在這里主要介紹的是NCSA的方式,此種認證方式類似apache的auth認證方式,通過用戶名密碼來驗證,密碼文件也是通過htpasswd程序來創(chuàng)建。后面會給出具體配置。

3、通過不同的認證用戶實現(xiàn)從不同的出口ip訪問網(wǎng)絡(luò)

先說實現(xiàn)不同出口ip訪問網(wǎng)絡(luò),這個主要是依靠squid的tcp_outgoing_address配置實現(xiàn)的,此參數(shù)可以根據(jù)source ip或者用戶名的不同,分配不同的出口ip出去。

如此一來,搭配第二個需求中的用戶驗證,正好就可以實現(xiàn)第三個需求了。后面會給出具體的配置。

4、隱藏代理信息,隱藏真實上網(wǎng)ip

這個需求很多人應(yīng)該都想到使用什么配置文件了,對,就是squid的header_access這個參數(shù)。主要就是隱藏掉HTTP_VIA,VIA和X-forwarded-for。后面會給出具體配置。

二、安裝配置

首先要做的就是下載一個squid安裝包(下載地址)。筆者這里使用的是2.7 STABLE9,操作的當(dāng)前目錄是/tmp,下面所有涉及到目錄的都是基于此目錄。squid源文件路徑是/tmp/squid-2.7.STABLE9.tar.gz

安裝步驟如下:

tar zxvf squid-2.7.STABLE9.tar.gz
cd squid-2.7.STABLE9
./configure --prefix=/usr/local/squid --enable-async-io=320 --enable-icmp --enable-delay-pools --enable-kill-parent-hack --enable-snmp --enable-arp-acl --enable-htcp --enable-cache-digests --enable-removal-policies=heap,lru --enable-default-err-language=Simplify_Chinese --enable-x-accelerator-vary --enable-follow-x-forwarded-for --with-aufs-threads=320 --with-pthreads --with-dl --with-maxfd=65536 --enable-basic-auth-helpers=DB,NCSA --enable-digest-auth-helpers=password --enable-large-cache-files --with-large-files
make
make install

如果以上步驟中無報錯,squid就被正確安裝完畢了。

接下來執(zhí)行:

cd /usr/local/squid/           
#(之后的所有操作均在此目錄下完成)
grep -v "^#" etc/squid.conf.default|uniq > etc/squid.conf

將創(chuàng)建一份未注釋的配置文件。

接下來編輯此文件

vi etc/squid.conf

修改編輯的內(nèi)容如下:

20  acl CONNECT method CONNECT
21
22  http_access allow manager localhost

這兩行中間加入:include "/usr/local/squid/etc/auth.conf"。auth.conf文件的內(nèi)容后面會有詳細介紹。

32  icp_access deny all
33
34  http_port 3128

這兩行中間加入:always_direct allow all,意思是對所有ip過來的請求都允許轉(zhuǎn)發(fā)。

將49  broken_vary_encoding allow apache行后面的所有內(nèi)容刪除,加上如下內(nèi)容

forwarded_for off                     
#隱藏x-forwarded-for頭
header_access HTTP_VIA deny all       
#隱藏HTTP_VIA頭
header_access VIA deny all                  
#隱藏VIA頭
  cache_effective_group daemon      
#設(shè)置squid執(zhí)行的用戶組,這里使用了系統(tǒng)自帶的daemon用戶組
cache_effective_user daemon         
#設(shè)置squid執(zhí)行的用戶,這里使用了系統(tǒng)自帶的daemon用戶

visible_hostname test               
#設(shè)置錯誤頁面中出現(xiàn)的服務(wù)器名稱,可自行更改
 cache_dir aufs /usr/local/squid/cache 100 16 256              
#設(shè)置squid的緩存,可自行調(diào)整
cache_store_log none               
#關(guān)閉store.log

都修改添加完畢后,保存退出。

緊接著我們來創(chuàng)建auth.conf。

vi /usr/local/squid/etc/auth.conf

輸入如下內(nèi)容

# 設(shè)置驗證相關(guān)的配置內(nèi)容,指定密碼文件
1  auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/local/squid/etc/passwd
2  auth_param basic children 10          #設(shè)置驗證子進程數(shù)
3  auth_param basic credentialsttl 2 hours         #設(shè)置驗證有效期
4  auth_param basic casesensitive off         #設(shè)置是否區(qū)分大小寫
5
# 后面這三行分別定義了三個用戶組。每個用戶組指定了一個用戶文件。
6  acl usergroup1 proxy_auth "/usr/local/squid/etc/ip1user"
7  acl usergroup2 proxy_auth "/usr/local/squid/etc/ip2user"
8  acl usergroup3 proxy_auth "/usr/local/squid/etc/ip3user"
9
# 后面三條允許這三個組的用戶可以訪問網(wǎng)絡(luò)
10  http_access allow usergroup1
11  http_access allow usergroup2
12  http_access allow usergroup3
13
# 這三條用來分配哪個組的用戶走哪個出口ip
14  tcp_outgoing_address10.100.10.1 usergroup1
15  tcp_outgoing_address10.100.10.2 usergroup2
16  tcp_outgoing_address 10.100.10.3 usergroup3

編輯完成后保存退出。

接下來是創(chuàng)建用戶文件,vi /usr/local/squid/etc/ip1user,填入如下內(nèi)容

user1
user2

保存退出。這里用戶數(shù)量不限,每個用戶名占用一行。

如果一開始沒有那么多用戶,建議使用touch命令將文件創(chuàng)建好,不然啟動squid的時候會出錯。

接下來創(chuàng)建用戶的密碼文件,第一次創(chuàng)建密碼文件請使用下面的命令

htpasswd -cb /usr/local/squid/etc/passwd user1 111111

倒數(shù)第二個字段是用戶名,最后一個字段是用戶對應(yīng)的密碼

如果之前創(chuàng)建過了密碼文件,使用下面的命令就可以了

htpasswd -b /usr/local/squid/etc/passwd user2 111111

命令解釋同上。

到此為止,配置文件等相關(guān)工作就基本完成了。下面來說說squid的初始化工作。

首先,mkdir cache,創(chuàng)建cache目錄

然后執(zhí)行,chown -R daemon.daemon,變更當(dāng)前目錄及所有子目錄的的屬主與屬組。筆者這里使用系統(tǒng)自有的daemon用戶和組。

這些工作都做好之后呢,就來執(zhí)行 sbin/squid -z對squid進行初始化,如果沒有報錯信息呢,初始化工作就算是做完了,下面啟動squid服務(wù)即可了,啟動命令為

sbin/squid -ND &

然后通過下面的命令查看一下3128端口是否啟動

netstat -ln|grep 3128

如果出現(xiàn)下面的內(nèi)容,說明squid服務(wù)已經(jīng)正常運行了

tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN

到此為止,一個支持用戶身份驗證的多出口代理服務(wù)器就完全配置完畢了,趕快打開瀏覽器,配置好代理服務(wù)器,測試一下吧??纯礊g覽網(wǎng)頁是否會彈出驗證的提示。

另外還可以登錄proxy checker工具網(wǎng)站查看使用不同的用戶組的用戶,是否上網(wǎng)ip不一樣,同時這個頁面還能查看當(dāng)前上網(wǎng)方式是否使用了代理。

檢查代理服務(wù)器設(shè)置效果

由上圖可知,最上面是上網(wǎng)的ip地址,最下方的proxy detected如果是no表示未檢測出使用代理上網(wǎng)。

如果想讓squid在開機的時候自動啟動只需要在/etc/rc.loacl文件中加入

/usr/local/squid/sbin/squid –ND &

即可。

【編輯推薦】

  1. SVN自助更新:運維利器Puppet實例講解
  2. Squid代理服務(wù)器高級應(yīng)用兩例
  3. Squid服務(wù)器,你了解多少?
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2011-02-21 09:24:05

2012-09-18 09:55:28

2020-08-02 15:00:40

SquidSSH系統(tǒng)運維

2009-12-03 18:07:48

Squid代理服務(wù)器

2009-12-07 09:33:38

代理服務(wù)器路由

2019-06-18 08:27:37

Squid代理服務(wù)器IP代理池

2010-11-15 14:46:04

linuxsquidsquidGuard

2024-11-21 09:18:08

2009-02-12 15:51:00

squid代理服務(wù)器web服務(wù)器

2009-02-10 15:42:00

代理服務(wù)器代理服務(wù)器設(shè)置

2009-02-06 11:12:00

代理服務(wù)器代理服務(wù)器應(yīng)用

2015-07-17 10:45:42

Squid服務(wù)器訪問控制系統(tǒng)

2024-02-20 14:53:01

2009-02-06 11:18:00

代理服務(wù)器SuperProxyADSL

2009-08-18 11:04:50

代理服務(wù)器設(shè)置代理服務(wù)器地址

2009-08-04 10:13:09

Linux命令行代理服務(wù)器設(shè)置Linux命令行界面

2018-11-05 09:34:43

2010-01-19 10:07:51

2010-01-22 14:51:31

VB.NET修改代理服

2009-11-24 19:36:34

代理服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號