当前位置:网站首页>Agent de cache SQUID

Agent de cache SQUID

2021-09-15 03:55:53 Café coffee

Table des matières:

Un.、Squid Serveur mandataire

2.、Squid Installation de l'agent

Trois、Construire un agent traditionnel

Quatre、Créer un agent transparent

Cinq、ACLContrôle d'accès

Six、SquidAnalyse des journaux

Sept、Agent inverse

 

 

Un.、Squid Serveur mandataire
Squid Fournit principalement l'accélération du cache、Fonction de contrôle du filtre de couche d'application.

Comment fonctionne l'agent
1、Demander des données au site Web au lieu d'un client,Pour cacher la réalité de l'utilisateurIPAdresse.
2、Données de la page Web à obtenir(Statique Web Élément)Enregistrer dans le cache et envoyer au client,Pour une réponse rapide la prochaine fois que les mêmes données sont demandées.

Squid Type d'agent
Agents traditionnels:PourInternet,L'adresse et le port du serveur mandataire doivent être spécifiés sur le client.

Agent transparent:Le client n'a pas besoin de spécifier l'adresse et le port du serveur mandataire,Au lieu de cela, le routage par défaut、La politique du pare - feuWebRedirection d'accès au traitement du serveur mandataire.

Agent inverse:Si Squid La ressource demandée est mise en cache dans le serveur mandataire inverse,Renvoie la ressource demandée directement au client;Sinon, le serveur mandataire inversé se dirige vers l'arrière - plan WEB Le serveur demande des ressources,La réponse demandée est ensuite retournée au client,Cette réponse est également mise en cache localement,Pour le prochain demandeur.

