Souhaitez-vous apprendre à installer un proxy transparent Squid sur Ubuntu Linux? Dans ce tutoriel, nous allons vous montrer comment installer et configurer un serveur proxy transparent en utilisant le logiciel Squid sur Ubuntu Linux version 17.

Liste de Matériel:

La section suivante présente la liste des équipements utilisés pour créer ce didacticiel Ubuntu Linux.

Chaque pièce de matériel ci-dessus peut être trouvée sur le site Web d’Amazon.

Ubuntu Playlist:

Sur cette page, nous vous proposons un accès rapide à une liste de vidéos liées à Ubuntu Linux.

N’oubliez pas de vous abonner à notre chaîne YouTube FKIT.

Didacticiel Associé à Squid:

Sur cette page, nous offrons un accès rapide à une liste de tutoriels liés à Squid.

Tutorial – Squid sur Ubuntu Linux

Sur la console Linux, utilisez les commandes suivantes pour définir le fuseau horaire correct.

# dpkg-reconfigure tzdata

Installez le package Ntpdate et définissez la date et l’heure correctes immédiatement.

# apt-get install ntpdate
# ntpdate pool.ntp.br

Dans notre exemple, la commande Ntpdate a été utilisée pour définir la date et l’heure correctes en utilisant le serveur brésilien pool.ntp.br

Installez le service NTP.

# apt-get install ntp

NTP est le service qui gardera notre serveur à jour.

Utilisez la date de la commande pour vérifier la date et l’heure configurées sur votre Linux Ubuntu.

# date

Si le système affiche la date et l’heure correctes, cela signifie que vous avez correctement suivi toutes les étapes.

Utilisez les commandes suivantes pour installer les packages requis.

# apt-get update
# apt-get install build-essential openssl libssl-dev

Téléchargez, compilez et installez le paquet Squid.

# mkdir /downloads
# cd /downloads
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.27.tar.gz
# tar -zxvf squid-3.5.27.tar.gz
# cd squid-3.5.27
# ./configure –with-default-user=proxy
# make
# make install

Voici le fichier de configuration original de squid installé par le paquet Squid.

# vi /usr/local/squid/etc/squid.conf

acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128

coredump_dir /usr/local/squid/var/cache/squid

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

Voici le nouveau fichier avec notre configuration.

Les directives modifiées ont été surlignées en gras.

# vi /usr/local/squid/etc/squid.conf

acl localnet src 192.168.0.0/24  # My internal Network

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128 intercept   # TRANSPARENT PROXY

coredump_dir /usr/local/squid/var/cache/squid
cache_dir ufs /usr/local/squid/var/cache/squid 1000 16 256  # 1GB as Cache

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

Ma configuration est juste basique.

Il est fortement recommandé d’étudier ce fichier de configuration pour améliorer votre configuration.

Utilisez la commande suivante pour créer les dossiers de cache nécessaires.

# chown -R proxy:proxy /usr/local/squid -R
# /usr/local/squid/sbin/squid -z

Utilisez la commande suivante pour démarrer le service Squid.

# /usr/local/squid/sbin/squid -d 10

Si tout fonctionnait correctement, vous devriez voir les messages suivants à l’écran:

Starting Squid Cache version 3.5.27 for x86_64-pc-linux-gnu…
Service Name: squid
Process ID 19569
Process Roles: worker
With 1024 file descriptors available
Initializing IP Cache…
DNS Socket created at [::], FD 6
DNS Socket created at 0.0.0.0, FD 8
Adding nameserver 172.31.0.2 from /etc/resolv.conf
Adding domain us-west-2.compute.internal from /etc/resolv.conf
Logfile: opening log daemon:/usr/local/squid/var/logs/access.log
Logfile Daemon: opening log /usr/local/squid/var/logs/access.log
Unlinkd pipe opened on FD 14
Store logging disabled
Swap maxSize 1024000 + 262144 KB, estimated 98934 objects
Target number of buckets: 4946
Using 8192 Store buckets
Max Mem size: 262144 KB
Max Swap size: 1024000 KB
Rebuilding storage in /usr/local/squid/var/cache/squid (no log)
Using Least Load store dir selection
Set Current Directory to /usr/local/squid/var/cache/squid
Finished loading MIME types and icons.
HTCP Disabled.
Squid plugin modules loaded: 0
Adaptation support is off.
Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 16 flags=9
Done scanning /usr/local/squid/var/cache/squid dir (0 entries)
Finished rebuilding storage from disk.
0 Entries scanned
0 Invalid entries.
0 With invalid flags.
0 Objects loaded.
0 Objects expired.
0 Objects cancelled.
0 Duplicate URLs purged.
0 Swapfile clashes avoided.
Took 0.04 seconds ( 0.00 objects/sec).
Beginning Validation Procedure
Completed Validation Procedure
Validated 0 Entries
store_swap_size = 0.00 KB
storeLateRelease: released 0 objects

Votre solution proxy transparente est installée.

Maintenant, vous devez rediriger chaque connexion du réseau interne en essayant d’atteindre un site Web HTTP pour forcer l’utilisation de votre serveur proxy.

Utilisez la commande suivante pour rediriger chaque paquet du réseau interne essayant d’atteindre un site Web HTTP vers le port TCP 3128 de votre proxy Squid.

# iptables -t nat -I PREROUTING -p tcp -s 192.168.0.0/24 –dport 80 -j REDIRECT –to-port 3128

Pour tester l’installation, accédez à un ordinateur situé sur votre réseau interne et ouvrez son navigateur et essayez d’accéder à un site Web HTTP.