Proxy traditionnel Squid + proxy transparent

Présentation du proxy Squid

Squid est un serveur de cache proxy haute performance. Squid prend en charge les protocoles FTP, Gopher, HTTPS et HTTP. Contrairement au logiciel de mise en cache de proxy général, Squid utilise un processus séparé, non modulaire et piloté par E / S pour gérer toutes les demandes des clients.
Organigramme ↓
Insérez la description de l'image ici

  1. Enregistrez les objets de page Web pour réduire les demandes répétées
  2. Il met en œuvre sa fonction de cette manière, accepte les demandes d'objets que les gens ont besoin de télécharger et traite ces demandes de manière appropriée
  3. En d'autres termes, si une personne souhaite télécharger une page Web, elle demande à Squid de lui obtenir la page. Squid se connecte ensuite au serveur distant (par exemple: http://squid.nlanr.net/) et envoie une requête à cette page
  4. Squid agrège explicitement les données sur la machine cliente et les copie en même temps. La prochaine fois que quelqu'un aura besoin de la même page, Squid pourra simplement la lire à partir du disque et les données seront immédiatement transférées au client.

Types courants de calamars

Proxy traditionnel
Service de proxy commun, applicable à Internet, le serveur doit être clairement spécifié

Le
client proxy transparent n'a pas besoin de spécifier l'adresse et le port du serveur proxy, c'est via la route par défaut, le pare-feu redirige le Web vers le proxy

L'utilisation d'un proxy peut augmenter la vitesse d'accès au Web, et en même temps, il peut masquer l'adresse IP réelle du client, jouant ainsi un certain rôle protecteur.
D'autre part, Squid peut également filtrer pour la cible à accéder, l'adresse du client et la période de la visite contrôle.

l'amener sur! Spectacle! !

Expérience de proxy traditionnelle

Description de l'expérience
IP du serveur Squid: 20.0.0.11
IP du serveur Web: 20.0.0.3
Accéder au client de test: 20.0.0.101

Déployez le service sur le serveur squid

[root@localhost bao]# ls
squid-3.4.6.tar.gz
[root@localhost bao]# tar zxvf squid-3.4.6.tar.gz
[root@localhost squid-3.4.6]# yum -y install \   ##安装C语言环境
> gcc gcc-c++ 
[root@localhost squid-3.4.6]# ./configure \
> --prefix=/usr/local/squid \    ##安装路径
> --sysconfdir=/etc \			 ##配制文件路径
> --enable-arp-acl \			 ##支持ACL访问控制列表
> --enable-linux-netfilter \	 ##支持网络筛选
> --enable-linux-tproxy \		 ##支持透明模式
> --enable-async-io=100 \		 ##I/O优化
> --enable-err-language="Simplify_Chinses" \  ##以中文显示报错信息
> --enable-underscore \			 ##支持带有下划线
> --enable-poll \				 ##开启 poll ,优化性能
> --enable-gnuregex				 ##支持正则
[root@localhost squid-3.4.6]# make && make install
[root@localhost squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/   ##创建软连接,方便用户使用
[root@localhost squid-3.4.6]# useradd -M -s /sbin/nologin squid
[root@localhost squid-3.4.6]# chown -R squid:squid /usr/local/squid/var/

Service d'optimisation

[root@localhost squid-3.4.6]# cd /etc/   ##刚安装时设置在 /etc下的配置文件
[root@localhost etc]# ll |grep squid
-rw-r--r--.  1 root root     2347 9月   6 11:05 squid.conf
-rw-r--r--.  1 root root     2347 9月   6 11:05 squid.conf.default
-rw-r--r--.  1 root root   281814 9月   6 11:05 squid.conf.documented
[root@localhost etc]# vim squid.conf
56 http_access allow all   ##把deny 改成 allow

58 # Squid normally listens to port 3128  ##默认端口 3128
59 http_port 3128
60 cache_effective_user squid    ##添加用户
61 cache_effective_group squid   ##添加组
[root@localhost etc]# squid -k parse  ##检查语法
[root@localhost etc]# squid -z  ##初始化缓存目录
[root@localhost etc]# 2020/09/06 11:20:54 kid1| Set Current Directory to /usr/local/squid/var/cache/squid
2020/09/06 11:20:54 kid1| Creating missing swap directories
2020/09/06 11:20:54 kid1| No cache_dir stores are configured.
##kao!这边要自己回车,我等了好久,以为报错了!!!
[root@localhost etc]# 
[root@localhost etc]# squid   ##启动服务
[root@localhost etc]# netstat -ntap |grep 3128
tcp6       0      0 :::3128                 :::*                    LISTEN      106428/(squid-1)  

Ajouter squid à la gestion des services

[root@localhost etc]# vim /etc/init.d/squid
#!/bin/bash
#chkconfig: 2345 90 25  ##启动级别
PID="/usr/local/squid/var/run/squid.pid"   ##PID文件进程号
CONF="/etc/squid.conf"   ##主配置文件
CMD="/usr/local/squid/sbin/squid"   ##启动命令

case "$1" in
start)
                netstat -ntap | grep squid &> /dev/null
                if [ $? -eq 0 ]
                then 
                 echo "squid is running"
                 else
                 echo "正在启动 squid...." 
                 $CMD
                fi
                ;;
