轉 Centos7下使用Squid快速搭建帶認證的HTTP代理伺服器
阿新 • • 發佈:2019-01-27
原文連結:https://blog.phpgao.com/squid_proxy_with_basic_auth.html
I. 安裝
安裝狠簡單!
yum install squid -y
yum install http-tools -y
II. 生成密碼檔案
mkdir /etc/squid3/
# laogao 是使用者名稱
htpasswd -cd /etc/squid3/passwords laogao
# 提示輸入密碼,在此老高設密碼為 phpgao
# 注意密碼不要超過8位
III. 測試密碼檔案
/usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
# 輸入 使用者名稱 密碼
laogao phpgao
# 提示OK說明成功,ERR是有問題,請檢查一下之前步驟
OK
# 測試完成,crtl + c 打斷
IV. 配置
vim /etc/squid/squid.conf
# 在最後新增
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# 這裡是埠號,可以按需修改
http_port 3128
許可權控制
squid的許可權控制很靈活,具體配置方法可以參考官方文件,或者Squid中文權威指南,具體工作原理有點像iptables,用規則去卡控流量。預設的配置只能允許內網使用者訪問,如果有更多需求,你還可以指定很多規則!
acl Foo src 8.8.8.88
# 以下例子來自Squid中文權威指南
acl Foo src 172.16.44.21/255.255.255.255
acl Foo src 172.16.44.21/32
acl Foo src 172.16.44.21
acl Xyz src 172.16.55.32/255.255.255.248
acl Xyz src 172.16.55.32/28
acl Bar src 172.16.66.0/255.255.255.0
acl Bar src 172.16.66.0/24
acl Bar src 172.16.66.0
如果看不懂,並且只是想用暫時試試squid的功能,老高有一個萬金油方法:
# 這個IP地址池匹配所有可能的IP地址,但是這樣做是有風險的,因為所有人都可以使用你的代理了,不要怪老高沒有提醒啊!
acl localnet src 0.0.0.1-255.255.255.255
日誌
squid的日誌預設是開啟的,位於目錄/var/log/squid/,當然這個地址還有日誌的格式都是可以完全自定義的!具體還是看文件吧。
liguangping ll /var/log/squid/
total 52K
-rw-r----- 1 squid squid 14K May 25 11:50 access.log
-rw-r----- 1 squid squid 6.0K May 20 17:14 access.log-20160522.gz
-rw-r----- 1 squid squid 23K May 25 11:50 cache.log
-rw-r----- 1 squid squid 1.2K May 20 11:22 cache.log-20160522.gz
V. 啟動服務
# 啟動
systemctl start squid.service
# 停止
systemctl stop squid.service
# 重啟
systemctl restart squid.service
I. 安裝
安裝狠簡單!
yum install squid -y
yum install http-tools -y
II. 生成密碼檔案
mkdir /etc/squid3/
# laogao 是使用者名稱
htpasswd -cd /etc/squid3/passwords laogao
# 提示輸入密碼,在此老高設密碼為 phpgao
# 注意密碼不要超過8位
III. 測試密碼檔案
/usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
# 輸入 使用者名稱 密碼
laogao phpgao
# 提示OK說明成功,ERR是有問題,請檢查一下之前步驟
OK
# 測試完成,crtl + c 打斷
IV. 配置
vim /etc/squid/squid.conf
# 在最後新增
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# 這裡是埠號,可以按需修改
http_port 3128
許可權控制
squid的許可權控制很靈活,具體配置方法可以參考官方文件,或者Squid中文權威指南,具體工作原理有點像iptables,用規則去卡控流量。預設的配置只能允許內網使用者訪問,如果有更多需求,你還可以指定很多規則!
acl Foo src 8.8.8.88
# 以下例子來自Squid中文權威指南
acl Foo src 172.16.44.21/255.255.255.255
acl Foo src 172.16.44.21/32
acl Foo src 172.16.44.21
acl Xyz src 172.16.55.32/255.255.255.248
acl Xyz src 172.16.55.32/28
acl Bar src 172.16.66.0/255.255.255.0
acl Bar src 172.16.66.0/24
acl Bar src 172.16.66.0
如果看不懂,並且只是想用暫時試試squid的功能,老高有一個萬金油方法:
# 這個IP地址池匹配所有可能的IP地址,但是這樣做是有風險的,因為所有人都可以使用你的代理了,不要怪老高沒有提醒啊!
acl localnet src 0.0.0.1-255.255.255.255
日誌
squid的日誌預設是開啟的,位於目錄/var/log/squid/,當然這個地址還有日誌的格式都是可以完全自定義的!具體還是看文件吧。
liguangping ll /var/log/squid/
total 52K
-rw-r----- 1 squid squid 14K May 25 11:50 access.log
-rw-r----- 1 squid squid 6.0K May 20 17:14 access.log-20160522.gz
-rw-r----- 1 squid squid 23K May 25 11:50 cache.log
-rw-r----- 1 squid squid 1.2K May 20 11:22 cache.log-20160522.gz
V. 啟動服務
# 啟動
systemctl start squid.service
# 停止
systemctl stop squid.service
# 重啟
systemctl restart squid.service