日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)

發(fā)布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

標(biāo)題

  • 一、Squid 代理服務(wù)器
    • 代理的工作機(jī)制
    • Squid 代理的類型
  • 二、安裝 Squid 服務(wù)
    • 1、編譯安裝 Squid
    • 2、修改 Squid 的配置文件
    • 3、Squid 的運(yùn)行控制
    • 4、創(chuàng)建 Squid 服務(wù)腳本
  • 三、構(gòu)建傳統(tǒng)代理服務(wù)器
    • 環(huán)境配置
  • 四、構(gòu)建透明代理服務(wù)器
    • 1、環(huán)境配置
    • 2、Squid服務(wù)器配置(192.168.80.10)
    • 3、客戶機(jī)測試(12.0.0.100)
  • 五、ACL訪問控制
    • 1、環(huán)境配置
    • 2、Squid配置(192.168.80.10)
    • 3、Web1和web2的配置(192.168.80.20、192.168.80.30)
    • 4、測試(192.168.80.100)
  • 六、Squid日志分析
    • 測試
    • 添加計(jì)劃任務(wù),每天生成報(bào)告
  • 七、反向代理
    • 1、環(huán)境配置
    • 2、Squid配置(192.168.80.10)
    • 3、web1和web2配置(192.168.80.20、192.168.80.30)
    • 4、客戶機(jī)的配置
    • 5、驗(yàn)證

一、Squid 代理服務(wù)器

Squid 主要提供緩存加速、應(yīng)用層過濾控制的功能。

代理的工作機(jī)制

  • 1、代替客戶機(jī)向網(wǎng)站請求數(shù)據(jù),從而可以隱藏用戶的真實(shí)IP地址。
  • 2、將獲得的網(wǎng)頁數(shù)據(jù)(靜態(tài) Web 元素)保存到緩存中并發(fā)送給客戶機(jī),以便下次請求相同的數(shù)據(jù)時快速響應(yīng)。

Squid 代理的類型

傳統(tǒng)代理:適用于Internet,需在客戶機(jī)指定代理服務(wù)器的地址和端口。

透明代理:客戶機(jī)不需指定代理服務(wù)器的地址和端口,而是通過默認(rèn)路由、防火墻策略將Web訪問重定向給代理服務(wù)器處理。

反向代理:如果 Squid 反向代理服務(wù)器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端;否則反向代理服務(wù)器將向后臺的 WEB 服務(wù)器請求資源,然后將請求的應(yīng)答返回給客戶端,同時也將該應(yīng)答緩存在本地,供下一個請求者使用。

二、安裝 Squid 服務(wù)

systemctl stop firewalld systemctl disable firewalld setenforce 0

1、編譯安裝 Squid

yum -y install gcc gcc-c++ make tar zxvf squid-3.5.28.tar.gz -C /opt/ cd /opt/squid-3.5.28./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 \ --enable-poll \ --enable-gnuregexmake && make install#--------模塊解釋-------------------------------------------------- --prefix=/usr/local/squid #指定安裝目錄路徑 --sysconfdir=/etc #指定配置文件路徑 --enable-arp-acl #MAC地址管控,防止客戶端使用ip欺騙 --enable-linux-netfilter #使用內(nèi)核過濾 --enable-linux-tproxy #支持透明模式 --enable-async-io=100 #異步1o,提升存儲性能 --enable-err-language="Simplify_Chinese" #錯誤信息的顯示語言 --enable-underscore #允許URL中有下劃線 --disable-poll \ #關(guān)閉默認(rèn)使用的poll 模式 --enable-epoll \ #開啟epoll模式,提升性能 --enable-gnuregex #使用GNU正則表達(dá)式 #----------------------------------------------------------------


