Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/08/2009, à 22:35

Julien24

Squid avec ncsa_auth problème de configuration

Bonjour à tous ,

Je loue actuellement un serveur RPS chez ovh avec une distribution ubuntu hardy heron 8.04 mise à jour
dans le but de migrer tous mes serveurs actuellement sous windows vers linux .

Pour l'instant , j'ai pu me débrouiller avec tous les tutos disponibles sur la toile mais là , je suis coincé :

- le serveur squid est lancé mais l'accès depuis l'extérieur semble bloqué
- la fenêtre d'authentification n'apparait pas

Voici le code :

 # Fichier de configuration squid v2.6.18

#fichier d'authentification des utilisateurs
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users

#nombre d'authentification autorisées
auth_param digest children 5

#Affichage de la fenetre pop-up d'authentification
auth_param basic realm CORP WARLBORO OWN YOUR ASS

#Nombre d'heures pendant laquelle l'authentification est valable 
auth_param basic children 5

#Autorise les accès extérieurs
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object

#Autorise l'accès au machines en lan
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

#Autorise la connection sur les ports ci dessous
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT

#Autorise la purge du cache du proxy
acl purge method PURGE

#Autorise les connnections
acl CONNECT method CONNECT

#oblige les utilisateurs à passer par l'authentification du proxy
acl Users proxy_auth REQUIRED
http_access allow all
http_reply_access allow users
http_access allow Users
http_access deny purge

#Autorise l'accès ICP
icp_access allow all

#Port écouté par Squid
http_port 8080

#Taille maximale du cache de Squid
cache_dir ufs /var/spool/squid 800 16 256

acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

#Refresh pattern
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern .		0	20%	4320

#Utilise Apache pour l'apparition de la fenetre d'authentification
acl apache rep_header Server ^Apache

 

#règle d'accès d'autorisation
http_access allow manager localhost
http_access allow purge localhost

#règles d'interdiction d'accès
http_access deny manager
http_access deny purge
http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
broken_vary_encoding allow apache

#Suppression de la version de Squid 
httpd_suppress_version_string off

#Cache l'IP 
forwarded_for off

#Hote
hosts_file /etc/hosts

coredump_dir /var/spool/squid

#Envoie les utilisateurs vers la page d'erreur en cas d'échec de l'authentification
deny_info /etc/squid/error.html users
deny_info /etc/squid/error.html users
deny_info /etc/squid/error.html users
deny_info /etc/squid/error.html users

Est ce que quelqu'un pourrai m'expliquer comment corriger le tir et rétablir l'accès au proxy
via la fenetre d'authentification (ncsa_auth)

Merci par avance

Hors ligne

#2 Le 08/01/2011, à 21:20

Julien24

Re : Squid avec ncsa_auth problème de configuration

Je poste ici la résolution de mon problème afin d'aider quelqu'un d'autre.
Voici un petit tutoriel Squid 3 anonymisant bien détaillé.

Installation et paramétrage du proxy Squid 3 anonymisant sur Ubuntu 10.04 LTS 32 bit (testé et fonctionnel sur un serveur RPS OVH)
Ce dont nous allons avoir besoin :
Une adresse IP fixe 
squid3
apache2
Nous allons installer squid3:
$ sudo apt-get install squid3 apache2
La plus grosse partie du travail est la configuration de squid.
Nous allons éditer le fichier squid.conf
$ sudo gedit /etc/squid3/squid.conf

Supprimez le contenu du fichier squid.conf et remplacez-le par ce qui suit :
#Fichier de configuration de Squid3
#Règles d'accès
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl SSL_ports port 443
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 #ports non enregistrés
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

#Autorisations d'accès depuis l'extérieur
http_access allow all
http_access allow manager localhost

#Refus d'accès aux requêtes extérieures
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#Nom visible de la machine depuis l'extérieur, ici une #game_gear vous pouvez mettre ce que vous voulez
visible_hostname game_gear 

http_access allow localhost
http_access deny all

#Interdire l'accès ICP
icp_access deny all

#Autoriser l'accès HTCP
htcp_access deny all

#Anonymiser les requêtes de Squid
request_entities off
via off

#Enlever l'adresse IP et le nom du système dans les requêtes #http
forwarded_for off

#Port sur lequel écoute Squid (interface externe)
#pensez à ouvrir ce port au niveau de vôtre routeur ainsi que #dans vôtre firewall
http_port 8080

#Mémoire cache
cache_mem 16 MB

#L'endroit ou sont situés les logs
access_log /var/log/squid3/acces.log squid

#Taux de rafraichissement par défaut :
refresh_pattern ^ftp :           1440    20%     10080
refresh_pattern ^gopher:         1440    0%      1440
refresh_pattern (cgi-bin|\?)     0       0%      0
refresh_pattern .                0       20%     4320
positive_dns_ttl 8 hours
negative_dns_ttl 4 minutes
minimum_expiry_time 60 seconds
#Fin du fichier de configuration squid.conf
Maintenant que Squid est paramétré de manière à fonctionner correctement, il nous reste à mettre en place une authentification afin d'éviter que nôtre proxy devienne un open-proxy et que tout le monde s'y connecte.
 
