Squid est une application proxy Web avec une variété de configurations et d'utilisations. Squid dispose d'un grand nombre de contrôles d'accès et prend en charge différents protocoles, tels que HTTP, HTTPS, FTP et SSL. Dans cet article, nous verrons comment utiliser Squid comme proxy HTTP.
La configuration
Squid est un logiciel assez ancien, mature et couramment utilisé. Il est généralement livré en tant que package par défaut avec diverses distributions Linux.
Configuration pour ce post :
192.168.10.2 - is our proxy server. 192.168.10.3 - Will redirect/cache traffic via the proxy server.
Installer le proxy squid
Installez les packages requis pour que le proxy squid permette au service squid de démarrer automatiquement au démarrage.
# yum install squid # systemctl enable squid # systemctl start squid
Vous pouvez recevoir l'erreur ci-dessous si vous n'avez pas la dernière version d'openssl
Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.
Pour vous en assurer, mettez à jour la version d'openssl à l'aide de la commande ci-dessous :
# yum update openssl
Maintenant, nous pouvons continuer et démarrer le service quid.
# systemctl start squid
Configuration du proxy Squid
Le proxy squid écoute par défaut sur le port 3128. Vous pouvez modifier ce port car il peut s'agir d'une mesure de sécurité pour certaines entreprises. Modifiez le fichier de configuration de squid /etc/squid/squid.conf modifiez les directives http_port pour le port 3128 si vous voulez changer ce port. Je vais garder le même port car il s'agit d'une configuration de test.
# vim /etc/squid/squid.conf # Squid normally listens to port 3128 http_port 3128
Redémarrez le service squid pour que les modifications prennent effet.
# systemctl restart squid
Vérifiez si les processus proxy squid sont démarrés.
# ps -ef | grep squid root 5403 1 0 03:21 ? 00:00:00 /usr/sbin/squid -f /etc/squid/squid.conf squid 5405 5403 0 03:21 ? 00:00:00 (squid-1) -f /etc/squid/squid.conf squid 5406 5405 0 03:21 ? 00:00:00 (logfile-daemon) /var/log/squid/access.log root 5448 5158 0 03:24 pts/0 00:00:00 grep --color=auto squid
Vous pouvez également vérifier si le proxy squid écoute sur le port 3128.
# ss -nlp | grep squid | grep 3128 tcp LISTEN 0 128 :::3128 :::* users:(("squid",pid=5405,fd=11))
Nous devons également autoriser le port 3128 dans firewalld, au cas où il serait activé. Ou vous pouvez simplement désactiver complètement le pare-feu.
# firewall-cmd --add-port=3128/tcp --permanent
Configurer le serveur client pour utiliser squid
# export http_proxy=http://${PROXY_FQDN}:8080
Sur le serveur distant, pour vérifier que vous pouvez vous connecter au proxy, vous pouvez exécuter curl sur google.com
# curl -v http://google.com | head -1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to google.com port 80 (#0) * Trying 2607:f8b0:4009:804::200e... * Connected to google.com (2607:f8b0:4009:804::200e) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: google.com > Accept: */* > < HTTP/1.1 301 Moved Permanently < Location: http://www.google.com/ < Content-Type: text/html; charset=UTF-8 < Date: Wed, 05 Jun 2019 07:28:26 GMT < Expires: Fri, 05 Jul 2019 07:28:26 GMT < Cache-Control: public, max-age=2592000 < Server: gws < Content-Length: 219 < X-XSS-Protection: 0 < X-Frame-Options: SAMEORIGIN < { [data not shown] 100 219 100 219 0 0 3145 0 --:--:-- --:--:-- --:--:-- 3173 * Connection #0 to host google.com left intact