iptables et la comande --dport - Linux et OS Alternatifs
Marsh Posté le 30-04-2003 à 11:03:36
je pense que dans le "ALL" le protocole ICMP est compris...
et du ICMP sur un port 80, ça fct pas.
(j'espère ne pas dire une grosse connerie là)
Marsh Posté le 30-04-2003 à 11:05:41
non c'est pas une connerie. on peut utiliser --dport et --sport seulement si on a en protocole tcp et udp
Marsh Posté le 30-04-2003 à 11:07:32
ouf tu me rassures
ça fait tellement longtemps que j'ai plus touché à mon firewall
Marsh Posté le 30-04-2003 à 11:08:07
donc tu peux faire un
iptables -A PREROUTING -d 10.10.10.1 -p !icmp --dport 80 -j ACCEPT
Marsh Posté le 30-04-2003 à 11:15:01
salut !
j'en profite pour m'incruster un peu
en fait je voudrais faire une simple redirection de port avec iptables.
en gros, mon pc sert de passerelle/ dns/ dhcp / proxy avec squid.
ce que j'aimerais c'est pouvoir accéder au net a partir de mon réseau, en passant par ma passerelle, et sans avoir a configurer le proxy.
En fait j veut donc que tout ce qui arrive sur mon proxy soit automatiquement redirigé vers le port 3128 de squid comme ca je peut faire du ftp, http, https (mon problème se situe au niveau du https en fait surtout) et tout ca de manière transparente evidemment afin de ne pas avoir a configurer les pc clients.
pour le moment j'utilisait ca :
iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128
bon et evidemment a part le http ca marche pas trop le reste.
si qqun peut me renseigner merci bcp.
Marsh Posté le 30-04-2003 à 11:18:11
Sebounet a écrit : salut ! |
pk tu redirige tes 3 ports sur un seul
donc forcement c est ke la 1ere regle qui marche (http), les autres nan
Marsh Posté le 30-04-2003 à 11:19:39
Sebounet a écrit : bah y'a qu'un seul port sur le proxy non ? |
oue mais ca doit par marcher comme ca
Marsh Posté le 30-04-2003 à 11:22:11
bah qd j utilise le proxy de la boite je configure mon ie pour qu'il utilise le port 8080 pour tout ce qui est ftp, http, https etc
Marsh Posté le 30-04-2003 à 11:25:17
Sebounet a écrit : bah qd j utilise le proxy de la boite je configure mon ie pour qu'il utilise le port 8080 pour tout ce qui est ftp, http, https etc |
spo pareil, la tu parle de protocoles, avant tu parlais de ports (relatifs a des protocoles, encore ke ...)
Marsh Posté le 30-04-2003 à 11:29:38
comment ca c po pareil.
bon beh en fait je veut juste pouvoir faire du http, ftp, https en passant par mon proxy mais de manière transparente cad sans avoir a config internet explorer.
avec la commande :
iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
ca marche très bien pour le http.
comment faire pour le ftp et le https ?
merci
Marsh Posté le 30-04-2003 à 11:34:47
est-ce que si tu mets dans IE 3128 pour http, sécusrié, ftp,... ça fct ?
si pas, je pense que tu dois d'abord configurer squid.
Une fois que ça fct, tu appliques ta redirection et ça doit fcter.
Marsh Posté le 30-04-2003 à 11:35:38
oui ca fonctionne si je configure comme ca dans internet explorer
Marsh Posté le 30-04-2003 à 11:50:10
regarde ici :
http://en.tldp.org/HOWTO/mini/TransparentProxy-6.html
autorise tu le retour des paquets de la machine proxy vers tes machines clients ?
sinon, ftp utilise aussi udp non ?
Marsh Posté le 30-04-2003 à 12:27:27
ReplyMarsh Posté le 30-04-2003 à 12:28:21
Sebounet a écrit : |
ca je sais po
nan mais explique moi plus clairement le pb
et la doc ke t a file ethernal c est po bon ??
Marsh Posté le 30-04-2003 à 12:28:27
ethernal a écrit : regarde ici : |
et bien je sait pas trop j'ai fait qqch d'assez standard.
je doit partir bouffer on me met a la porte de mon bureau mais je revient vite
merci pour le lien vers le howto
++
Marsh Posté le 30-04-2003 à 13:42:38
voila retour de manger :
bon et bien la doc d'ethernal en fait ca me permet de faire la redirection pour le port 80 ca c'est ok.
mais moi je veut faire du ftp et du https et c'est ca que j'arrive pas a faire.
bien evidemment de manière transparente aussi.
Marsh Posté le 30-04-2003 à 13:47:40
cf topic de liens :
http://www.ac-creteil.fr/reseaux/S [...] squid.html
(chapitre 20)
Marsh Posté le 30-04-2003 à 13:51:23
je connait ce site et c'est exactement ce que j'ai fait.
mon pb c'est pour le ftp et https.
bon c pas grave j vais ouvrir un autre topic paskeu ici c pas mon topic en +
Marsh Posté le 30-04-2003 à 14:25:51
Sebounet a écrit : je connait ce site et c'est exactement ce que j'ai fait. |
bah oui tu ne peux pas forwarder plussieurs ports vers un seul
j avais eu un pb similaire : forward du port 4662 ( ) vers +sieurs IP ---> impossible
Marsh Posté le 30-04-2003 à 14:28:15
mais c nul !
je fait comment alors pour faire du http ET du ftp avec mon proxy de manière transparente ?
impossible ?
si c'est le cas c nul
Marsh Posté le 30-04-2003 à 14:29:01
Sebounet a écrit : mais c nul ! |
Marsh Posté le 30-04-2003 à 14:39:45
bon en fait le truc c'est que proxy transparent = http only et pour le ftp j doit le faire passer en direct.
bon ce qui est con c'est que le ftp de la ou je suis on me le bloque dans la boite.
jpeut y accéder que a travers ma passerelle ou a travers le proxy de la boite.
bon bref fo que je trouve un truc la lol
ya moyen d'ouvrir un autre port sur squid pour le 21 auquel cas je fait une redirection avec iptables ?
sinon bah pourquoi en fixant dans internet explorer j peut me connecter pour ftp ou http sur le port 3128 et pas avec iptables ?
c une restriction d'iptables ?
Marsh Posté le 30-04-2003 à 14:49:39
tomate77 a écrit : |
ça c'est l'inverse
tu peux forwarder plusieurs port vers 1 seul.
ex : un serveur apache et un forward du port 81,82,83,84 vers le port 80 fctera
le problème c'est squid.
Marsh Posté le 30-04-2003 à 14:53:25
nan c bon cf mon autre post.
squid marche bien pour le ftp et le https mais faut que j'indique sont port dans internet explorer.
donc en gros avec iptables j'arrive a faire que du http en transparent.
comment faire la redirection du port 21 et 443 vers le 3128 de squid ?
c'est pas du tcp ?
ya une syntaxe spéciale ?
Marsh Posté le 30-04-2003 à 15:02:12
d'après qq discussions sur une mailing liste :
Citation : l'url demandée par le navigateur à un proxy n'a pas le |
voila pq je pense que le prob est squid.
Squid a été implémenté pour (selon sa config) accepter des requêtes http directes.
Pour le ftp et le https, si il n'a pas été prévu pour, tu resteras avec ton problème.
Marsh Posté le 30-04-2003 à 15:02:34
ethernal a écrit : |
tant pis pour moi alors, je vais aller me flageller d avoir dis autant de conneries :'(
Marsh Posté le 30-04-2003 à 15:03:37
ethernal a écrit : d'après qq discussions sur une mailing liste :
|
non mais quand je met ie avec proxy et beh la ca marche
Marsh Posté le 30-04-2003 à 15:08:06
oui je sais (je reste callllmmmeeeee)
avec ton iptables, tu fais une connexion directe vers le proxy, l'url n'est pas modifiée par ton browser puisqu'il ne sait pas qu'il y a un proxy...
Si ça n'a pas été implémenté dans squid, c'est foutu pour ton ftp.
il existe sans doute d'autres proxy que squid qui eux le font pour le ftp.
voir http://www.ussg.iu.edu/hypermail/l [...] /0047.html
le lien dans le post est mort, mais ça te permettra sans doute de trouver qqch d'intéressant.
sur google :
http://www.google.fr/search?hl=fr& [...] rent&meta=
Marsh Posté le 30-04-2003 à 15:40:16
ethernal a écrit : oui je sais (je reste callllmmmeeeee) |
bon et sinon : est ce ke forwarder plusieurs ports vers un seul et unique autre fonctionne ?????????
Marsh Posté le 30-04-2003 à 15:44:59
[satanée touche tab]
oui, mais pas l'inverse.
comme je disais plus haut, tu sais forwarder par ex les ports 81,82,85,96 sur le port 80 de ton serveur internet, ça fctera niquel.
http://monsite.com:81/
http://monsite.com:82/
http://monsite.com:85/
...
ça fct.
Forwarder par contre le port 4662 vers plusieurs machines, normalement ça fct pas.
pour squid le problème est que
1. il faut que squid identifie le fait que la requête est ftp et pas http
2. il sache qui lui a envoyé cette requête pour pouvoir y répondre.
Hors qd le browser est configuré pour communiquer avec un proxy, il modifie la trame de requête, pour que le proxy la comprenne (je suppose). Pour HTTP, squid sait gérer une requête directe (proxy transparent). Mais pas pour le https ni pour le ftp.
Donc la soluce est d'utiliser un autre proxy pour le FTP qui lui saura gérer les requêtes directes.
Marsh Posté le 30-04-2003 à 15:45:41
oki en effet ethernal après capture de trame, je voit que internet explorer fait une requete ftp a squid en passant par du http.
enfin ca envoie dans une requete http ce dont squid a besoin pour le ftp (login pass etc).
faut que je farfouine dans squid du coup maintenant mais bon pour trouver parmi les 3000 lignes du squid.conf (ok c bien documenté mais putain !!
Marsh Posté le 30-04-2003 à 15:46:35
Squid supports...
proxying and caching of HTTP, FTP, and other URL's
proxying for SSL
cache hierarchies
ICP, HTCP, CARP, Cache Digests
transparent caching
reste a savoir si il supporte le ftp en transparent caching
Marsh Posté le 30-04-2003 à 15:48:20
ethernal a écrit : oui, mais pas l'inverse. |
ok pour apache
mais ici on a un cas ou des protocoles differents sont forwardes sur un seul port
bon je me doute bien ke c est plus du ressort de l appli qui recoit tout ca apres (squid donc )
Marsh Posté le 30-04-2003 à 15:50:10
Citation : Andy Zbikowski wrote: |
Citation : Squid does not currently provide transparent FTP functionality. |
bon bah voila ce que j'ai trouvé en farfouinant.
bon et bien j'ai donc perdu 1 jour pour faire : rien
joli hein lol
en tout cas moi je dit : pour squid
Marsh Posté le 30-04-2003 à 15:51:03
tomate77 a écrit : |
exact, l'appli reçoit tout sur le même port, elle doit savoir distinguer les différents protocols etc...
iptables forward "bêtement".
N'oublions pas la philosophie Linux :
"Faire de petites choses, mais les faire bien !"
Marsh Posté le 30-04-2003 à 16:03:26
ethernal a écrit : |
Marsh Posté le 30-04-2003 à 10:54:58
Salut
g un souci avec iptables :
quand je rentre une regle du type
iptables -A PREROUTING -d 10.10.10.1 -p ALL -j ACCEPT
ca passe (ca matche tous les protocols)
Maintenant, je sais que si je veux filtrer sur un port en particulier, je dois mettre ceci :
iptables -A PREROUTING -d 10.10.10.1 -p ALL --dport 80 -j ACCEPT
HORS, ca ne fonctionne pas : j'ai la reponse suivante :
Unknown Arg "--dport"
J'ai l'impression que cela provient du -p ALL, car si je fais un -p tcp, la regle rentre sans probleme
Qqun pour me confirmer ? me donner une solution ?
Ma solution temporaire (qui me plait bof..) est de faire 2 regles (1 pour tcp et 1 pour udp) mais ca risque de poser pb si dans le futur d'autres protocoles entrent jeu...
Merci