squid代理
優勢:
1.提高客戶端訪問速度;
2.隱蔽內部主機的ip地址;
3.部署簡單,可以實作訪問控制;
作用
——代理上網(正向代理,透明代理)
——網站靜態頁面快取加速(反向代理)

| 主機名稱 | IP地址 | 角色 |
|---|---|---|
| client | 192.168.40.24 | 客戶端 |
| squid | 192.168.40.23 10.10.10.11 | squid服務器 |
| web | 10.10.10.12 | web服務器 |
一、傳統模式
客戶端必須在自己的瀏覽器里指定代理服務器的ip地址和代理服務監聽的埠號,才能通過squid代理服務器上網,

將客戶端的網關指向squid服務器
[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
ONBOOT=yes
DNS1=192.168.40.2
IPADDR=192.168.40.24
PREFIX=24
GATEWAY=192.168.40.23
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
[root@client ~]#
開啟路由轉發功能
[root@squid ~]# echo "1" >/proc/sys/net/ipv4/ip_forward
[root@squid ~]# sysctl -p
[root@squid ~]# yum install -y squid
[root@squid ~]# systemctl start httpd
[root@squid ~]# systemctl enable httpd
測驗訪問
[root@client ~]# curl 10.10.10.12
^C
[root@client ~]# curl -x sockers5://192.168.40.23:3128 10.10.10.12
bbs.jw.com-1
關閉web服務器測驗
[root@web ~]# systemctl stop httpd
[root@web ~]#
[root@client ~]# curl -x sockers5://192.168.40.23:3128 10.10.10.12
bbs.jw.com-1
結論:客戶端訪問得到的結果是使用的squid的快取的資料并非web服務器的資料,在大型的網站當中可以使用這種快取的方式減少web服務器的壓力
二、透明模式
透明代理,本質作用是和普通代理是一樣的,但是透明代理,客戶端不需要在自己的瀏覽器里指定代理服務器的ip地址和代理服務監聽的埠號,給客戶端的感覺自己是直接和公網通信,但是必須把網關地址指向代理服務器的內網介面ip地址,

修改配置資訊
[root@squid ~]# vim /etc/squid/squid.conf
# Squid normally listens to port 3128
http_port 192.168.40.23 3128 transparent
[root@squid ~]# systemctl reload squid
[root@squid ~]# iptables -t nat -A PREROUTING -i eno16777736 -s 192.168.40.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
訪問測驗
[root@client ~]# curl 10.10.10.12
bbs.jw.com-1
[root@client ~]#
限制訪問檔案的大小
正常情況下
[root@web html]# dd if=/dev/zero of=s count=1M bs=1024
[root@client ~]# wget 10.10.10.12/size.html
--2020-09-10 04:16:38-- http://10.10.10.12/s
Connecting to 10.10.10.12:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073741824 (1.0G) [text/html]
Saving to: ‘size.html’
30% [===========> ] 328,439,473 87.1MB/s eta 10s ^C

添加訪問策略
[root@squid ~]# grep "500" /etc/squid/squid.conf
reply_body_max_size 500 MB
[root@squid ~]# systemctl restart squid

總結:傳統模式與透明模式的主要區別就是訪問的時候不用手動添加代理和埠對用戶的體驗更加的友好
三、反向代理
實驗拓撲圖

| 主機名稱 | IP地址 | 角色 |
|---|---|---|
| client | 192.168.40.24 | 客戶端 |
| squid | 192.168.40.23 10.10.10.11 | squid服務器 |
| web-1 | 10.10.10.12 | web服務器 |
| web-2 | 10.10.10.13 | web服務器 |
傳統模式和透明是為客戶端服務的,借助squid加快訪問web服務的速度,或者是公司內部對員工上網行為做限制使用的,而反向代理模式下的squid的服務物件是web服務器,通過squid來隱藏真實web服務器IP,加快客戶的訪問速度,還有負載均衡的功能,
將兩臺web服務器的網關指向squid服務器
[root@web-1 html]# grep -i "gateway" /etc/sysconfig/network-scripts/ifcfg-eno16777728
GATEWAY=10.10.10.11
[root@web2 ~]# grep -i "gateway" /etc/sysconfig/network-scripts/ifcfg-eno16777736
GATEWAY=10.10.10.11
web服務端測驗
[root@squid ~]# curl 10.10.10.12
web-1
[root@squid ~]# curl 10.10.10.13
web-2
[root@squid ~]#
squid配置
[root@squid ~]# grep -A 2 "^http_port" /etc/squid/squid.conf
http_port 80 vhost
cache_peer 10.10.10.12 parent 80 0 originserver no-query originserver round-robin name=apache1
cache_peer 10.10.10.13 parent 80 0 originserver no-query originserver round-robin name=apache2
[root@squid ~]# systemctl reload squid
[root@squid ~]# echo "1" > /proc/sys
sys/ sysrq-trigger sysvipc/
[root@squid ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@squid ~]# sysctl -p

squid做反向代理快取靜態頁面內容
[root@web-1 ~]# systemctl stop httpd
停止其中的一臺機器無論怎么重繪訪問都是web-2

要是兩臺機器都停止了就會出現訪問最后訪問的頁面

四、ACL配置由兩部分組成
之所以我們沒有做ACL訪問策略就能訪問是因為在默認的組態檔當中就是包含了這些網段的內容
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
初識ACL規則
我們將其中的 acl localnet src 192.168.0.0/16給注釋掉重啟服務就會發現訪問被拒絕

acl 串列名稱 串列型別 串列內容
http access allow或者deny串列名稱
| 內容 | 欄位說明 |
|---|---|
| src | 源地址 |
| dst | 目標地址 |
| port | 目標埠 |
| dstdomain | 目標域 |
| time | 訪問時間 |
| maxconn | 最大連接 |
| url_regex | 目標URL地址 |
| urlpath_regex | 整個目標URL地址 |
備注:要是只是寫了acl沒有寫http access默認是拒絕,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/4487.html
標籤:Linux
上一篇:解決Windows10運行VMware Workstation出現與Device Guard不兼容導致無法創建與運行虛擬機問題