2.、Squid Installation de l'agent

  1 [Compiler l'installationSquid]
  2 #Installer un environnement dépendant
  3 yum -y install gcc gcc-c++ make
  4 #Télécharger le paquetsquid-3.5.27. tarÀ/optSous la table des matières
  5 cd /opt
  6 #Décompresser
  7 tar zxvf squid-3.5.27.tar.gz
  8 #Configuration
  9 cd squid-3.5.27/
 10 ./configure --prefix=/usr/local/squid \
 11 --sysconfdir=/etc \
 12 --enable-arp-acl \
 13 --enable-linux-netfilter \
 14 --enable-linux-tproxy \
 15 --enable-async-io=100 \
 16 --enable-err-language="Simplify_Chinese" \
 17 --enable-underscore \
 18 --enable-poll \
 19 --enable-gnuregex
 20 
 21 # Compiler l'installation
 22 make && make install
 23 
 24 -----------------------------------------------
 25 ####_Explication du script ci - dessus###
 26 
 27 ./configure --prefix=/usr/local/squid
 28 ##Répertoire d'installation
 29 --sysconfdir=/etc/
 30 ##Modifier le profil individuellement vers/etcSous la table des matières
 31 -- enable-arp-acl
 32 ##Oui.ACLLe réglage moyen passe parMACGestion des adresses,PréventionIPTricher
 33 --enable-1inux-netfilter
 34 ##Utiliser le filtrage du noyau
 35 --enable-linux-tproxy
 36 ##Prise en charge du mode transparent
 37 --enable-async-io=100
 38 ##AsynchroneI/O,Améliorer les performances de stockage,Valeur modifiable
 39 --enable-err-language="Simplify_Chinese"
 40 ##Langue d'affichage des messages d'erreur
 41 --enable-underscore
 42 ##AllowURLSoulignement moyen
 43 -enable-poll
 44 ##UtiliserPoll () Mode,Améliorer les performances
 45 --enable-gnuregex
 46 ##UtiliserGNUExpression régulière
 47 -------------------------------------------
 48 
 49 
 50 ln -s /usr/local/squid/sbin/* /usr/local/sbin 
 51 ##Créer un fichier lié,Optimiser le chemin
 52 useradd -M -s /sbin/nologin squid
 53 ###Créer un utilisateur de programme、Groupe
 54 chown -R squid:squid /usr/local/squid/var/
 55 ##Modifier le répertoire Home
 56 
 57 
 58 [ModifierSquidProfil pour]
 59 vi /etc/squid.conf
 60 #Mettez - le surhttp access deny all
 61 Avant,Taille maximale du fichier que l'utilisateur est autorisé à télécharger,Règles de contrôle de.Correspondance vers le haut et vers le bas
 62 vim /etc/squid.conf
 63 ......
 64 -56D'accord--Insérer--
 65 http_access allow all
 66 #Mettez - le surhttp access deny allAvant,Taille maximale du fichier que l'utilisateur est autorisé à télécharger,Règles de contrôle de.Correspondance vers le haut et vers le bas
 67 http_access deny all
 68 http_port 3128
 69 #Utilisé pour spécifier l'adresse et le port sur lesquels le service mandataire écoute(Le numéro de port par défaut est3128)
 70 -----61D'accord--Insérer------
 71 cache_effective_user squid
 72 #Ajouter,Spécifier l'utilisateur du programme,Utilisé pour définir l'initialisation、Compte mis en cache au moment de l'exécution,Sinon, le démarrage n'a pas réussi
 73 cache_effective_group squid
 74 #Ajouter,Spécifier le Groupe de base du compte
 75 coredump_dir /usr/local/squid/var/cache/squid
 76 #Spécifier le répertoire des fichiers mis en cache
 77 ---------------------------------------------
 78 ##Explication du script ci - dessus
 79 ##Configurer le cache du disque dur,Ouvre.#.Répertoire cache512M,Un des répertoires de niveau 116- Oui.,Niveau 2256- Oui.
 80 cache_effective_user squid 
 81 cache_effective_group squid
 82 ---------------------------------------------
 83 
 84 
 85 squid -k parse
 86 ##Vérifier le profil
 87 squid -k rec
 88 ##Recharger le profil
 89 squid -zX
 90 ##Initialiser le répertoire cache
 91 
 92 squid
 93 ##DémarragesquidServices
 94 
 95 netstat -anpt | grep squid
 96 ##ConfirmationsquidLe service est en état d'écoute normal
 97 tcp6 0  0 :::3128   :::*   LISTEN 
 98 6699/ (squid-1)
 99 
100 [CompilationsquidScript de service]
101 -------------------------------------------------
102 #!/bin/bash
103 #chkconfig: 2345 90 25
104 PID="/usr/local/squid/var/run/squid.pid"
105 CONF="/etc/squid.conf"
106 CMD="/usr/local/squid/sbin/squid"
107 
108 case "$1" in
109    start)
110      netstat -natp | grep squid &> /dev/null
111      if [ $? -eq 0 ]
112      then
113        echo "squid is running"
114        else
115        echo "Démarrage squid..."
116        $CMD
117      fi
118    ;;
119    stop)
120      $CMD -k kill &> /dev/null
121      rm -rf $PID &> /dev/null
122    ;;
123    status)
124      [ -f $PID ] &> /dev/null
125         if [ $? -eq 0 ]
126           then
127             netstat -natp | grep squid
128           else
129             echo "squid is not running"
130         fi
131    ;;
132    restart)
133       $0 stop &> /dev/null
134       echo "Fermeture squid..."
135          $0 start &> /dev/null
136       echo "Démarrage squid..."
137    ;;
138    reload)
139       $CMD -k reconfigure
140    ;;
141    check)
142       $CMD -k parse
143    ;;
144    *)
145       echo "Utilisation:$0{start|stop|status|reload|check|restart}"
146    ;;
147 esac
148 ----------------------------------------------
149 
150 
151 chmod +x /etc/init.d/squid
152 chkconfig --add squid
153 chkconfig --squid on

 

 

 

 

 

 

 

 

 

 

Trois、Construire un agent traditionnel

 1 **Préparation environnementale**
 2 
 3 Squid Serveur:192.168.91.5
 4 web1 Serveur: 192.168.91.10
 5 win10:192.168.91.178
 6 
 7 ####Construire un agent traditionnel###
 8 CAS:ConstruireSquidServeur mandataire,Autoriser les clients à spécifiersquidProxy Server asWebAgents
 9 Accéder au serveur du site,Conditions de contrôle correspondant aux différentes catégories10MBDocuments,Plus que4MBLes fichiers ne sont pas mis en cache
10 Serveur:
11 
12 1.squidServeur
13 
14 vim /etc/squid.conf
15 ......
16 http_access allow all
17 http_access deny all
18 http_port 3128
19 cache_effective_user squid
20 cache_effective_group squid
21 ---63D'accord,Insérer----
22 cache_mem 64 MB                #Spécifiez la taille de l'espace mémoire utilisé par la fonction cache,Faciliter le maintien d'un accès plus fréquentWEBObjet,La capacité est de préférence4Multiple de,UnitésMB,Recommandé pour la mémoire physique1/4
23 reply_body_max_size 10 MB            #Le programme de service obtient des données telles que des pages de site Web,En octets,Lorsque le téléchargement dépasse la taille spécifiéeWebQuand l'objet,Obtenir la valeur à traiter avant d'utiliser“Demande ou accès trop important”Invite par défaut pour0Indique qu'aucune restriction n'est imposée
24 maximum_object_size 4096 KB            #Taille maximale de l'objet autorisée à être sauvegardée dans l'espace cache,ParKBEn unités,Autoriser tout client à utiliser le service proxy,Il est transmis directement à l'utilisateur
25 
26 iptables -F
27 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
28 iptables -nL INPUT
29 
30 2.web1Configuration
31 
32 systemctl stop firewalld.service
33 setenforce 0
34 yum -y install httpd
35 systemctl start httpd
36 netstat -natp | grep 80
37 
38 Tests:Inwin10 Entrée du navigateurWeb1ServeurIPAccès à l'adresse,VoirWeb1Journal d'accès du serveur,..Afficher l'accès par le serveur mandataire pour le client
39 http://192.168.91.10
40 
41 VoirWeb1Nouveaux enregistrements pour le Journal d'accès
42 tail -f /var/log/httpd/access_log
squidConfiguration du serveur

 

 

 

 

 

 webConfiguration du serveur

 

win10Configuration

 

 

Tests:Inwin10 Entrée du navigateurWeb1ServeurIPAccès à l'adresse,VoirWeb1Journal d'accès du serveur,..Afficher l'accès par le serveur mandataire pour le client

 

Quatre、Créer un agent transparent

 1 1、SquidConfiguration du serveur
 2 cd /etc/sysconfig/network-scripts/
 3 cp ifcfg-ens33 ifcfg-ens36 
 4 vim ifcfg-ens37
 5 systemctl restart network
 6 
 7 #60Appelle le contenu de la liste dans le fichier spécifiéIPAdresse,Et prend en charge les options d'agent transparenttransparent
 8 vim /etc/squid.conf
 9 ......
10 http_access allow all
11 http_access deny all
12 http_port 192.168.100.100:3128 transparent
13 systemctl restart squid
14 
15 echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
16 sysctl -p
17 
18 iptables -F
19 iptables -t nat -F
20 # Ajouter une règle de pare - feu(Source:100Segment réseau:80/443Le trafic du port est redirigé vers3128Port)
21 iptables -t nat -I PREROUTING -i ens37 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128    
22 iptables -t nat -I PREROUTING -i ens37 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128    
23 #Si vous voulez redémarrer,Les règles suivantes doivent être configurées
24 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
25 
26 2.web1Serveur
27 systemctl stop firewalld.service
28 setenforce 0
29 yum -y install httpd
30 systemctl start httpd
31 netstat -natp | grep 80
32 
33 # Ajouter une route statique
34 route add -net 192.168.100.0/24 gw 192.168.91.5
35 
36 3.Agent de fermeture du client,Modifierwin10 L'adresse est100Segment réseau
37 
38 Accès àweb1Serveur
39 
40 VoirWeb1Nouveaux enregistrements pour le Journal d'accès
41 tail -f /var/log/httpd/access_log

squidConfiguration du serveur

 

 

 

 

web1Le serveur ajoute une route statique

Agent de fermeture du client,Modifierwin10 L'adresse est100Segment réseau

 

 

 

Cinq、ACLContrôle d'accès
Dans le fichier de configurationsquid.confMoyenne,ACLLe contrôle d'accès se fait en deux étapes:Distribuer la demande par sondage à l'un des:

UtiliseraclProcesseur général assembler les données à:
Adoptionhttp_accessAppariement Définir la Liste définie“Allow"Ou“Rejeté”Contrôle de l'accès
Définir la liste de contrôle d'accès

  • • Format: aclNom de la Liste Type de liste Contenu de la Liste
  • • Nom de la Liste: Nom personnalisé,C'est l'équivalent de donneraclDonne - moi un nom.
  • • Type de liste: Doit être utilisésquidValeurs prédéfinies,Accès par navigateur sur le serveur
  • • Contenu de la Liste: Est l'objet spécifique à contrôler,Les différents types de listes correspondent à des contenus différents,Peut avoir plusieurs valeurs(Espace séparé,Pour“Ou"La relation entre)
 1 Méthode 1:
 2 vim /etc/squid.conf
 3 ......
 4 acl localhost src 192.168.100.178/24                     #L'adresse source est192.168.100.178
 5 acl MYLAN src 192.168.100.0/24                            #Segment client
 6 acl destinationhost dst 192.168.226.129/32                #L'adresse de destination est192.168.184.20
 7 acl MC20 maxconn 20                                        #Connexions simultanées maximales20
 8 acl PORT port 21                                        #Port de destination21
 9 acl DMBLOCK dstdomain .qq.com                            #Domaine cible,Correspond à tous les sites du domaine
10 acl BURL url_regex -i ^rtsp:// ^emule://                #Parrtsp://.emule://Au débutURL,-iIndique que le cas est ignoré
11 acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$            #Par.mp3、.mp4、.rmvbFinURLChemin
12 acl WORKTIME time MTWHF 08:30-17:30                        #Lundi--Vendredi8:30~17:30,"MTWHF"Mais il est interdit de télécharger plus de
13 
14 Article premier insertion:
15 http_access deny host
16 
17 
18 Méthode 2:
19 #Démarrer la gestion de la liste des objets
20 mkdir /etc/squid
21 vim /etc/squid/dest.list
22 192.168.226.129                                         #SquidServeurIP
23 192.168.226.0/24                                        #Tout segment réseau requis
24 
25 vim /etc/ squid.conf
26 .......
27 acl destinationhost dst "/etc/squid/dest.list"            #Renvoie le tableau associatif de l'ensemble de résultats correspondant
28 http access deny(Ouallow) destinationhost                #Attention!,S'il s'agit d'une liste de refus,Doit être placéhttp_access allow allDevant.
29 
30 systemctl restart squid

Méthode 1

 

 

 

Six、SquidAnalyse des journaux

sarg ( Squid Analysis Report Generator),C'est unsquidOutil d'analyse des journaux,AdoptionHTMLFormat,Détailler chaque accès utilisateurInternetInformations sur le site pour、Informations sur l'occupation du temps、Classement、Nombre de connexions、Nombre de visites, etc.

 1 #Installer un progiciel de traitement d'images
 2 yum install -y gd gd-devel pcre-devel
 3 mkdir /usr/local/sarg
 4 
 5 #Oui.zxvf sarg-2.3.7. tar.gzLes paquets compressés sont téléchargés sur/optSous la table des matières
 6 tar zxvf sarg-2.3.7.tar.gz -C /opt/
 7 
 8 cd /opt/sarg-2.3.7
 9 ./configure --prefix=/usr/local/sarg \
10 --sysconfdir=/etc/sarg \                    #Répertoire des profils,Par défaut/usr/loca/etc
11 --enable-extraprotection                    #Protection supplémentaire de la sécurité
12 
13 -----------------------------------------------------------------------------------------------
14 ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection
15 --------------------------------------------------------------------------------------------------
16 
17 make && make install
18 
19 vim /etc/sarg/sarg.conf
20 --7D'accord--Décompresser
21 access_log /usr/local/squid/var/logs/access.1og                 #Spécifier les fichiers journaux d'accès
22 --25D'accord--Décompresser
23 title "Squid User Access Reports"                                #Titre de la page
24 -- 120D'accord--Décompresser,Modifier
25 output_dir /var/www/html/sarg                                    #Répertoire de sortie du rapport
26 --178D'accord--Décompresser
27 user_ip no                                                        #Afficher avec le nom d'utilisateur
28 --184D'accord--Décompresser,Modifier
29 topuser_sort_field connect reverse                                #topTrier,La page d'erreur du navigateur apparaît,L'ordre croissant estnormal
30 -- 190D'accord--Décompresser,Modifier
31 user_sort_field connect reverse                                    #Pour les enregistrements d'accès des utilisateurs,Nombre de connexions triées par ordre décroissant
32 --206D'accord--Décompresser,Modifier
33 exclude_hosts /usr/local/sarg/noreport                            #Spécifie les fichiers qui ne sont pas inclus dans la liste des sites triés
34 --257D'accord--Décompresser
35 overwrite_report no                                                #Et continuer à déplacer le pointeur de données interne
36 --289D'accord--Décompresser,Modifier
37 mail_utility mailq.postfix                                        #Envoyer une commande de rapport de courrier
38 --434D'accord--Décompresser,Modifier
39 charset UTF-8                                                    #Spécifier un jeu de caractèresUTF-8
40 --518D'accord--Décompresser
41 weekdavs 0-6                                                    #topCycle hebdomadaire de classement
42 --525D'accord--Décompresser
43 hours 0-23                                                        #topPériode de classement
44 --633D'accord--Décompresser
45 www_document_root /var/www/html                                    #Spécifier la racine de la page
46 
47 #Ajouter un fichier de site non inclus,Essayez de concevoir un algorithme de recherche qui répond aux exigences
48 touch /usr/local/sarg/noreport
49 
50 ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
51 
52 sarg --help                    #Obtenir de l'aide
53 
54 #Exécution
55 sarg                         #Démarrer un enregistrement
56 
57 #Validation
58 yum install httpd -y
59 systemctl start httpd
60 InsquidAccès par navigateur sur le serveurhttp://192.168.91.5/sarg, VoirsargPage Web du rapport.
61 date -s
62 #Ajouter une tâche programmée,Exécuter la production quotidienne de rapports
63 vim /usr/local/sarg/report.sh
64 #/bin/bash
65 #Get current date 
66 TODAY=$(date +%d/%m/%Y)
67 #Get one week ago today
68 YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y) 
69 /usr/local/sarg/bin/sarg -l /usr/1ocal/squid/var/logs/access.log -o /var/www/html/sarg
70 -z -d $YESTERDAY-$TODAY &> /dev/null
71 exit 0
72 
73 chmod +x /usr/local/sarg/report.sh
74 
75 crontab -e
76 0 0 * * * /usr/1ocal/sarg/report.sh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InsquidAccès par navigateur sur le serveurhttp://192.168.91.5/sarg, VoirsargPage Web du rapport

 

 Sept、Agent inverse

SiSquidLa ressource demandée est mise en cache dans le serveur mandataire inverse,Renvoie la ressource demandée directement au client;Sinon, le serveur mandataire inversé se dirige vers l'arrière - planWebLe serveur demande des ressources,La réponse demandée est ensuite retournée au client,La réponse est également mise en cache localement pour le prochain demandeur

Mécanisme de travail:

  • Cache les objets de la page Web,Réduire les demandes en double
  • Le sondage des demandes d'accès à Internet ou l'attribution d'un poids à l'intranetwebServeur
  • Demande de l'utilisateur mandataire,Éviter l'accès direct des utilisateursWebServeur,Améliorer la sécurité
 1 Allumez le pare - feu、Fermeture localeHTTPD
 2 systemctl start firewalld
 3 systemctl stop httpd
 4 
 5 iptables -F
 6 iptables -t nat -F
 7 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
 8 
 9 vim /etc/ squid.conf
10 60D'accord--Modifier,Insérer-------
11 http_port 192.168.91.5:80 accel vhost vport
12 cache_peer 192.168.91.10 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
13 cache_peer 192.168.91.15 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
14 cache_peer_domain web1 web2 www.sdy.com                        #Oui.www.sdy.comDemandes,squidVers192.168.91.10Et192.168.91.1580Demande de port
15 ---------------------------------------------------------------------------------------------------------------------------------------------------------
16 http_port 80 accel vhost vport
17 #squidPasser d'un cache à unWebMode d'accélération de l'agent inverse du serveur,À ce moment - là.squidIn80Demande d'écoute du port,En même temps quewebserverPort de demande pour(vhost vport)BIND,C'est l'heure de la demande.squid, squidIl n'est pas nécessaire de transmettre la demande,Au lieu de cela, prenez les données directement du cache ou allez à,Le port lié demande directement des données.
18 accel:Mode d'accélération inverse de l'agent
19 vhost:Prise en charge des noms de domaine ou d'hôte pour représenter les noeuds proxy
20 vport:SoutienIPEt les ports pour représenter les noeuds Proxy
21 parent:Représente le noeud parent,Relations ascendantes et descendantes,Relations hiérarchiques inégales
22 80:Au sein de l'AgencewebServeur80Port
23 0:Non utiliséicp,Un seul.squidServeur
24 no-query:Ne pas effectuer d'opération de requête,Accès direct aux données
25 originserver:Spécifier comme serveur source
26 round-robin:Désignationsquid Distribuer la demande du client à l'un des-Noeud parent
27 max_conn:Spécifier le nombre maximum de connexions
28 weight:Spécifier le poids
29 name:Définir un alias
30 -------------------------------------------------------------------------------------------------------------------------------------------------------------------
31 
32 systemctl stop squid 
33 service squid reload
34 
35 #Arrière - planweb2Configuration du serveur de noeuds
36 yum install -y httpd
37 systemctl start httpd 
38 
39 #Noeud1(web1):
40 echo "this is test web1" >> /var/www/html/index.html
41 #Noeud2(web2):
42 echo "this is test web2" >> /var/www/html/index.html
43 
44 #Configuration de la cartographie des noms de domaine pour le client
45 ModifierC: \Windows\System32 \drivers\etc\hosts Documentation
46 192.168.91.5 www.kgc.com
47 
48 #Configuration de l'agent pour le client
49 Ouvrir le Navigateur,Outils-->InternetOptions-->Connexion-->Configuration du réseau local-->Activer le serveur mandataire(Adresse: SquidServeurIPAdresse,Port:80)
50 
51 Accès au navigateurhttp://www.sdy.com

squidServeur

 

 

web1/web2Serveur:

 

 

win10 Client Effectuer des tests

 

 

版权声明
本文为[Café coffee]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210914183007079P.html

随机推荐