成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Squid代理服務器應用案例 多出口多用戶認證上網

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

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

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

2、客戶希望使用認證的方式使用代理服務器上網

3、客戶希望通過不同的認證用戶實現從不同的出口ip訪問網絡

4、隱藏代理信息,隱藏真實上網ip

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

作者簡介:劉晗昭,網名蚊子(博客),某通信業國企系統工程師,熟悉各種主流開源軟件的使用,部署和組合應用,以及主流網站架構。目前關注系統架構和系統優化。

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

這里先看下我設計的邏輯圖:

Squid邏輯圖

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

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

一、需求分析

1、服務器具有多個出口ip地址

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

10.100.10.1
10.100.10.2
10.100.10.3

2、使用認證的方式使用代理服務器上網

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

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

3、通過不同的認證用戶實現從不同的出口ip訪問網絡

先說實現不同出口ip訪問網絡,這個主要是依靠squid的tcp_outgoing_address配置實現的,此參數可以根據source ip或者用戶名的不同,分配不同的出口ip出去。

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

4、隱藏代理信息,隱藏真實上網ip

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

二、安裝配置

首先要做的就是下載一個squid安裝包(下載地址)。筆者這里使用的是2.7 STABLE9,操作的當前目錄是/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就被正確安裝完畢了。

接下來執行:

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

將創建一份未注釋的配置文件。

接下來編輯此文件

vi etc/squid.conf

修改編輯的內容如下:

20  acl CONNECT method CONNECT
21
22  http_access allow manager localhost

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

32  icp_access deny all
33
34  http_port 3128

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

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

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

visible_hostname test               
#設置錯誤頁面中出現的服務器名稱,可自行更改
 cache_dir aufs /usr/local/squid/cache 100 16 256              
#設置squid的緩存,可自行調整
cache_store_log none               
#關閉store.log

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

緊接著我們來創建auth.conf。

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

輸入如下內容

# 設置驗證相關的配置內容,指定密碼文件
1  auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/local/squid/etc/passwd
2  auth_param basic children 10          #設置驗證子進程數
3  auth_param basic credentialsttl 2 hours         #設置驗證有效期
4  auth_param basic casesensitive off         #設置是否區分大小寫
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
# 后面三條允許這三個組的用戶可以訪問網絡
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

編輯完成后保存退出。

接下來是創建用戶文件,vi /usr/local/squid/etc/ip1user,填入如下內容

user1
user2

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

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

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

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

倒數第二個字段是用戶名,最后一個字段是用戶對應的密碼

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

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

命令解釋同上。

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

首先,mkdir cache,創建cache目錄

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

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

sbin/squid -ND &

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

netstat -ln|grep 3128

如果出現下面的內容,說明squid服務已經正常運行了

tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN

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

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

檢查代理服務器設置效果

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

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

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

即可。

【編輯推薦】

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

2011-02-21 09:24:05

2012-09-18 09:55:28

2020-08-02 15:00:40

SquidSSH系統運維

2009-12-03 18:07:48

Squid代理服務器

2009-12-07 09:33:38

代理服務器路由

2019-06-18 08:27:37

Squid代理服務器IP代理池

2010-11-15 14:46:04

linuxsquidsquidGuard

2024-11-21 09:18:08

2009-02-12 15:51:00

squid代理服務器web服務器

2009-02-06 11:12:00

代理服務器代理服務器應用

2009-02-10 15:42:00

代理服務器代理服務器設置

2024-02-20 14:53:01

2009-02-06 11:18:00

代理服務器SuperProxyADSL

2015-07-17 10:45:42

Squid服務器訪問控制系統

2009-08-18 11:04:50

代理服務器設置代理服務器地址

2009-08-04 10:13:09

Linux命令行代理服務器設置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

代理服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成年人免费看的视频 | 色天堂视频 | 亚洲第一色av | 久久久天堂 | 日韩免费网| 91香蕉视频在线观看 | 视频1区2区| 日日av| 国产乱码精品一区二区三区五月婷 | 国产最新精品视频 | 亚洲精品久久久久久久久久久久久 | 五月天婷婷激情 | www国产精品 | 欧美三级三级三级爽爽爽 | 秋霞在线一区 | 99国产精品久久久久老师 | 97超碰在线免费 | 中文字幕四虎 | www.国产日本| 中文字幕一区二区三区不卡在线 | 亚洲网站在线观看 | 欧美黑人狂野猛交老妇 | 欧美午夜精品久久久久久浪潮 | 伊人精品在线 | 精精精精xxxx免费视频 | 久久精品国产一区二区 | 亚洲精品乱码久久久久久按摩 | 天天噜天天干 | 久久免费视频网 | 日韩毛片在线视频 | 中文字幕 在线观看 | 久久99视频 | 国产精品一卡 | 国产一二三区电影 | 日韩视频中文字幕 | 羞羞视频免费观看 | 欧美jizzhd精品欧美巨大免费 | 中文字幕一区二区三区不卡 | 久久久.com| 涩涩视频在线观看免费 | 久久在线|