Squid et site https
Fermé
brudao
Messages postés
524
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
16 octobre 2014
-
16 oct. 2014 à 12:10
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 - 5 mars 2015 à 21:30
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 - 5 mars 2015 à 21:30
A voir également:
- Squid et site https
- Site de telechargement - Guide
- Site inaccessible - Guide
- Site de vente entre particulier - Guide
- Darkino site - Guide
- Site partage photo - Guide
1 réponse
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
5 mars 2015 à 21:30
5 mars 2015 à 21:30
Bonsoir,
J'arrive un peu tard, mais voici ce qu'il faut faire (une des solutions)
Dsl si les explications ne sont pas très "pro", je suis un "novice avancé" qui s'exprime encore mal avec Linux.
Lorsque tu installes Squid via les dépots (un apt-get install squid sous Ubuntu par exemple), la "fonction ssl" n'est pas configurée par défaut.
Il faut télécharger les sources et les recompiler avec les options SSL pour qu'elles soient prises en compte. Pour mon cas, j'ai fais ceci :
ATTENTION : mon squid ne fait pas de cache ! Je m'en sers uniquement pour le filtrage d'URL !
Attention donc aux options dans le squid.conf qui n'iront pas à tout le monde !
Il y a également un squidguard chez moi, mais je n'ai pas mis la conf ici.
ATTENTION BIS :
Si tu fais un apt-get update et upgrade après ça, ca mettra ton squid à jour avec la version "dépots" -> sans les options SSL qui disparaîtront.
# Installation des outils de compilations
apt-get install devscripts build-essential fakeroot libssl-dev
# Déplacement dans l'environnement de travail
cd /usr/src
# Téléchargement des sources
apt-get source squid3
# Installation des dépendances pour la compilation
apt-get build-dep squid3
# Édition des règles de compilations
cd /usr/src/squid3-3.*
# Ajouter dans "--enable-ssl \" dans le fichier rules
# ainsi que "--enable-ssl-crtd \"
nano debian/rules
# Compilation
./configure
#La commande suivante est relativement longue. Ne stressez pas si ça dure plus de 5 minutes
debuild -us -uc -b
# Installation des paquets :
cd ..
dpkg -i squid3_*.deb squid3-common_*.deb
#Si vous rencontrez des erreurs, faites ceci :
#Des erreurs ont été rencontrées pendant l'exécution :
# squid3-common
# squid3
apt-get -f install
#Puis de nouveau
dpkg -i squid3_*.deb squid3-common_*.deb
#Création du certificat SSL
cd /etc/squid3
mkdir ssl_cert
chmod 700 ssl_cert
cd ssl_cert
openssl req -new -newkey rsa:2048 -sha256 -days 14600 -nodes -x509 -keyout myCA.pem -out myCA.pem
openssl x509 -in myCA.pem -outform DER -out myCA.der
/usr/lib/squid3/ssl_crtd -c -s /usr/lib/squid3/ssl_db
chown -R proxy /usr/lib/squid3/ssl_db
#S'asssurer que les droits sont bien en 755 maximum, c'est normalement suffisant.
#En cas de problème de droits, vous aurez un message d'erreur dans le cache.log de squid, qui dit qu'il ne peut pas écrire dans index.txt, ou accéder à la db.
#Le certificat sera déployé sur les pc du parc via GPO.
#Faire une copie de sauvegarde du fichier de conf Squid d'origine
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.origin
#On édite de fichier Squid (vu le nombre de lignes, videz le, puis copiez-collez.
#Préférez WinSCP pour le modifier, car il est plutôt copieux de base. Sinon pour les courageux, il y a nano
nano /etc/squid3/squid.conf
http_port 3129
http_port 3128 intercept
https_port 3127 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/myCA.pem
#Force l'utilisation de l'IPV4 en premier. Utile si vous n'utilisez pas l'IP V6.
#Si vous êtes en IPV6, pas de panique, vous passez en second lieu, mais n'êtes pas bloqués.
dns_v4_first on
#partie ssl
always_direct allow all
ssl_bump server-first all
sslcrtd_program /usr/lib/squid3/ssl_crtd -s /usr/lib/squid3/ssl_db -M 4MB
sslcrtd_children 5
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
acl localnet src 172.16.0.0/19 #RFC 1918 possible internal network
acl SSL_ports port 443 #https
acl Safe_ports port 80 #http
acl Safe_ports port 21 #ftp
acl Safe_ports port 443 #https
acl Safe_ports port 70 #gopher
acl Safe_ports port 210 #wais
acl Safe_ports port 1025-65535 #unregistered ports
acl Safe_ports port 280 #http-mgmt
acl Safe_ports port 488 #gss-http
acl Safe_ports port 591 #filemaker
acl Safe_ports port 777 #multiling http
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
forwarded_for off
error_directory /usr/share/squid3/errors/French
visible_hostname nvsquid
####Je veux 0 cache
cache deny all
###On appelle SquidGuard
redirect_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
redirect_children 5
###Je veux le nom d'hote plutôt que l'adresse IP des machines qui se connectent.
#Je vais donc transformer un peu les logs
#Ici, je change le %>a en %>A -> %>a = IP - %>A = Hostname
logformat squid %ts.%03tu %6tr %>A %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
### END CONFIGURATION ###
#On active ensuite la redirection :
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
#On règle Iptable
nano /etc/init.d/iptablerules
### BEGIN INIT INFO
# Provides: iptablerules
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: iptablerules
# Description: Regles IPTABLE pour SQUID
### END INIT INFO
iptables -t nat -A PREROUTING -p tcp -s 172.16.0.0/19 --dport 80 -j DNAT --to 172.16.31.240:3128
iptables -t nat -A PREROUTING -p tcp -s 172.16.0.0/19 --dport 443 -j DNAT --to 172.16.31.240:3127
#Puis le rendre exécutable
chmod 755 /etc/init.d/iptablerules
#Puis forcer pour l'exécution au démarrage
update-rc.d iptablerules defaults 80
#Vérifiez après reboot que vos règles sont bien la :
iptables -L -t nat
#On redémarre le tout :
/etc/init.d/squid3 restart && /etc/init.d/networking restart
#(reboot de préférence)
Sur votre PC client, mettez en gateway l'IP de vote proxy.
J'arrive un peu tard, mais voici ce qu'il faut faire (une des solutions)
Dsl si les explications ne sont pas très "pro", je suis un "novice avancé" qui s'exprime encore mal avec Linux.
Lorsque tu installes Squid via les dépots (un apt-get install squid sous Ubuntu par exemple), la "fonction ssl" n'est pas configurée par défaut.
Il faut télécharger les sources et les recompiler avec les options SSL pour qu'elles soient prises en compte. Pour mon cas, j'ai fais ceci :
ATTENTION : mon squid ne fait pas de cache ! Je m'en sers uniquement pour le filtrage d'URL !
Attention donc aux options dans le squid.conf qui n'iront pas à tout le monde !
Il y a également un squidguard chez moi, mais je n'ai pas mis la conf ici.
ATTENTION BIS :
Si tu fais un apt-get update et upgrade après ça, ca mettra ton squid à jour avec la version "dépots" -> sans les options SSL qui disparaîtront.
# Installation des outils de compilations
apt-get install devscripts build-essential fakeroot libssl-dev
# Déplacement dans l'environnement de travail
cd /usr/src
# Téléchargement des sources
apt-get source squid3
# Installation des dépendances pour la compilation
apt-get build-dep squid3
# Édition des règles de compilations
cd /usr/src/squid3-3.*
# Ajouter dans "--enable-ssl \" dans le fichier rules
# ainsi que "--enable-ssl-crtd \"
nano debian/rules
# Compilation
./configure
#La commande suivante est relativement longue. Ne stressez pas si ça dure plus de 5 minutes
debuild -us -uc -b
# Installation des paquets :
cd ..
dpkg -i squid3_*.deb squid3-common_*.deb
#Si vous rencontrez des erreurs, faites ceci :
#Des erreurs ont été rencontrées pendant l'exécution :
# squid3-common
# squid3
apt-get -f install
#Puis de nouveau
dpkg -i squid3_*.deb squid3-common_*.deb
#Création du certificat SSL
cd /etc/squid3
mkdir ssl_cert
chmod 700 ssl_cert
cd ssl_cert
openssl req -new -newkey rsa:2048 -sha256 -days 14600 -nodes -x509 -keyout myCA.pem -out myCA.pem
openssl x509 -in myCA.pem -outform DER -out myCA.der
/usr/lib/squid3/ssl_crtd -c -s /usr/lib/squid3/ssl_db
chown -R proxy /usr/lib/squid3/ssl_db
#S'asssurer que les droits sont bien en 755 maximum, c'est normalement suffisant.
#En cas de problème de droits, vous aurez un message d'erreur dans le cache.log de squid, qui dit qu'il ne peut pas écrire dans index.txt, ou accéder à la db.
#Le certificat sera déployé sur les pc du parc via GPO.
#Faire une copie de sauvegarde du fichier de conf Squid d'origine
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.origin
#On édite de fichier Squid (vu le nombre de lignes, videz le, puis copiez-collez.
#Préférez WinSCP pour le modifier, car il est plutôt copieux de base. Sinon pour les courageux, il y a nano
nano /etc/squid3/squid.conf
http_port 3129
http_port 3128 intercept
https_port 3127 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/myCA.pem
#Force l'utilisation de l'IPV4 en premier. Utile si vous n'utilisez pas l'IP V6.
#Si vous êtes en IPV6, pas de panique, vous passez en second lieu, mais n'êtes pas bloqués.
dns_v4_first on
#partie ssl
always_direct allow all
ssl_bump server-first all
sslcrtd_program /usr/lib/squid3/ssl_crtd -s /usr/lib/squid3/ssl_db -M 4MB
sslcrtd_children 5
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
acl localnet src 172.16.0.0/19 #RFC 1918 possible internal network
acl SSL_ports port 443 #https
acl Safe_ports port 80 #http
acl Safe_ports port 21 #ftp
acl Safe_ports port 443 #https
acl Safe_ports port 70 #gopher
acl Safe_ports port 210 #wais
acl Safe_ports port 1025-65535 #unregistered ports
acl Safe_ports port 280 #http-mgmt
acl Safe_ports port 488 #gss-http
acl Safe_ports port 591 #filemaker
acl Safe_ports port 777 #multiling http
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
forwarded_for off
error_directory /usr/share/squid3/errors/French
visible_hostname nvsquid
####Je veux 0 cache
cache deny all
###On appelle SquidGuard
redirect_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
redirect_children 5
###Je veux le nom d'hote plutôt que l'adresse IP des machines qui se connectent.
#Je vais donc transformer un peu les logs
#Ici, je change le %>a en %>A -> %>a = IP - %>A = Hostname
logformat squid %ts.%03tu %6tr %>A %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
### END CONFIGURATION ###
#On active ensuite la redirection :
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
#On règle Iptable
nano /etc/init.d/iptablerules
### BEGIN INIT INFO
# Provides: iptablerules
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: iptablerules
# Description: Regles IPTABLE pour SQUID
### END INIT INFO
iptables -t nat -A PREROUTING -p tcp -s 172.16.0.0/19 --dport 80 -j DNAT --to 172.16.31.240:3128
iptables -t nat -A PREROUTING -p tcp -s 172.16.0.0/19 --dport 443 -j DNAT --to 172.16.31.240:3127
#Puis le rendre exécutable
chmod 755 /etc/init.d/iptablerules
#Puis forcer pour l'exécution au démarrage
update-rc.d iptablerules defaults 80
#Vérifiez après reboot que vos règles sont bien la :
iptables -L -t nat
#On redémarre le tout :
/etc/init.d/squid3 restart && /etc/init.d/networking restart
#(reboot de préférence)
Sur votre PC client, mettez en gateway l'IP de vote proxy.