stop)
                $CMD -k kill &> /dev/null   ##关闭squid
                rm -rf $PID &> /dev/null   ##删除PID文件
                ;;
status)1
                [ -f $PID ] &> /dev/null
                 if [ $? -eq 0 ]
                                then
                                 netstat -ntap | grep squid
                                else
                                 echo "squid is not running"
                fi
                ;;
restart)
                $0 stop &> /dev/null
                echo "正在关闭 squid..."
                $0 start &> /dev/null
                echo "正在启动 squid..."
                ;;
reload)
                $CMD -k reconfigure  ##重载配置文件
                ;;
check)
                $CMD -k parse   ##检查语法
                ;;
*)
                echo "用法:$0{start|stop|reload|status|check|restart}"
                ;;
esac
[root@localhost etc]# chmod +x /etc/init.d/squid    ##加权
[root@localhost etc]# chkconfig --add squid 		##添加
[root@localhost etc]# chkconfig --level 35 squid on ##设置 3 5 自启

Configurer le proxy traditionnel

[root@localhost etc]# vim /etc/squid.conf
# Squid normally listens to port 3128
http_port 3128
cache_effective_user squid
cache_effective_group squid		##在下面添加
cache_mem 64 MB    ##缓存空间大小 64 M
reply_body_max_size 10 MB	##允许下载最大文件的大小,若为0,则不限制
maximum_object_size 4096 KB		##允许保存到缓存空间的最大对象的大小,以KB为单位,超过限制不会缓存,直接转到web端
[root@localhost etc]# service squid stop
[root@localhost etc]# netstat -ntap |grep 3128
[root@localhost etc]# service squid start
[root@localhost etc]# iptables -F
[root@localhost etc]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT  增加规则,方通 3128 端口
[root@localhost etc]# setenforce 0

Configurer le serveur WEB

[root@web01 ~]# yum -y install httpd
[root@web01 ~]# setenforce 0
[root@web01 ~]# systemctl stop firewalld
[root@web01 ~]# systemctl start httpd

Définissez le proxy de Squit sur le client.
Ouvrez le navigateur IE et suivez les étapes ci-dessous pour configurer le
Insérez la description de l'image ici
Insérez la description de l'image iciInsérez la description de l'image iciclient pour qu'il accède au Web 20.0.0.3

Insérez la description de l'image ici
Afficher le journal du serveur WEB01

[root@web01 ~]# cd /var/log/httpd/
[root@web01 httpd]# ls
access_log  error_log
[root@web01 httpd]# cat access_log 
##查看到访问IP为squid的IP
20.0.0.11 - - [06/Sep/2020:13:57:31 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://20.0.0.3/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"
20.0.0.11 - - [06/Sep/2020:13:57:31 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"

L'expérience d'agent traditionnel est terminée et la fonction est réussie

Expérience proxy transparente

Selon l'adresse IP ci-dessus,
ajoutez une nouvelle carte réseau au serveur squid. L'adresse IP est 192.168.10.10. Placez-la dans la section LAN 1 pour
accéder à la machine de test. L'adresse IP est modifiée en 192.168.10.20. Le système ferme le paramètre proxy et la place dans la section LAN 1, passerelle. Défini sur 192.168.10.10
Insérez la description de l'image ici

[root@localhost etc]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.10.10
PREFIX=24
GATEWAY=192.168.10.10
DNS1=114.114.114.114
[root@localhost network-scripts]# systemctl restart network

Configurer le serveur squid

[root@localhost network-scripts]# vim /etc/sysctl.conf   ##路由转发设置
net.ipv4.ip_forward=1
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1

Modifier le fichier de configuration principal

[root@localhost network-scripts]# vim /etc/squid.conf
 58 # Squid normally listens to port 3128
 59 http_port 192.168.10.10:3128 transparent  ##改这行
 60 cache_effective_user squid
 61 cache_effective_group squid
 62 cache_mem 64 MB
[root@localhost network-scripts]# iptables -F
[root@localhost network-scripts]# iptables -t nat -F
[root@localhost network-scripts]# iptables -t nat -I PREROUTING -i ens37 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@localhost network-scripts]# iptables -t nat -I PREROUTING -i ens37 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@localhost network-scripts]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

Configurer sur le serveur WEB

[root@localhost ~]# route add -net 192.168.10.0/24 gw 20.0.0.11
[root@localhost ~]# ping 192.168.10.20
PING 192.168.10.20 (192.168.10.20) 56(84) bytes of data.
64 bytes from 192.168.10.20: icmp_seq=1 ttl=127 time=0.793 ms
64 bytes from 192.168.10.20: icmp_seq=2 ttl=127 time=0.434 ms
^C
--- 192.168.10.20 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.434/0.613/0.793/0.181 ms

Vérification expérimentale
Insérez la description de l'image ici
Afficher les journaux sur Apache

[root@localhost ~]# cat /var/log/httpd/access_log 
20.0.0.11 - - [06/Sep/2020:15:08:55 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.ttf HTTP/1.1" 404 240 "http://20.0.0.3/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"
20.0.0.11 - - [06/Sep/2020:15:08:55 +0800] "GET /noindex/css/fonts/Bold/OpenSans-Bold.ttf HTTP/1.1" 404 238 "http://20.0.0.3/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18363"

Expérience terminée

Je suppose que tu aimes

Origine blog.csdn.net/Ora_G/article/details/108428918
conseillé
Classement