musee:tutoriels:proxy_squid

Proxy Squid pour les LXC

Il peut être utile de connecter nos machines virtuelles à internet. De base, celles ci n'y ont pas accès.

Dans ce tutoriel, on verra comment mettre en place un proxy afin que nos machine puisse surfer et se mettre à jours.

Nous avons choisi d'utiliser un proxy pour deux raisons :

→ le proxy permet de faire du caching et d'économiser de la bande passante, notamment lors des MAJ

→ il permet de logger tout le trafic, ce qui peut être utile en cas de hack

On va installer le proxy sur Bor. Notez que Bor dispose de l'interface br1 (10.61.15.0/24), et c'est sur cette interface qu'écoutera le proxy, car c'est sur interface qu'est disposée le réseau fermé des LXC

On commence par installer squid et par sauver son fichier de config par défaut :

$> sudo apt-get install squid
$> sudo cd /etc/squid
$> sudo mv squid.conf squid.conf.default

On crée ensuite un nouveau fichier de configuration :

$> sudo nano squid.conf
/etc/squid/squid.conf
# Squid a besoin de savoir le nom de la machine, notre machine s’appelle ginfo-bor, donc :
visible_hostname bor-ginfo
 
# Par défaut le proxy écoute sur ses deux interfaces, pour des soucis de sécurité il faut donc le
# restreindre à écouter sur l’interface du réseau local (DMZ)
http_port 10.61.15.1:3128
http_port 10.61.16.10:3128
 
# Changer la taille du cache de squid, changer la valeur 100 par ce que vous voulez (valeur en Mo)
cache_dir ufs /var/spool/squid 1000 16 256
 
#################################### ACL ####################################
 
acl all src all # ACL pour autoriser/refuser tous les réseaux (Source = All) – ACL obligatoire
acl lan src 10.61.16.0/24 # ACL pour autoriser/refuser le réseau 10.61.15.0
acl lan src 10.61.15.0/24
acl Safe_ports port 80 # Port HTTP = Port 'sure'
acl Safe_ports port 443 # Port HTTPS = Port 'sure'
acl Safe_ports port 21 # Port FTP = Port 'sure'
 
############################################################################
##########################
 
 
# Désactiver tous les protocoles sauf les ports sures
http_access deny !Safe_ports
 
# Désactiver l'accès pour tous les réseaux sauf les clients de l'ACL Lan
# deny = refuser ; ! = sauf ; lan = nom de l’ACL à laquelle on fait référence.
 
http_access deny !lan
 
 
# Port utilisé par le Proxy :
# Le port indiqué ici, devra être celui qui est précisé dans votre navigateur.
http_port 3128
 
# On déclare le programme qui gère l'authentification :
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/utilisateurs
 
# Grâce à cette ACL, le Proxy demandera une authentification
# Cet acl specifie tous les utilisateurs du htpasswd (le required les prends tous)
acl utilisateurs proxy_auth REQUIRED
 
# Refuser l'accès à tous les utilisateurs sauf ceux du fichier Utilisateurs
http_access deny !utilisateurs
 
#Cette acl est fait pour la limitation de bande passante de lutilisateur LXC
#On cree un acl lxcs qui ne contient que lutilisateur lxc
acl lxcs proxy_auth lxc
delay_pools 1
delay_class 1 1
delay_parameters 1 320000/1280000
delay_access 1 allow lxcs
delay_access 1 deny all

Squid utilise la méthode htpasswd disponible avec le paquet apache2-utils, il faut donc dans un premier temps installer ce paquet :

$> sudo apt-get install apache2-utils

Ensuite, il faut créer un fichier où seront déclarés les utilisateurs et leur mot de passe :

$> sudo nano /etc/squid/utilisateurs

On peut désormais déclarer des utilisateurs dans ce fichier grâce à la commande suivante :

$> sudo htpasswd /etc/squid/utilisateurs nom_utilisateur

On crée bien l'utilisateur “lxc” dont la bande passante est limitée.

Puis on redémarre le service :

$> sudo service squid restart

Pour connecter le LXC au proxy, il suffit de taper dans son shell la commande suivante :

$> export http_proxy=http://utilisateur:password@10.61.15.1:3128
$> export https_proxy=https://utilisateur:password@10.61.15.1:3128

(pour le mettre au démarrage du LXC mettre ces lignes dans /etc/rc.local)

Normalement, les commandes de type wget et lynx fonctionnent avec cette config.

Pour les apt-get install et autres apt-get il faut créer le fichier suivant et redémmarer :

/etc/apt/apt.conf.d/95proxies
Acquire::http::proxy "http://utilisateur:motdepasse@10.61.15.1:3128/";
Acquire::https::proxy "https://utilisateur: motdepasse@10.61.15.1:3128/";

En ce qui concerne les logs du serveur Proxy, ils sont enregistrés dans le fichier access.log se trouvant dans /var/log/squid/

Sources

Cet article est un copier-coller adapté de la source suivante : Mise en place d'un proxy avec Squid

  • musee/tutoriels/proxy_squid.txt
  • Dernière modification : 13/10/2018 00:59
  • de pnahoum