Nous allons créer un fichier « users » dans /etc/squid3/
$ sudo gedit /etc/squid3/users

Créons les utilisateurs
$ sudo htpasswd -b /etc/squid3/users nomdel'user motdepasse

Répétez la commande pour tous les utilisateurs que vous souhaitez ajouter.

Nous allons tester les utilisateurs crées afin de vérifier qu'ils passent bien au niveau du module d'authentification ncsa_auth tapez ceci dans la fenêtre Terminal.

 /usr/lib/squid3/ncsa_auth /etc/squid3/users
user1 password1
OK
user2 password2
OK
user3 password3
OK
machin chose
ERR No such user



Afin que l'authentification soit complète, nous allons rajouter ce qui suit dans /etc/squid3/squid.conf
$ sudo gedit /etc/squid3/squid_conf
#Indique au module d'identification des utilisateurs ou est #situé le fichier contenant les utilisateurs.
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/users
#Children augmentez la valeur si vous avez beaucoup #d'utilisateurs.
auth_param basic children 5
#Realm n'est rien d'autre qu'un texte qui apparaîtra dans la #fenêtre de demande d'identification.
auth_param basic realm Squid proxy-caching web server
#Credentialsttl durée de vie de l'identification des #utilisateurs.
auth_param basic credentialsttl 2 hours

Nous allons également ajouter une « acl » pour obliger l'authentification des utilisateurs crées plus haut.

acl Users proxy_auth REQUIRED

#Autoriser l'accès aux clients authentifiés
http_access allow Users 


Fichier de configuration complet et fonctionnel de Squid3.

#auth_param basic program indique l'authentification utilisée #ainsi que l'endroit où est stocké le fichier contenant les #utilisateurs et leur mot de passe.
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/users
#Children augmentez la valeur si vous avez beaucoup #d'utilisateurs.
auth_param basic children 5

#Realm n'est rien d'autre qu'un texte qui apparaîtra dans la #fenêtre de demande d'identification.
auth_param basic realm Squid proxy-caching web server

#Credentialsttl durée de vie de l'identification des #utilisateurs.
auth_param basic credentialsttl 2 hours

#Oblige le respect de la casse concernant 
#le login et le mot de passe.
auth_param basic casesensitive on

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl SSL_ports port 443
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 #ports non enregistrés
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
acl Users proxy_auth REQUIRED

#Autorisations d'accès depuis l'intérieur
http_access allow manager localhost

#Refus d'accès aux requêtes extérieures
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow Users
http_access deny all

#Nom visible de la machine depuis l'extérieur, ici une #game_gear vous pouvez remplacer ca parcequ'il vous plaît
visible_hostname game_gear 


#Interdit l'accès ICP
icp_access deny all

#Interdit l'accès HTCP
htcp_access deny all

#Anonymiser les requêtes de Squid
request_entities off
via off

#Enlever l'adresse IP et le nom du système dans les requêtes #http
forwarded_for off

#Port sur lequel écoute Squid (interface externe)
#pensez à ouvrir ce port au niveau de vôtre routeur ainsi que #dans vôtre firewall
http_port 8080

#Mémoire cache
cache_mem 16 MB

#L'endroit ou sont situés les logs
access_log /var/log/squid3/acces.log squid
#Charge le module pour lancer la fenêtre d'authentification #des utilisateurs
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?


#Interdit l'accès au cache du proxy
cache deny QUERY

#Indique le port ICP
icp_port 3130

#Taux de rafraichissement par défaut :
refresh_pattern ^ftp :           1440    20%     10080
refresh_pattern ^gopher:         1440    0%      1440
refresh_pattern (cgi-bin|\?)     0       0%      0
refresh_pattern .                0       20%     4320

positive_dns_ttl 8 hours
negative_dns_ttl 4 minutes
minimum_expiry_time 60 seconds

#Fin du fichier de configuration squid.conf


Redémarrez squid (afin que le fichier de configuration soit rechargé).
$ sudo /etc/init.d/squid3 restart


Maintenant, nous allons paramétrer Firefox afin qu'il utilise nôtre tout nouveau proxy squid

Ouvrez Firefox puis allez dans le menu « Outils » puis « Options »

 

Cliquez sur « Paramètres »

 
Remplissez les champs comme ci-dessus en indiquant l'adresse IP de vôtre serveur Squid à la place de celle renseignée.

Cliquez sur « OK » une fois les modifications terminées.
Tentez maintenant d'accéder à un site web.

La fenêtre d'authentification de Squid apparait vous demandant vôtre Login et mot de passe.
 
Une fois les champs renseignés, cliquez sur « OK » et vous serez redirigés sur la page web désirée.
En cas de problème, contactez-moi par MP.

Hors ligne