您好,登錄后才能下訂單哦!
Squid代理服務器
Squid代理服務器工作在應用層,主要提供緩存加速,應用層過濾控制等功能。
Squid代理的工作機制:
當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中有數據則直接反饋給客戶機,如果沒有則由代理服務器向internet發送訪問請求,然后返回web頁面時,先緩存起來,然后反饋給客戶機。
Squid代理的基本類型:
傳統代理:普通的代理方式,客戶機需手動指定代理地址和工作端口
透明代理:客戶機不需要指定代理地址和工作端口,而是通過默認路由,防火墻策略將web訪問重定向交給代理服務器處理
搭建squid代理服務器:
v 編譯安裝squid
# tar xzvf squid-3.4.6.tar.gz
# cd squid-3.4.6
#./configure --prefix=/usr/local/squid --sysconfdir=/usr/local/squid/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-err-language="Simplify_Chinese" --enable-underscore --enable-poll --enable-gnregex
注釋:
--prefix:指定安裝路徑
--sysconfdir:指定配置文件路徑
--enable-arp-acl :可以在規則中設置直接通過客戶端MAC進行管理,防止客戶端使用IP欺騙
--enable-linux-netfilter:可以使用iptables的內核過濾
--enable-linux-tproxy:支持透明模式
--enable-async-io:異步I/O,提升存儲性能,指定緩存空間大小
--enable-err-language:錯誤信息顯示的語言
--enable-underscore:允許URL中有下劃線
--enable-poll:使用Poll模式,提升性能
--enable-gnregex:使用GNU正則表達式
#make && make install
v 創建命令鏈接文件,使命令方便調用
#ln -s /usr/local/squid/sbin/* /usr/local/sbin/
v 創建用戶和組,授予安裝目錄相關權限
#useradd -M -s /sbin/nologin squid
#chown -R squid.squid /usr/local/squid/var
#vim /usr/local/squid/etc/squid.conf
visible_hostname ren
coredump_dir /usr/local/squid/var/cache/squid
cache_dir cache_effective_user squid
cache_effective_group squid ufs /usr/local/squid/var/cache/squid 100 16 256
cache_effective_user squid
cache_effective_group squid
Cache mem 512MB
http_port 1.1.1.0/24:3128 transparent
注釋:
visible_hostname:給一個主機名
coredump_dir:表示緩存的文件位置
cache_effective_group squid ufs:指定緩存文件的大小
cache_effective_user :指定運行squid程序緩存的用戶
cache_effective_group squid:指定運行squid程序緩存的組
Cache mem :在物理內存中可用的值
http_port 1.1.1.0/24:3128 transparent :設置該網段讓其支持透明代理
v 初始化squid代理
#squid -k parse
# squid -z
v 啟動squid代理
#squid
代理實現方式:
傳統代理:在客戶機的瀏覽器中輸入要代理的地址端口
透明代理:修改配置文件讓其支持透明代理,然后通過iptables防火墻將規則重定向到代理服務器中即可,動作:REDIRECT
例:#iptables -t nat -A PREROUTING -i eth2 -s 1.1.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
#iptables -t nat -A PREROUTING -i eth2 -s 1.1.1.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
#unset HTTP_PROXY HTTPS_PROXY
ACL訪問控制
我們可以通過squid定義自己的訪問控制列表,格式:acl 列表名稱 列表類型 列表內容
常用的訪問控制列表里類型
列表類型 | 列表內容 | 含義 |
Src | 192.168.1.1 192.168.1.0/24 192.168.1.1-192.168.1.10 | 基于源IP地址,網段,IP地址范圍過濾 |
Dst | 1.1.1.1 1.1.1.0/24 www.a.com | 基于目標IP地址,網段,主機名過濾 |
Port | 80 443 8080 21 20 | 基于目標端口過濾 |
Dstdomain | .qq.com | 基于目標域過濾 |
Time | MTWHF 8:30-17:30 | 基于星期,M表示星期一,T表示星期二,W表示星期三,H表示星期四,F表示星期五 |
Maxconm | 20 | 每個客戶機的并發連接數 |
Url_regex | Url_regex -i ^a:// | 目標資源的URL地址,-i 表示忽略大小寫 |
Urlpath_regex | Urlpath_regex -i \.mp3$ | 目標資源的整個URL路徑,-i表示忽略大小寫 |
例:#vim /etc/squid.conf
Acl xiao url_regex -i ^http://
http_access deny MYLAN xiao 表示只要是http://開頭的URL都拒絕訪問
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。