squid代理服務器
Squid代理
工作在應用層
主要提供緩存加速,應用層過濾控制的功能。
代理種類:1、傳統代理 2、透明代理 3、反向代理
Squid代理/etc/squid/squid.conf 配置文件。
62 http_port 3128 默認監聽的端口。若服務器有多個網絡接口,但只希望在其中一個ip地址上提供服務,還可以同時指定ip地址, 例如: http_port 192.168.10.1:3128
Squid代理服務器使用內存資源比較多。
一、傳統代理
客戶端→squid代理→ Web端
客戶端ip:192.168.233.128/24
squid代理服務器:192.168.233.130/24
Web端:192.168.233.129/24
首先1、squid代理服務器:192.168.10.1/24 配置
/etc/squid/squid.conf
http_access allow all //放在deny之前
http_port 3128 代理端口3128
visible_hostnamenginx 自己的主機名
在/etc/hosts 下寫上自己的ip與主機名,否則日誌中會報錯。
/etc/init.d/squidstart 不要重啟,否則時間是會很長。直接start
Squid -z
2、客戶端:在火狐瀏覽器設置代理
填寫服務器代理的ip地址。
3、測試訪問web
4、驗證代理服務器上的日誌。
tail -f/var/log/squid/access.log
5、web服務端
6、開啟緩存功能。
/etc/squid/squid.conf
Service squidrestart
二、透明代理
Squid服務器:
把這些寫在前面。
[[email protected] ~]#/etc/init.d/squid start 不要restart,會很慢的。
squid –zX 重新初始話緩存,-X查看過程
iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 80 -j REDIRECT --to-ports3128
iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 443 -j REDIRECT--to-ports 3128
REDIRECT:重定向實現本機端口的重新定向,將內網訪問過的都通過“ –to-ports 端口號” 的形式來指定映射的目標端口。
net.ipv4.ip_forward= 1 /etc/sysctl.conf 開啟Ip轉發。Sysctl -p
客戶端:
把瀏覽器上的代理不要設置。
把網關設置成squid的Ip(是與squid同一網絡中的)
設置好以後,重新啟動服務即可。
/etc/init.d/networkrestart
U:up狀態 G:gateway
客戶端打開瀏覽器進行訪問
最後在代理服務器上打開日誌並檢查。
同樣,web上也有了訪問日誌了。但在web上顯示的是squid的訪問地址 192.168.0.138
acl訪問控制:
在squid中可以進行限制,可以針對源地址與目標地址,訪問的url路徑,訪問的時間等各種條件進行過濾。
源地址與目標地址的網段或是IP範圍,主機名等。
squid -k parse 測試是否正確。
squid -k check
dstdomain:目標域,匹配域內所有站點
port:目標端口
url_regex -i^rtsp:// ^emule:// :目標資源的url地址,-i忽略大小寫。
urlpath_regex -i\.mp3$ \.mp4$ \.rmvb$:以.rpm3,.mp4,等結尾的url
time:定義的時間,例如:MTWHF 08:30-17:30 周一至周五08:30-17:30
整個配置文件裏是從上到下來讀的,越寫在前面的,優先級越高,權限也越大。
還可以建立對目標地址的名單
定義類型與調用文件中的列表內容。
acl ipaddr dst"/etc/squid/all.list"
acl yu-mingdstdomain "/etc/squid/deny.list"
設置acl訪問權限
http_access allowipaddr
http_access denyyu-ming
每一條規則中,可以包含多個acl列表名,各個列表之間以空格分隔,為“與”的關系,表示必須滿足所有acl列表對應的條件才會進行限制。
需要使用取反條件時,可以在acl列表前添加“!”符號。
http_access denymusic clients //禁止客戶端下載mp3,mp4等文件。
http_access denyyu-ming clients //禁止客戶端訪問名單中的域名。
Squid:
1、沒有任何規則時,squid服務將拒絕客戶端請求。
2、有規則但找不到相匹配的項時,squid將采用與最後一條規則相反的權限。例如:最後一條規則是allow,就拒絕客戶端的請求,否則允許該請求。
通常情況下,把最常用的控制規則放在陽前面,以減少squid的負載。在訪問控制的總體策略上,建議采用“先拒絕後允許”或“先允許後拒絕”的方式,最後一條規則設為默認策略,設為
“http_access allow all”或“http_access deny all”。
本文出自 “silence” 博客,請務必保留此出處http://silencezone.blog.51cto.com/3613477/1940049
squid代理服務器