Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制
生活随笔
收集整理的這篇文章主要介紹了
Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Squid代理(傳統(tǒng)代理、透明代理、反向代理)、日志分析、ACL訪問控制
- 一、Squid代理服務(wù)器
- 1、代理的工作機(jī)制
- 2、代理的類型
- 二、安裝Squid服務(wù)
- 1、編譯安裝Squid
- 2、修改Squid的配置文件
- 3、 Squid 的運(yùn)行控制
- 4、創(chuàng)建 Squid 服務(wù)腳本
- 三、傳統(tǒng)代理
- 1、squid服務(wù)器
- 2、客戶端配置
- 3、web1服務(wù)器
- 4、測試
- 四、透明代理服務(wù)器
- 1、Squid服務(wù)器配置
- 2、squid服務(wù)器中開啟IP轉(zhuǎn)發(fā),并修改防火墻規(guī)則
- 3、web1服務(wù)器
- 3、客戶端測試
- 4、查看 Squid 訪問日志的新增記錄
- 五、ACL訪問控制
- 1、定義訪問控制列表
- 2、方法一:
- 3、方法二:
- 六、Squid 日志分析
一、Squid代理服務(wù)器
- Squid主要提供緩存加速、應(yīng)用層過濾控制的功能。
1、代理的工作機(jī)制
- 代替客戶機(jī)向網(wǎng)站請(qǐng)求數(shù)據(jù),從而可以隱藏用戶的真實(shí)IP地址。
- 將獲得的網(wǎng)頁數(shù)據(jù)(靜態(tài) Web 元素)保存到緩存中并發(fā)送給客戶機(jī),以便下次請(qǐng)求相同的數(shù)據(jù)時(shí)快速響應(yīng)。
2、代理的類型
- 傳統(tǒng)代理:適用于Internet,需在客戶機(jī)指定代理服務(wù)器的地址和端口。
- 透明代理:客戶機(jī)不需指定代理服務(wù)器的地址和端口,而是通過默認(rèn)路由、防火墻策略將Web訪問重定向給代理服務(wù)器處理。
- 反向代理:如果 Squid 反向代理服務(wù)器中緩存了該請(qǐng)求的資源,則將該請(qǐng)求的資源直接返回給客戶端;否則反向代理服務(wù)器將向后臺(tái)的 WEB 服務(wù)器請(qǐng)求資源,然后將請(qǐng)求的應(yīng)答返回給客戶端,同時(shí)也將該應(yīng)答緩存(靜態(tài))在本地,供下一個(gè)請(qǐng)求者使用。
二、安裝Squid服務(wù)
| Squid服務(wù)器 | 192.168.184.10 |
| web服務(wù)器 | 192.168.184.20 |
| 客戶機(jī) | 192.168.184.40 |
1、編譯安裝Squid
systemctl stop firewalld systemctl disable firewalld setenforce 0yum -y install gcc gcc-c++ make cd /opt tar zxvf squid-3.5.28.tar.gz cd /opt/squid-3.5.28 ./configure --prefix=/usr/local/squid \ #指定安裝目錄路徑 --sysconfdir=/etc \ #指定配置文件路徑 --enable-arp-acl \ #MAC地址管控,防止客戶端使用IP欺騙 --enable-linux-netfilter \ #使用內(nèi)核過濾 --enable-linux-tproxy \ #支持透明模式 --enable-async-io=100 \ #異步IO,提升存儲(chǔ)性能 --enable-err-language="Simplify_ Chinese" \ #錯(cuò)誤信息的顯示語言 --enable-underscore \ #允許URL中有下劃線 --disable-poll \ #關(guān)閉默認(rèn)使用poll模式 --enable-gnuregex #使用GNU正則表達(dá)式./configure --prefix=/usr/local/squid \ --sysconfdir=/etc \ --enable-arp-acl \ --enable-linux-netfilter \ --enable-linux-tproxy \ --enable-async-io=100 \ --enable-err-language="Simplify_Chinese" \ --enable-underscore \ --disable-poll \ --enable-epoll \ --enable-gnuregemake && make install ln -s /usr/local/squid/sbin/* /usr/local/sbin useradd -M -s /sbin/nologin squid chown -R squid:squid /usr/local/squid/var/ #此目錄用于存放緩存文件
2、修改Squid的配置文件
vim /etc/squid.conf ...... -----56行--插入------ http_access allow all #放在http_access deny all 之前,允許任意客戶機(jī)使用代理服務(wù),控制規(guī)則自上而下匹配 http_access deny all http_port 3128 #用來指定代理服務(wù)監(jiān)聽的地址和端口(默認(rèn)的端口號(hào)為3128) -----61行--插入------ cache_effective_user squid #添加,指定程序用戶,用來設(shè)置初始化、運(yùn)行時(shí)緩存的賬號(hào),否則啟動(dòng)不成功 cache_effective_group squid #添加,指定賬號(hào)基本組 coredump_dir /usr/local/squid/var/cache/squid #指定緩存文件目錄3、 Squid 的運(yùn)行控制
#檢查配置文件語法是否正確 squid -k parse#啟動(dòng)Squid, 第一次啟動(dòng)Squid服務(wù)時(shí),會(huì)自動(dòng)初始化緩存目錄 squid -z #-z選項(xiàng)用來初始化緩存目錄 squid #啟動(dòng)squid 服務(wù)netstat -anpt | grep 31284、創(chuàng)建 Squid 服務(wù)腳本
vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 #2345是默認(rèn)自啟動(dòng)級(jí)別,如是 - 代表任何級(jí)別都不自啟動(dòng); 90是啟動(dòng)優(yōu)先級(jí),25是停止優(yōu)先級(jí),優(yōu)先級(jí)范圍是0一100,數(shù)字越大,優(yōu)先級(jí)越低。PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid"case "$1" instart)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在啟動(dòng) squid..."$CMDfi;;stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho "squid is not running"fi;;restart)$0 stop &> /dev/nullecho "正在關(guān)閉 squid..."$0 start &> /dev/nullecho "正在啟動(dòng) squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";; esacchmod +x /etc/init.d/squid chkconfig --add squid chkconfig --level 35 squid on
三、傳統(tǒng)代理
1、squid服務(wù)器
vim /etc/squid.conf ...... http_access allow all http_access deny all http_port 3128 cache_effective_user squid cache_effective_group squid#63行插入 cache_mem 64 MB #指定緩存功能所使用的內(nèi)存空間大小,便于保持訪問較頻繁的WEB對(duì)象,容量最好為4的倍數(shù),單位為MB,建議設(shè)為物理內(nèi)存的1/4 reply_body_max_size 10 MB #允許用戶下載的最大文件大小,以字節(jié)為單位,當(dāng)下載超過指定大小的Web對(duì)象時(shí),瀏覽器的報(bào)錯(cuò)頁面中會(huì)出現(xiàn)“請(qǐng)求或訪問太大”的提示默認(rèn)設(shè)置0表示不進(jìn)行限制 maximum_object_size 4096 KB #允許保存到緩存空間的最大對(duì)象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶service squid restart systemctl restart squid#修改防火墻規(guī)則 iptables -F iptables -I INPUT -p tcp --dport 3128 -j ACCEPT2、客戶端配置
3、web1服務(wù)器
systemctl stop firewalld.service setenforce 0 yum -y install httpd systemctl start httpd netstat -natp | grep 804、測試
四、透明代理服務(wù)器
| Squid服務(wù)器 | ens33:192.168.184.10 ens36:12.0.0.1 |
| web服務(wù)器 | 192.168.184.20 |
| 客戶機(jī) | 12.0.0.12 |
1、Squid服務(wù)器配置
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 systemctl restart network#60行修改添加提供內(nèi)網(wǎng)服務(wù)的IP地址,和支持透明代理選項(xiàng) transparent vim /etc/squid.conf ...... http_access allow all http_access deny allhttp_port 192.168.184.10:3128 transparent systemctl restart squid2、squid服務(wù)器中開啟IP轉(zhuǎn)發(fā),并修改防火墻規(guī)則
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -piptables -F iptables -t nat -F iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to 3128 iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/8 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT3、web1服務(wù)器
systemctl stop firewalld.service setenforce 0 vim /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network ifconfig3、客戶端測試
4、查看 Squid 訪問日志的新增記錄
tail -f /var/log/httpd/access_log五、ACL訪問控制
- 在配置文件squid.conf 中,ACL訪問控制通過以下兩個(gè)步驟來實(shí)現(xiàn):
- 使用acl 配置項(xiàng)定義需要控制的條件;
- 通過http_access配置項(xiàng)對(duì)已定義的列表做“允許”或“拒絕”訪問的控制。
1、定義訪問控制列表
格式: acl 列表名稱 列表類型 列表內(nèi)容 列表名稱:名稱自定義,相當(dāng)于給acl起個(gè)名字 列表類型:必須使用squid預(yù)定義的值,對(duì)應(yīng)不同類別的控制條件 列表內(nèi)容:是要控制的具體對(duì)象,不同類型的列表所對(duì)應(yīng)的內(nèi)容也不一樣,可以有多個(gè)值(以空格為分隔,為“或”的關(guān)系)2、方法一:
vim /etc/squid.conf ....... acl localhost src 192.168.184.10/32 #源地址為192.168.184.10 acl MYLAN src 192.168.184.0/24 #客戶機(jī)網(wǎng)段 acl destinationhost dst 192. 168.184.20/32 #目標(biāo)地址為192.168.184.20 acl MC20 maxconn 20 #最大并發(fā)連接20 acl PORT port 21 #目標(biāo)端口21 acl DMBLOCK dstdomain .qq.com #目標(biāo)域,匹配域內(nèi)所有站點(diǎn) acl BURL url_regex -i ^rtsp:// ^emule:// #以rtsp://. emule://開頭的URL,-i表示忽略大小寫 acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以 .mp3、.mp4、.rmvb結(jié)尾的URL路徑 acl WORKTIME time MTWHF 08:30-17:30 #時(shí)間為周一-至周五8:30~17:30, "MTWHF"為每個(gè)星期的英文首字母3、方法二:
#啟動(dòng)對(duì)象列表管理 mkdir /etc/squid vim /etc/squid/dest.list 192.168.184.10 #Squid服務(wù)器IP 192.168.184.0/24 #任意需要的網(wǎng)段vim /etc/squid.conf ...... acl destinationhost dst "/etc/squid/dest.list" #調(diào)用指定文件中的列表內(nèi)容 http_access deny (或allow) destinationhost #注意,如果是拒絕列表,需要放在http_access allow all 前面systemctl restart squid六、Squid 日志分析
- sarg(Squid Analysis Report Generator),是一款squid日志分析工具,采用HTML格式,詳細(xì)列出每一位用戶訪問Internet的站點(diǎn)信息、時(shí)間占用信息、排名、連接次數(shù)、訪問量等
| Squid服務(wù)器 | 192.168.184.70 |
| web服務(wù)器 | 192.168.184.20 |
| 客戶機(jī) | 192.168.184.40 |
總結(jié)
以上是生活随笔為你收集整理的Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存升级,电脑性能大爆发
- 下一篇: 电脑配置秘籍:内存条和主板搭配攻略