ln -s /usr/local/squid/sbin/* /usr/local/sbin/useradd -M -s /sbin/nologin squidchown -R squid:squid /usr/local/squid/var/

2、修改 Squid 的配置文件

vim /etc/squid.conf 56行插入http_access allow all #放在 http_access deny all 之前,允許任意客戶機(jī)使用代理服務(wù) http_access deny all http_port 3128 #用來指定代理服務(wù)監(jiān)聽的地址和端口(默認(rèn)的端口號為 3128) 61行插入cache_effective_user squid #添加,指定程序用戶,用來設(shè)置初始化、運(yùn)行時緩存的賬號,否則啟動不成功 cache_effective_group squid #添加,指定賬號基本組coredump_dir /usr/local/squid/var/cache/squid #指定緩存文件目錄

3、Squid 的運(yùn)行控制

檢查配置文件語法是否正確

squid -k parse

啟動 Squid

squid -z #-z 選項(xiàng)用來初始化緩存目錄 squid #啟動 squid 服務(wù)netstat -anpt | grep "squid"

4、創(chuàng)建 Squid 服務(wù)腳本

vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 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}";; esac

#2345是默認(rèn)自啟動級別,如是-代表任何級別都不自啟動;90是啟動優(yōu)先級,25是停止優(yōu)先級,優(yōu)先級范圍是0-100,數(shù)字越大,優(yōu)先級越低。

chmod +x /etc/init.d/squid chkconfig --add squid chkconfig --level 35 squid on


三、構(gòu)建傳統(tǒng)代理服務(wù)器

環(huán)境配置

主機(jī)操作系統(tǒng)IP地址軟件、安裝包、工具
SquidCentOS7192.168.172.10squid-3.5.28.tar.gz
Web1CentOS7192.168.172.20httpd
客戶機(jī)Windows192.168.172.100

Squid(192.168.172.10)

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é)為單位,當(dāng)下載超過指定大小的Web對象時,瀏覽器的報(bào)錯頁面中會出現(xiàn)“請求或訪問太大”的提示默認(rèn)設(shè)置0表示不進(jìn)行限制 maximum_object_size 4096 KB #允許保存到緩存空間的最大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶

service squid restart netstat -natp | grep squid

生產(chǎn)環(huán)境中還需要修改防火墻規(guī)則

iptables -F iptables -I INPUT -p tcp --dport 3128 -j ACCEPT iptables -L INPUT

客戶機(jī)的代理配置(192.168.172.100)
1、配置客戶端IP地址


2、打開瀏覽器,配置代理功能

Web1(192.168.172.20)

systemctl stop firewalld.service setenforce 0 yum -y install httpd systemctl start httpd netstat -natp | grep 80


檢測
在瀏覽器輸入Web服務(wù)器IP地址訪問,查看Web服務(wù)器訪問日志,顯示的是由代理服務(wù)器替客戶機(jī)在訪問

查看Web1訪問日志的新增記錄

tail -f /var/log/httpd/access_log

四、構(gòu)建透明代理服務(wù)器

1、環(huán)境配置

主機(jī)操作系統(tǒng)IP地址服務(wù)、安裝包、工具
Squid-ServerCentOS7ens33:192.168.80.10 、 ens36:12.0.0.1squid-3.5.28.tar.gz
Web1CentOS7192.168.80.20httpd
客戶端Windows12.0.0.100——

2、Squid服務(wù)器配置(192.168.80.10)

網(wǎng)卡配置
關(guān)機(jī),添加一塊網(wǎng)卡,開機(jī),ifconfig查看新增網(wǎng)卡名稱,編輯網(wǎng)卡配置文件

cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens33

vim ifcfg-ens36


重啟網(wǎng)卡,并查看

systemctl restart network ifconfig


60行修改添加提供內(nèi)網(wǎng)服務(wù)的IP地址,和支持透明代理選項(xiàng) transparent

vim /etc/squid.conf ...... http_access allow all http_access deny allhttp_port 12.0.0.1:3128 transparent systemctl restart squid


開啟路由轉(zhuǎn)發(fā)功能

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p


修改防火墻配置規(guī)則

iptables -F iptables -t nat -F iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

3、客戶機(jī)測試(12.0.0.100)

配置網(wǎng)卡IP

關(guān)閉代理服務(wù)

測試頁面出來了

動態(tài)檢測squid訪問日志(192.168.80.10)

tail -f /usr/local/squid/var/logs/access.log

Squid代理服務(wù)器則是檢測到客戶機(jī)訪問目標(biāo)網(wǎng)站

查看web服務(wù)器上的訪問日志(192.168.80.20)

tail -f /var/log/httpd/access_log

可以看到是代理服務(wù)器外網(wǎng)口12.0.0.1訪問的12.0.0.12

五、ACL訪問控制

在配置文件 squid.conf 中,ACL 訪問控制通過以下兩個步驟來實(shí)現(xiàn):
(1)使用 acl 配置項(xiàng)定義需要控制的條件;
(2)通過 http_access 配置項(xiàng)對已定義的列表做“允許”或“拒絕”訪問的控制。
1.定義訪問控制列表
格式:acl 列表名稱 列表類型 列表內(nèi)容 …

vim /etc/squid.conf ...... acl localhost src 192.168.80.10/32 #源地址為 192.168.80.10 acl MYLAN src 192.168.80.0/24 #客戶機(jī)網(wǎng)段 acl destionhost dst 192.168.80.20/32 #目標(biāo)地址為 192.168.80.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 #時間為周一至周五 8:30~17:30,“MTWHF”為每個星期的英文首字母

1、環(huán)境配置

主機(jī)操作系統(tǒng)IP地址軟件、安裝包、工具
Squid-ServerCentOS7192.168.80.10squid-3.5.28.tar.gz
Web1CentOS7192.168.80.20httpd
Web2CentOS7192.168.80.30httpd
客戶機(jī)Windows192.168.80.100——

2、Squid配置(192.168.80.10)

iptables -F iptables -t nat -Fvim /dest.list 192.168.80.20vim /etc/squid.conf ...... acl destionhost dst "/dest.list" #調(diào)用指定文件中的列表內(nèi)容 ...... http_access deny destionhost #注意,如果是拒絕列表,需要放在http_access allow all前面http_port 3128systemctl restart squid




3、Web1和web2的配置(192.168.80.20、192.168.80.30)

systemctl stop firewalld.service setenforce 0 yum -y install httpd systemctl start httpd

4、測試(192.168.80.100)

打開代理服務(wù)

訪問192.168.80.20和192.168.80.30

六、Squid日志分析

squid服務(wù)器(192.168.80.10)
安裝圖像處理軟件包
需要使用在線源,出現(xiàn)報(bào)錯,將網(wǎng)卡配置文件中的dns和網(wǎng)關(guān)修改回原樣即可

yum install -y pcre-devel gd gd-develmkdir /usr/local/sarg tar zxvf sarg-2.3.7.tar.gz -C /opt/cd /opt/sarg-2.3.7./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection make && make install



vim /etc/sarg/sarg.conf

7行取消注釋access_log /usr/local/squid/var/logs/access.log #指定訪問日志文件25行取消注釋title "Squid User Access Reports" #網(wǎng)頁標(biāo)題120行取消注釋output_dir /var/www/html/squid-reports #報(bào)告輸出目錄178行取消注釋user_ip no #使用用戶名顯示184行取消注釋,修改topuser_sort_field connect reverse #top排序中,指定連接次數(shù)采用降序排列,升序是normal190行取消注釋,修改user_sort_field connect reverse #對于用戶訪問記錄,連接次數(shù)按降序排序206行取消注釋,修改exclude_hosts /usr/local/sarg/noreport #指定不計(jì)入排序的站點(diǎn)列表的文件257行取消注釋overwrite_report no #同名同日期的日志是否覆蓋289行取消注釋,修改mail_utility mailq.postfix #發(fā)送郵件報(bào)告命令434行取消注釋,修改charset UTF-8 #指定字符集UTF-8518行取消注釋weekdays 0-6 #top排行的星期周期525行取消注釋hours 0-23 #top排行的時間周期633行取消注釋www_document_root /var/www/html #指定網(wǎng)頁根目錄

添加不計(jì)入站點(diǎn)文件,添加的域名將不被顯示在排序中

touch /usr/local/sarg/noreportln -s /usr/local/sarg/bin/sarg /usr/local/bin/sarg --help


運(yùn)行

sarg

驗(yàn)證

yum install httpd -y systemctl start httpd


啟動服務(wù)

測試

瀏覽器訪問 http://192.168.80.10/squid-reports ,查看sarg報(bào)告網(wǎng)頁

添加計(jì)劃任務(wù),每天生成報(bào)告

vim /usr/local/sarg/report.sh

#/bin/bash #Get current date TODAY=$(date +%d/%m/%Y) #Get one week ago today YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y) /usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports -z -d $YESTERDAY-$TODAY &> /dev/null exit 0

chmod +x /usr/local/sarg/report.shcrontab -e 0 0 * * * /usr/local/sarg/report.sh

七、反向代理

如果 Squid 反向代理服務(wù)器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端;否則反向代理服務(wù)器將向后臺的 Web 服務(wù)器請求資源,然后將請求的應(yīng)答返回給客戶端,同時也將該應(yīng)答緩存在本地,供下一個請求者使用。

工作機(jī)制:
●緩存網(wǎng)頁對象,減少重復(fù)請求
●將互聯(lián)網(wǎng)請求輪訓(xùn)或按權(quán)重分配到內(nèi)網(wǎng)Web服務(wù)器
●代理用戶請求,避免用戶直接訪問Web服務(wù)器,提高安全

1、環(huán)境配置

主機(jī)操作系統(tǒng)IP地址軟件、安裝包、工具
Squid-ServerCentOS7192.168.80.10squid-3.5.28.tar.gz
Web1CentOS7192.168.80.20httpd
Web2CentOS7192.168.80.30httpd
客戶機(jī)Windows192.168.80.100——

2、Squid配置(192.168.80.10)

清空防火墻

iptables -F #清空防火墻規(guī)則 iptables -t nat -Fvim /etc/squid.conf ......

60行修改,插入

http_port 192.168.80.10:80 accel vhost vport cache_peer 192.168.80.20 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.80.30 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 cache_peer_domain web1 web2 www.chen.com


http_port 80 accel vhost vport #squid從一個緩存變成了一個Web服務(wù)器使用加速模式,這個時候squid在80端口監(jiān)聽請求,同時和web server的請求端口(vhost vport)綁定,這個時候請求到了squid,squid是不用轉(zhuǎn)發(fā)請求的,而是直接要么從緩存中拿數(shù)據(jù)要么向綁定的端口直接請求數(shù)據(jù)。


parent代表為父節(jié)點(diǎn)
80HTTP_PORT
0ICP_PORT
no-query不做查詢操作,直接獲取數(shù)據(jù)
originserver指定是源服務(wù)器
round-robin指定 squid 通過輪詢方式將請求分發(fā)到其中一臺父節(jié)點(diǎn)
max_conn指定最大連接數(shù)
weight指定權(quán)重
name設(shè)置別名

關(guān)閉httpd服務(wù),在啟動squid服務(wù)。防止端口沖突

systemctl stop httpd systemctl restart squid

3、web1和web2配置(192.168.80.20、192.168.80.30)

都有的操作

systemctl stop firewalld.service setenforce 0 yum install -y httpd systemctl start httpd

web1(192.168.80.20)

echo "this is chen" >> /var/www/html/index.html

web2(192.168.80.30)

echo "this is qian" >> /var/www/html/index.html

4、客戶機(jī)的配置

修改 C:\Windows\System32\drivers\etc\hosts 文件 192.168.80.10 www.chen.com


客戶機(jī)的代理也要打開

5、驗(yàn)證

瀏覽器訪問www.chen.com

總結(jié)

以上是生活随笔為你收集整理的部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。