CentOS Squid
Squid是一個(gè)緩存internet數(shù)據(jù)的一個(gè)軟件,它接收用戶的下載申請(qǐng),并自動(dòng)處理所下載的數(shù)據(jù)。也就是說(shuō),當(dāng)一個(gè)用戶象要下載一個(gè)主頁(yè)時(shí),它向 Squid發(fā)出一個(gè)申請(qǐng),要Squid替它下載,然后Squid 連接所申請(qǐng)網(wǎng)站并請(qǐng)求該主頁(yè),接著把該主頁(yè)傳給用戶同時(shí)保留一個(gè)備份,當(dāng)別的用戶申請(qǐng)同樣的頁(yè)面時(shí),Squid把保存的備份立即傳給用戶,使用戶覺(jué)得速度 相當(dāng)快。
安裝
yum install squid
修改配置文件 /etc/squid/squid.conf
(如果該文件配置壞掉了,有 squid.conf.default 可以備用,兩個(gè)文件在剛安裝后是一模一樣的)
# squid 端口,默認(rèn)是3128
http_port 3128
# 指定硬盤緩沖區(qū)的大小
# ufs: 緩存類型
# /var/spool/squid:緩存目錄
# 300:緩存大小(Mbytes)
# 允許在“/tmp”下創(chuàng)建的第一級(jí)子目錄數(shù)為16,每個(gè)第一級(jí)子目錄下可以創(chuàng)建的第二級(jí)子目錄數(shù)量為256
cache_dir ufs /var/spool/squid 300 16 256
# 自定義某個(gè)IP或者某網(wǎng)段,使用 http_access 選項(xiàng)允許該列表
acl our_networks src 11.11.11.11/255.255.255.255
acl our_networks src 12.12.12.12/29
http_access allow our_networks
# 服務(wù)器的主機(jī)名,可隨便定義
visible_hostname 221_170
# 關(guān)閉此項(xiàng)將在訪問(wèn)網(wǎng)站時(shí)顯示的IP是unknown,如果打開則顯示的是你client的內(nèi)網(wǎng)IP
forwarded_for off
# 防止知道客戶的內(nèi)部 ip
header_access Via deny all
# 防止知道代理服務(wù)器的服務(wù)器名以及端口
header_access X-Forwarded-For deny all
啟動(dòng) squid
service squid start
squid 的 log:/var/log/squid/
access.log cache.log squid.out store.log
給出一些 header,可以屏蔽它們
Accept??HTTP_ACCEPT
Accept-Charset??HTTP_ACCEPT-CHARSET
Accept-Encoding??HTTP_ACCEPT-ENCODING
Accept-Language??HTTP_ACCEPT-LANGUAGE
Accept-Ranges??HTTP_ACCEPT-RANGES
Age??HTTP_AGE
Allow??HTTP_ALLOW
Authorization??HTTP_AUTHORIZATION
Cache-Control??HTTP_CACHE-CONTROL
Connection??HTTP_CONNECTION
Content-Base??HTTP_CONTENT-BASE
Content-Disposition??HTTP_CONTENT-DISPOSITION
Content-Encoding??HTTP_CONTENT-ENCODING
Content-Language??HTTP_CONTENT-LANGUAGE
Content-Length??HTTP_CONTENT-LENGTH
Content-Location??HTTP_CONTENT-LOCATION
Content-MD5??HTTP_CONTENT-MD5
Content-Range??HTTP_CONTENT-RANGE
Content-Type??HTTP_CONTENT-TYPE
Cookie??HTTP_COOKIE
Date??HTTP_DATE
ETag??HTTP_ETAG
Expires??HTTP_EXPIRES
From??HTTP_FROM
Host??HTTP_HOST
If-Match??HTTP_IF-MATCH
If-Modified-Since??HTTP_IF-MODIFIED-SINCE
If-None-Match??HTTP_IF-NONE-MATCH
If-Range??HTTP_IF-RANGE
Last-Modified??HTTP_LAST-MODIFIED
Link??HTTP_LINK
Location??HTTP_LOCATION
Max-Forwards??HTTP_MAX-FORWARDS
Mime-Version??HTTP_MIME-VERSION
Pragma??HTTP_PRAGMA
Proxy-Authenticate??HTTP_PROXY-AUTHENTICATE
Proxy-Authentication-Info??HTTP_PROXY-AUTHENTICATION-INFO
Proxy-Authorization??HTTP_PROXY-AUTHORIZATION
Proxy-Connection??HTTP_PROXY-CONNECTION
Public??HTTP_PUBLIC
Range??HTTP_RANGE
Referer??HTTP_REFERER
Request-Range??HTTP_REQUEST-RANGE
Retry-After??HTTP_RETRY-AFTER
Server??HTTP_SERVER
Set-Cookie??HTTP_SET-COOKIE
Title??HTTP_TITLE
Transfer-Encoding??HTTP_TRANSFER-ENCODING
Upgrade??HTTP_UPGRADE
User-Agent??HTTP_USER-AGENT
Vary??HTTP_VARY
Via??HTTP_VIA
Warning??HTTP_WARNING
WWW-Authenticate??HTTP_WWW-AUTHENTICATE
Authentication-Info??HTTP_AUTHENTICATION-INFO
X-Cache??HTTP_X-CACHE
X-Cache-Lookup??HTTP_X-CACHE-LOOKUP
X-Forwarded-For??HTTP_X-FORWARDED-FOR
X-Request-URI??HTTP_X-REQUEST-URI
X-Squid-Error??HTTP_X-SQUID-ERROR
Negotiate??HTTP_NEGOTIATE
X-Accelerator-Vary??HTTP_X-ACCELERATOR-VARY
Squid 用戶名密碼認(rèn)證
利用 apache 攜帶的工具 htpasswd 生成密碼文件并添加相應(yīng)的用戶信息,可能需要寫全 htpasswd 的路徑(如果這個(gè)服務(wù)器上有若干網(wǎng)站,選擇使用80端口的那個(gè)目錄下的htpasswd)
/usr/bin/htpasswd -c /etc/squid/passwd testuser
根據(jù)提示輸入密碼:1234
成功后將會(huì)在 /etc/squid/passwd 中寫入:
testuser:cuUEnEwyMTcGY
第一列表明用戶名,第二列表明密碼
修改 squid 配置文件:
# 定義了認(rèn)證方式為 basic,認(rèn)證程序的路徑,認(rèn)證程度需要讀取的帳戶文件(注意 ncsa_auth 和 上個(gè)步驟建立的 passwd 的路徑)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
# 自定義一條名為 auth_user 的ACL,ACL類型為 proxy_auth 通過(guò)外部程序進(jìn)行用戶認(rèn)證方式,列表值為REQUIRED,說(shuō)明接受所有合法用戶的訪問(wèn),然后使用 http_access 選項(xiàng)允許該列表
acl auth_user proxy_auth REQUIRED
http_access allow auth_user
體驗(yàn):
- 在沒(méi)有開啟用戶名密碼認(rèn)證時(shí),能成功地只允許某些 IP 訪問(wèn)代理服務(wù)器,并且屏蔽掉客戶端的信息。
- 當(dāng)開啟用戶名密碼認(rèn)證時(shí),只要驗(yàn)證成功,無(wú)論 IP 是什么,都能夠使用代理服務(wù)器。
驗(yàn)證方法:
瀏覽器菜單 – 工具 – Internet選項(xiàng) – 連接 – 局域網(wǎng)設(shè)置 – 勾選“為L(zhǎng)AN使用代理服務(wù)器”,輸入代理服務(wù)器的IP和端口
然后看是否能正常瀏覽網(wǎng)頁(yè),如果是通過(guò)用戶名密碼驗(yàn)證的,則會(huì)跳出驗(yàn)證框,如果不在IP允許列表里,則顯示的頁(yè)面是禁止訪問(wèn)。
轉(zhuǎn)載于:https://blog.51cto.com/tetop/671354
總結(jié)
以上是生活随笔為你收集整理的CentOS Squid的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C/S构架和B/S架构的比较
- 下一篇: 别让心态毁了你自己