[Red Hat] Squid + Iptables

Résolu/Fermé
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 - 6 févr. 2007 à 15:25
 neto arcene - 11 févr. 2009 à 08:41
Bonjour à tous ;-)

voilà je viens poster sur le forum après avoir passé plusieurs jours à chercher. J'ai également cherché sur le forum un problème similaire mais je n'en ai pas trouvé.

Description du problème :
Red Hat 4 avec un noyau 2.6
_ une machine Zeus dans un réseau local (192.168.1.247) sur laquelle est installé un site web.
_ iptables sur cette machine est à Accept par défaut et aucune règle.
_ j'ai installé squid sur cette machine. J'aimerai tout simplement que squid fasse uniquement dans un premier temps serveur cache.

Voici le fichier de conf de squid que j'ai mis (tout simple pour le moment) :
****** SQUID.CONF *******
hosts_file /etc/hosts
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

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

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

acl localnet src 192.168.1.0/24
http_access allow localnet
http_access allow localhost
http_access deny all

http_reply_access allow all
icp_access allow all

cache_mgr maillon@test.fr
visible_hostname zeus.test.fr

httpd_accel_with_proxy on
httpd_accel_uses_host_header on

forwarded_for on

error_directory /etc/squid/errors

snmp_port 3401
snmp_access allow localnet

coredump_dir /var/spool/squid


Quand je rajoute une ligne dans le NAT de iptables pour la redirection de port pour qu'il ne pointe plus vers le 80 mais vers le 8080 pour aller sur le site web j'ai essayé cette ligne :
_ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
et j'ai essayé cette ligne :
_ iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.247:8080

Dès que j'insère une de ces règles et que je me rends sur le site j'ai le droit à un message d'erreur :
________________________________
ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: /

The following error was encountered:

* Invalid URL

Some aspect of the requested URL is incorrect. Possible problems:

