Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制
生活随笔
收集整理的這篇文章主要介紹了
Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Squid代理(傳統(tǒng)代理、透明代理、反向代理)、日志分析、ACL訪問控制
- 一、Squid代理服務器
- 1、代理的工作機制
- 2、代理的類型
- 二、安裝Squid服務
- 1、編譯安裝Squid
- 2、修改Squid的配置文件
- 3、 Squid 的運行控制
- 4、創(chuàng)建 Squid 服務腳本
- 三、傳統(tǒng)代理
- 1、squid服務器
- 2、客戶端配置
- 3、web1服務器
- 4、測試
- 四、透明代理服務器
- 1、Squid服務器配置
- 2、squid服務器中開啟IP轉(zhuǎn)發(fā),并修改防火墻規(guī)則
- 3、web1服務器
- 3、客戶端測試
- 4、查看 Squid 訪問日志的新增記錄
- 五、ACL訪問控制
- 1、定義訪問控制列表
- 2、方法一:
- 3、方法二:
- 六、Squid 日志分析
一、Squid代理服務器
- Squid主要提供緩存加速、應用層過濾控制的功能。
1、代理的工作機制
- 代替客戶機向網(wǎng)站請求數(shù)據(jù),從而可以隱藏用戶的真實IP地址。
- 將獲得的網(wǎng)頁數(shù)據(jù)(靜態(tài) Web 元素)保存到緩存中并發(fā)送給客戶機,以便下次請求相同的數(shù)據(jù)時快速響應。
2、代理的類型
- 傳統(tǒng)代理:適用于Internet,需在客戶機指定代理服務器的地址和端口。
- 透明代理:客戶機不需指定代理服務器的地址和端口,而是通過默認路由、防火墻策略將Web訪問重定向給代理服務器處理。
- 反向代理:如果 Squid 反向代理服務器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端;否則反向代理服務器將向后臺的 WEB 服務器請求資源,然后將請求的應答返回給客戶端,同時也將該應答緩存(靜態(tài))在本地,供下一個請求者使用。
二、安裝Squid服務
| Squid服務器 | 192.168.184.10 |
| web服務器 | 192.168.184.20 |
| 客戶機 | 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,提升存儲性能 --enable-err-language="Simplify_ Chinese" \ #錯誤信息的顯示語言 --enable-underscore \ #允許URL中有下劃線 --disable-poll \ #關(guān)閉默認使用poll模式 --enable-gnuregex #使用GNU正則表達式./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 之前,允許任意客戶機使用代理服務,控制規(guī)則自上而下匹配 http_access deny all http_port 3128 #用來指定代理服務監(jiān)聽的地址和端口(默認的端口號為3128) -----61行--插入------ cache_effective_user squid #添加,指定程序用戶,用來設(shè)置初始化、運行時緩存的賬號,否則啟動不成功 cache_effective_group squid #添加,指定賬號基本組 coredump_dir /usr/local/squid/var/cache/squid #指定緩存文件目錄3、 Squid 的運行控制
#檢查配置文件語法是否正確 squid -k parse#啟動Squid, 第一次啟動Squid服務時,會自動初始化緩存目錄 squid -z #-z選項用來初始化緩存目錄 squid #啟動squid 服務netstat -anpt | grep 31284、創(chuàng)建 Squid 服務腳本
vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 #2345是默認自啟動級別,如是 - 代表任何級別都不自啟動; 90是啟動優(yōu)先級,25是停止優(yōu)先級,優(yōu)先級范圍是0一100,數(shù)字越大,優(yōu)先級越低。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 "正在啟動 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 "正在啟動 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服務器
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對象,容量最好為4的倍數(shù),單位為MB,建議設(shè)為物理內(nèi)存的1/4 reply_body_max_size 10 MB #允許用戶下載的最大文件大小,以字節(jié)為單位,當下載超過指定大小的Web對象時,瀏覽器的報錯頁面中會出現(xiàn)“請求或訪問太大”的提示默認設(shè)置0表示不進行限制 maximum_object_size 4096 KB #允許保存到緩存空間的最大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶service squid restart systemctl restart squid#修改防火墻規(guī)則 iptables -F iptables -I INPUT -p tcp --dport 3128 -j ACCEPT2、客戶端配置
3、web1服務器
systemctl stop firewalld.service setenforce 0 yum -y install httpd systemctl start httpd netstat -natp | grep 804、測試
四、透明代理服務器
| Squid服務器 | ens33:192.168.184.10 ens36:12.0.0.1 |
| web服務器 | 192.168.184.20 |
| 客戶機 | 12.0.0.12 |
1、Squid服務器配置
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 systemctl restart network#60行修改添加提供內(nèi)網(wǎng)服務的IP地址,和支持透明代理選項 transparent vim /etc/squid.conf ...... http_access allow all http_access deny allhttp_port 192.168.184.10:3128 transparent systemctl restart squid2、squid服務器中開啟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服務器
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訪問控制通過以下兩個步驟來實現(xiàn):
- 使用acl 配置項定義需要控制的條件;
- 通過http_access配置項對已定義的列表做“允許”或“拒絕”訪問的控制。
1、定義訪問控制列表
格式: acl 列表名稱 列表類型 列表內(nèi)容 列表名稱:名稱自定義,相當于給acl起個名字 列表類型:必須使用squid預定義的值,對應不同類別的控制條件 列表內(nèi)容:是要控制的具體對象,不同類型的列表所對應的內(nèi)容也不一樣,可以有多個值(以空格為分隔,為“或”的關(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 #客戶機網(wǎng)段 acl destinationhost dst 192. 168.184.20/32 #目標地址為192.168.184.20 acl MC20 maxconn 20 #最大并發(fā)連接20 acl PORT port 21 #目標端口21 acl DMBLOCK dstdomain .qq.com #目標域,匹配域內(nèi)所有站點 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 #時間為周一-至周五8:30~17:30, "MTWHF"為每個星期的英文首字母3、方法二:
#啟動對象列表管理 mkdir /etc/squid vim /etc/squid/dest.list 192.168.184.10 #Squid服務器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格式,詳細列出每一位用戶訪問Internet的站點信息、時間占用信息、排名、連接次數(shù)、訪問量等
| Squid服務器 | 192.168.184.70 |
| web服務器 | 192.168.184.20 |
| 客戶機 | 192.168.184.40 |
總結(jié)
以上是生活随笔為你收集整理的Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存升级,电脑性能大爆发
- 下一篇: 电脑配置秘籍:内存条和主板搭配攻略