架設一台代理,提供對外網使用者的代理請求,連接埠仍然為3128,加入Squid認證功能。這樣可以保證只提供給某些你信任的使用者該服務。架設過程和 架設對內網使用者提供服務的過程基本相同,只是在編譯安裝squid時和squid的設定檔squid.conf有些不同。這次架設的伺服器將保留對內網 使用者提供squid服務(內網使用者不增加認證功能限制)的同時再增加對外網使用者提供squid+認證功能。版本為
FreeBSD6.2-RELEASE+
Squid2.6-STABLE12。
伺服器及網路資訊:
外網網卡:em0;外網ip:221.6.117.50/255.255.255.240
內網網卡:em1;內網ip:128.0.0.4/255.255.252.0
架設過程:
一、FreeBSD的安裝
1、迷你安裝FreeBSD6.2RELEASE
2、配置核心:jiulongproxynew# cd /usr/src/sys/i386/conf
jiulongproxynew# cp GENERIC funpower
jiulongproxynew# ee funpower
修改核心設定檔,將不需要的選項(如網卡)之類的前面打#,然後按esc並按a儲存退出,再執行:jiulongproxynew# /usr/sbin/config funpower
jiulongproxynew# cd ../compile/funpower
jiulongproxynew# make cleandepend
jiulongproxynew# make depend
jiulongproxynew# make
jiulongproxynew# make install
3、配置/etc/rc.conf:
引用hostname="jiulongproxynew.jscpu.com"
defaultrouter="221.6.117.97"
ifconfig_em0="inet 221.6.117.50 netmask 255.255.255.240"
ifconfig_em1="inet 128.0.0.4 netmask 255.255.252.0"
sendmail_enable="NONE"
inetd_enable="YES"
linux_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
4、配置resolv.conf:jiulongproxynew# cd /etc
jiulongproxynew# ee resolv.conf
添加如下兩行:
引用nameserver 221.6.96.177
nameserver 221.6.96.178
5、重啟伺服器
二、squid的安裝
1、安裝perl以支援squidjiulongproxynew# cd /usr/ports/lang/perl5
jiulongproxynew# make install
2、安裝Apache,squid認證使用者佈建密碼時使用apache的密碼管理程式htpasswdjiulongproxynew# cd /usr/ports/www/apache13
jiulongproxynew# make install
3、下載並安裝squid
從http://www.squid-cache.org/Versions/v2/2.6/下載squid-2.6.STABLE16.tar.gz並通過FTP放置伺服器目錄中/home/funpower,然後開始解壓安裝:jiulongproxynew# cd /home/funpower
jiulongproxynew# tar zxvf squid-2.6.STABLE16.tar.gz
jiulongproxynew# cd squid-2.6.STABLE16
jiulongproxynew# ./configure –prefix=/usr/local/squid –enable-auth=”basic” –enable-basic-auth-helpers=”NCSA”
jiulongproxynew# make
jiulongproxynew# make install
3、配置squid和建立認證使用者及密碼
將ncsa_auth拷貝至可執行目錄/usr/sbinjiulongproxynew# cd /home/funpower/squid-2.6.STABLE16
jiulongproxynew# cd helpers/basic_auth/NCSA/
jiulongproxynew# cp ncsa_auth /usr/sbin
建立squid認證使用者wwwjiulongproxynew# /usr/local/bin/htpasswd -c /usr/local/squid/etc/password www
New password:
Re-type new password:
Adding password for user www
輸入www兩遍密碼後出現上面的資訊就說明使用者建立成功。
4、配置squid.confjiulongproxynew# cd /usr/local/squid/etc
jiulongproxynew# ee squid.conf
內容如下:
引用auth_param basic program /usr/sbin/ncsa_auth /usr/local/squid/etc/password
auth_param basic children 5
auth_param basic realm Please enter the user name and password
auth_param basic credentialsttl 2 hours
acl web src 128.0.0.0/22 //內網ip段定義
acl all src 0.0.0.0/0.0.0.0 //外網ip段定義
acl all1 proxy_auth REQUIRED //定義all1欄位為需要認證
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#deny bbs
acl bbs url_regex -i bbs
http_access deny bbs
#deny baidu post
acl baidupost dstdom_regex post.baidu.com
acl baidupost2 dstdomain post.baidu.com
http_access deny baidupost
http_access deny baidupost2
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow web //定義內網ip段為允許通過
http_access allow all all1 //定義外網ip段為允許通過,但需要認證,因為加了all1欄位
icp_access allow all
http_port 3128
http_port 221.6.117.x:3128 //增加一個對本機外網地址的3128連接埠
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_mem 64 MB
cache_dir ufs /usr/local/squid/cache 7000 16 256
access_log /dev/null
cache_log /dev/null
cache_store_log none
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mgr webmaster@jscpu.com
cache_effective_user squid
cache_effective_group squid
visible_hostname jiulongproxynew.jscpu.com
4、建立使用者及緩衝等:jiulongproxynew# pw groupadd squid
jiulongproxynew# pw adduser squid -g squid -s /nonexistent
jiulongproxynew# mkdir /usr/local/squid/cache
jiulongproxynew# chown -R squid /usr/local/squid/cache
jiulongproxynew# chgrp -R squid /usr/local/squid/cache
jiulongproxynew# chown -R squid /usr/local/squid/var/logs
jiulongproxynew# chgrp -R squid /usr/local/squid/var/logs
jiulongproxynew# /usr/local/squid/sbin/squid -z
jiulongproxynew# cd /usr/local/squid/sbin
jiulongproxynew# ./squid
jiulongproxynew# ee /etc/rc.local
加入如下一行:
引用/usr/local/squid/sbin/squid
儲存退出。
5、重啟伺服器
三、用戶端的設定及上網示範
1、內網使用者
內網使用者因為沒有增加squid代理的認證功能,所以上網設定不變,只需在IE瀏覽器中設定伺服器內網網卡地址128.0.0.4及3128連接埠即可。如:
查看次數: 10
檔案大小: 18.7 KB" style="margin: 2px" alt="名稱: 20071207091038567.gif
查看次數: 10
檔案大小: 18.7 KB" src="http://www.wfcsu.net/attachment.php?attachmentid=2502&d=1197597763" onload="if(this.width>screen.width-250) {this.width=screen.width-250;this.alt='此圖已經縮小,點擊察看原圖。';this.onmouseover=this.style.cursor='pointer'; this.onclick=function(){window.open('http://www.wfcsu.net/attachment.php?attachmentid=2502&d=1197597763')}}" border="0">
2、外網(家庭)使用者
外網使用者,一般是家中,在使用該代理,需將IE上的Proxy 伺服器地址設定為該伺服器的外網網卡地址221.6.117.50,連接埠仍為3128。如:
查看次數: 10
檔案大小: 18.5 KB" style="margin: 2px" alt="名稱: 20071207091049304.gif
查看次數: 10
檔案大小: 18.5 KB" src="http://www.wfcsu.net/attachment.php?attachmentid=2503&d=1197597763" onload="if(this.width>screen.width-250) {this.width=screen.width-250;this.alt='此圖已經縮小,點擊察看原圖。';this.onmouseover=this.style.cursor='pointer'; this.onclick=function(){window.open('http://www.wfcsu.net/attachment.php?attachmentid=2503&d=1197597763')}}" border="0">
設定完後,在IE上開啟任一網址,即會跳出一認證對話方塊,如,輸入剛才建立的www使用者及密碼,若能訪問該網站,及該伺服器架設正確。
查看次數: 10
檔案大小: 19.8 KB" style="margin: 2px" alt="名稱: 20071207091103909.gif
查看次數: 10
檔案大小: 19.8 KB" src="http://www.wfcsu.net/attachment.php?attachmentid=2504&d=1197597790" onload="if(this.width>screen.width-250) {this.width=screen.width-250;this.alt='此圖已經縮小,點擊察看原圖。';this.onmouseover=this.style.cursor='pointer'; this.onclick=function(){window.open('http://www.wfcsu.net/attachment.php?attachmentid=2504&d=1197597790')}}" border="0">