* Missing or incorrect access protocol (should be `http://'' or similar)
* Missing hostname
* Illegal double-escape in the URL-Path
* Illegal character in hostname; underscores are not allowed
____________________________

Alors je me suis dis "il faudrait peut-être dire à mon navigateur d'utiliser le proxy". Je paramètre la connexion via le proxy dans firefox et là j'ai une erreur : (l'adresse http://www-de.zeus est accessible quand j'enlève les paramètres dans firefox ou bien quand j'enlève les règles iptables)

_____________________________
While trying to retrieve the URL: http://www-de.zeus/

The following error was encountered:

Unable to determine IP address from host name for www-de.zeus

The dnsserver returned:

Name Error: The domain name does not exist.

This means that:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
_________________________

Je ne comprend pas du tout ce qui peut se passer.

Merci de votre aide, je continue les recherches de mon côté pour voir ce que je peux trouver.
A voir également:

8 réponses

sans_surnom Messages postés 195 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 7 décembre 2007 36
7 févr. 2007 à 09:51
salut!
(je sais pas si je vais vraiment t'apporter grand chose)
sur ton squid ou tu parle du changement de port passage port 80 a 8080?
tu as rajoute le nating sur iptables ok mais pour le retour comment tu fais?

(en esperant que ca t'aide)
1
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 5
7 févr. 2007 à 10:29
Il me semble que la translation de port pour le retour se fait automatiquement dans la table nat. Il n'y a que dans la table filter où l'on doit préciser le retour des paquets mais pas dans le nat puisque c'est juste de la translation de ports/adresses.

Sinon je continue de chercher...
0
sans_surnom Messages postés 195 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 7 décembre 2007 36
7 févr. 2007 à 10:44
autres questions:
si j'ai bien compris quand tu enleves les regles iptables ton navigateur vas chercher les pages sur ton proxy?
donc (toujours si je me suis pas trompe) c'est squid qui redirige vers le dns? est ce que l'erreur pourrais aussi venir de la? (ou alors preciser que l'adresse ip de ton serveur correspond a telle url)

Ce que j'avais fait pour squid c'etait d'effacer completement le fichier de conf et de le reecrire moi meme (le squid fonctionne de facon minimum mais au moins on est sur de ce que l'on mets apres il suffit de rajouter au fur et a mesure on detecte tout de suite les problemes)

courage!!
0
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 5
7 févr. 2007 à 11:06
En fait je viens de trouver une donner importante je pense :

dans le squid.conf j'ai mis comme première règle acl :
acl all src 0.0.0.0/0.0.0.0
http_access deny all

Là je redémarre squid et là j'ai bizarrement accès au site internet ... :s
A mon avis les requêtes ne passent pas par squid et c'est pour ça que quand j'ajoute une règle de translation de port dans iptables il ne trouve rien sur le port 8080 car les paquets ne passent pas par squid !
Enfin c'est ce que j'en déduis.

Par contre je sais pas comment faire pour résoudre ce "léger" souci.
0
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 5
7 févr. 2007 à 16:59
Voici un schéma rapide pour présenter la chose :
http://img214.imageshack.us/img214/7273/schemaeh9.jpg

Pour récapituler :
Si squid est actif (en précisant que l'ordinateur doit utiliser le proxy pour accéder au site web) ou bien si j'ajoute la règle iptables suivante ((( iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 ))) et bien dans ce cas j'ai une erreur :

###########
The following error was encountered:

Unable to determine IP address from host name for www-de.zeus

The dnsserver returned:

Name Error: The domain name does not exist.

This means that:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
######################

Si squid est stoppé (donc pas de paramètre dans l'internet explorer) et bien là j'ai accès au site web.

Je n'arrive vraiment pas à voir d'où peut venir le problème (prob dns ? peut etre mais où corriger ?)

Sachant que j'ai besoni de squid pour qu'il joue le rôle de serveur cache.

Merci de votre aide ;-)

Maillon
0
Maillon Messages postés 156 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 15 avril 2011 5
8 févr. 2007 à 12:05
Alors petite avancée ( ?) : j'avais un ptit souci avec l'affichage d'image donc :

_ dans le squid.conf j'ai préciser l'option --> append_domain .mondomaine.net et là le souci que j'avais avec les images n'est plus.

Donc la page de garde s'affiche correctement mais dès que je clique sur un lien là boum :
The following error was encountered:

Unable to determine IP address from host name for www-de.zeus

The dnsserver returned:

Name Error: The domain name does not exist.

This means that:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.

Je cherche toujours mais si vous avez des idées elles sont les bienvenues !

Merci ;-)

Maillon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
# Ne pas faire une erreur si le fichier de configuration est incomplète
# Set defaults lieu:

SQUID_OPTS = $ (SQUID_OPTS: - "-D")
SQUID_PIDFILE_TIMEOUT = $ (SQUID_PIDFILE_TIMEOUT: -20)
SQUID_SHUTDOWN_TIMEOUT = $ (SQUID_SHUTDOWN_TIMEOUT: -100)

Si tu peut mettre sa dans ta conf de squid.conf pour evité des erreur
0
aide moi svp pour configurer un serveur proxy sous redhat entreprise as 4

et merci pour tout le monde
0
aidez moi svp pour configurer un serveur proxy sous redhat entreprise as 4

merci
0
Bonjour mon frere,

juste pour ton probléme moi aussi j'avais sa.

Comme question quel version du squid que tu utilise.

Si se la version 3.0 quelque chose, la sa evolué.

Il accept maitenant la transparence au niveau du proxy.

http_port 192.168.1.1:8080 transparent
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

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

#acl all src 0/0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

acl localnet src 192.168.1.0/24
http_access allow localnet
http_access allow localhost
http_access deny all

http_reply_access allow all
icp_access allow all

cache_mgr maillon@test.fr
visible_hostname zeus.test.fr

#httpd_accel_with_proxy on
httpd_accel_uses_host_header on

forwarded_for on

error_directory /etc/squid/errors

snmp_port 3401
snmp_access allow localnet

coredump_dir /var/spool/squid


Lui meme et transparent deja.


Mais pour le nat

IPTABLES -t nat -A POSTROUTING -s (ton LAN) -d 0/0 -j SNAT --to-source (Ton IP WAN)

IPTABLES - t nat -A PREROUTING -i eth1 -p tcp -s (Ton LAn) --dport 80 -j REDIRECT --to-port 8080

Essai un peut sa cool.


Bonne chance
0