iptables et dns... - Linux et OS Alternatifs
Marsh Posté le 26-08-2005 à 13:47:09
vu la politique par défaut (ACCEPT) tout est autoriser
Pour le DNS c'est UDP en port 53
Marsh Posté le 26-08-2005 à 14:32:59
Voila ce que j'ai:
Chain FORWARD (policy ACCEPT) //Je m'occuperai de ça après...
target prot opt source destination
ACCEPT tcp -- vinc 7.147-200-80.adsl.skynet.be tcp spt:www
ACCEPT tcp -- 7.147-200-80.adsl.skynet.be vinc tcp spt:www
ACCEPT udp -- 7.147-200-80.adsl.skynet.be vinc udp spt:domain
ACCEPT udp -- vinc 7.147-200-80.adsl.skynet.be udp spt:domain
Donc ceci se trouve sur mon portable qui possède Internet.
Sur mon pc de bureau, j'ai mis dans les paramètres de ma carte réseau: passerelle: 192.168.0.1 (donc l'ip du portable) et j'ai mis les 2 dns de mon FAI.
Depuis mon pc de bureau j'arrive à pinger l'adresse Internet (80.200.147.7) mais je n'arrive pas à avoir internet sur Firefox ou IE !
Une idée ?
Marsh Posté le 26-08-2005 à 14:33:33
l0ky a écrit : vu la politique par défaut (ACCEPT) tout est autoriser |
ça utilise pas également le TCP sur le port 53 ?
Marsh Posté le 26-08-2005 à 14:37:38
J'ai mis aussi le tcp mais ça ne change rien...
Qui peut confirmer si le dns utilise le protocol tcp ?
Marsh Posté le 26-08-2005 à 14:40:30
non
Pour lister tes règles fait
iptables -L FORWARD -v -n
et mets dans un bloc fixed pour que ce soit lisible
Ensuite je suis pas sur que tu es bien saisit comment faire des regle iptables
tu met en destination une seule adresse (celle de 7.147-200-80.adsl.skynet.be et le port source en 80) c'est pas ca !
la tu n'autorisera que les paquets provenant de la machine ayant comme nom vinc à destination 7.147-200-80.adsl.skynet.be et ayant comme port source le port 80
ca marchera jamais si tu mets ensuite une politique à DROP
Ensuite a tu activer le routage ?
sysctl -w net.ipv4.ip_forward=1
Regarde ici:
http://christian.caleca.free.fr/netfilter/
Marsh Posté le 26-08-2005 à 15:08:59
Quand je vais sur google, le paquet il est à quel destination ? A destination de google ou de mon FAI (80.200.147.7) ?
Est-ce mieux comme ceci:
Chain FORWARD (policy ACCEPT 14 packets, 826 bytes) |
0.0.0.0/0 ==> je supose que ça veut bien dire que ça accepte toutes les ip ?
Marsh Posté le 26-08-2005 à 15:25:13
vincent0 a écrit : Quand je vais sur google, le paquet il est à quel destination ? A destination de google ou de mon FAI (80.200.147.7) ? |
Bah à destination de google
Sauf si tu utilises un proxy de ton FAI (ce que je penses pas)
vincent0 a écrit :
|
Oui c'est bien toutes les adresses
Tu te plantes pour les ports entre source et destination !
Marsh Posté le 26-08-2005 à 15:26:34
Quand tu fais une requetes sur un serveur Web le port destination est 80
Quand le serveur web te répond c'est le port source qui est 80 !
Marsh Posté le 26-08-2005 à 15:35:30
l0ky a écrit : Quand tu fais une requetes sur un serveur Web le port destination est 80 |
sauf que certains serveurs redirigent les ports et dans ce cas...
la meilleure solution pour une personne qui n'est pas pro mais qui souhaite savoir est "rules builder"... Il y a shorewall, fwbuilder, etc. Personnelement, j'ai personnalisé les scripts shorewall pour un réseau en trois zones (secure, dmz, unsecure) et ça marche bien...
Marsh Posté le 26-08-2005 à 15:39:32
Voila ce que j'ai mais ça ne va toujours pas :
Chain FORWARD (policy ACCEPT 32 packets, 1923 bytes) |
Marsh Posté le 26-08-2005 à 15:40:40
Deja tu n'as pas répondu a ca
l0ky a écrit : |
Et il faudrait également rajouter cette règle pour le nat:
iptables -A POSTROUTING -o INTERFACE_INTERNET -j MASQUERADE
où INTERFACE_INTERNET correspond au nom de l'interface connectée à ton FAI
Marsh Posté le 26-08-2005 à 15:50:58
sysctl -w net.ipv4.ip_forward=1 ==> C'est fait
vinc# iptables -A POSTROUTING -o ppp0 -j MASQUERADE
iptables: No chain/target/match by that name
Marsh Posté le 26-08-2005 à 16:24:19
il manquait "-t nat" et maintenant tout fonctionne, merci...
Pour bloquer tout le reste je doit juste mettre le policy à DROP ?
Marsh Posté le 26-08-2005 à 16:29:32
a oui exact, j'avais oublié la table
sinon oui
mais je te conseilles de lire de la doc sur netfilter/iptables un peu et sur le réseau pour faire un script qui tient la route.
Sinon il existe pas mal de script déja tout fait qui sont pas mal
Marsh Posté le 26-08-2005 à 16:56:07
Il fallait biensur que ça ne fonctionne pas, lol
J'ai donc fait ceci: iptables -P FORWARD DROP
Et voila ce que ça donne:
vinc# iptables -L -v -n |
Le problème, c'est que internet ne va plus mais je sais toujours pinger le 80.200.147.7 !
Marsh Posté le 26-08-2005 à 21:30:18
normal là tu accepte le http et le dns (que en udp d'ailleurs hors que c udp+tcp) et en aucun cas le ping.
Marsh Posté le 26-08-2005 à 21:58:47
désolé mais les requêtes DNS chez moi et dans tous les réseaux que j'ai montés et dont j'ai l'administration se font uniquement en UDP. Les firewalls sont configurés pour n'accepter que l'udp pour le DNS et j'ai jamais eut de probleme.
pour moi du DNS en TCP c'est intrinsèquement trop lourd.
bind écoute effectivment sur le port tcp 53 mais je ne ai jamais vu de client s'en servir.
tcp est utilisé entre autres pour le transfert de zone et les choses de ce type. Je doute qu'il en ai la réelle utilité
Marsh Posté le 27-08-2005 à 14:19:01
J'ai mis le dns en tcp (on sais jamais) mais ça ne va tourjours pas mieux...et je sais pinger mais pas aller sur IE ou Firefox...donc pour moi ça serait un problème de DNS mais je ne voi vraiment pas où est le problème !
# iptables -L -v -n |
Marsh Posté le 27-08-2005 à 14:22:59
192.168.0.1 c'est l'ip de quoi ? De ta machine dans ton LAN ?
et iptables -t nat -L -v -n donne quoi ?
Marsh Posté le 27-08-2005 à 14:32:22
# iptables -t nat -L -v -n |
J'ai donc mon pc portable sur linux qui possède l'ip 192.168.0.1 et qui à la connection internet.
J'ai un pc de bureau qui possède l'ip 192.168.0.2 et j'aimerais bien qu'il dispose d'internet...
Marsh Posté le 27-08-2005 à 14:50:59
Voila donc dans tes règles dans forward il faut mettre 192.168.0.2 et pas .1 car c'est lui l'ip source (edit : ou de destination)
Marsh Posté le 27-08-2005 à 15:02:10
Merci maintenant tout fonctionne...
Et pour info, les dns n'utilisent pas le protocol tcp.
Marsh Posté le 27-08-2005 à 15:14:15
si pour le transfert de zone
Marsh Posté le 27-08-2005 à 15:28:42
J'ai lu en diagonale le sujet donc dsl si j'nefonce des portes ouvertes, mais:
1) tes regles par defaut sont de tout accepté donc il ne sert a rien dans ton cas de rajouter des regles ACCEPT. La seule chose qu'il faut rajouter pour le partage de connexion, c'est le masquerading et l'ip forwarding (ce qui a été fait).
2)je partage souvent ma connexion, et je n'ai jamais eu a m'occuper des dns, ils sont toujours recuperés automatiquement, ou alors, je les mets dans mon /etc/resolv.conf ou dans les proprietés de la connexions sous windows.
3)ton firewall est en bois, là. Il ne sert pour ainsi dire a rien vu que tu acceptes tout. La premiere chose a faire dans un script de firewall, c'est de bloquer TOUT le traffic et d'autoriser ensuite certains flux.
En plus du site que t'a donné l0ky, tu as aussi celui qui est très bon:
http://olivieraj.free.fr/fr/linux/ [...] /firewall/
Marsh Posté le 27-08-2005 à 15:32:35
sebchap -> maintenant le FORWARD est en DROP ! Faut-il aussi que je mettent INPUT et OUTPUT en DROP pour une meilleur sécu ?
Quand j'aurai le temps je lirais les 2 sites sur le réseau.
Marsh Posté le 27-08-2005 à 15:35:02
Oui ça protègera ta passerrelle internet mais dans ce cas il faut absolument autoriser lo en input/outpout
Marsh Posté le 27-08-2005 à 18:07:24
mikala a écrit : non. |
C'est ce que je dis apres
Pour ces besoins l'udp suffit largement
Marsh Posté le 27-08-2005 à 17:59:46
ReplyMarsh Posté le 27-08-2005 à 18:11:51
oui ,j'ai répondu un peu trop vite .
et après flemme d'effacer mon post
Marsh Posté le 27-08-2005 à 18:16:39
mikala a écrit : oui ,j'ai répondu un peu trop vite . |
ca fait bizarre là :
mon post (où je te répond est situé avant) le tien (sans édit ni rien)
Il est bien ce forum, on répond avant que tu postes
Marsh Posté le 18-03-2009 à 09:53:47
Bonjour j'ai moi aussi un soucis de dns et je ne sais pas d'ou viens le probleme :J'utilise un serveur proxy / firewall a 5 interfaces sous vmware
Le proxy me sert d'authentification d'accés sur internet !
Mon interface qui est nater et qui me permet de me connecter sur internet est eth4 : 192.168.247.100
Mon fichier resolv.conf : nameserver 192.168.247.2 cette adresse correspond à la passerelle ( gateway ip adress) qui est configuré dans vmware : => Vmware\Virtual network settings\Nat
Sans iptables j'arrive a me connecter sur internet sans soucis mais dés que j'active mes regles de filtrages j'ai un probléme avec le dns ! Je n'arrive a naviguer que sur les pages du site debian.org que j'ai deja visiter sans les regles de filtrage ( seulement quelques unes ) puis si j'essaye d'aller sur d'autre part aprés 2-3min J'ai ce message qui apparait
Code :
|
Les modules modprobe ip_conntrack,modprobe iptable_nat,modprobe ip_conntrack_ftp sont chargés
Voici une partie de mes regles :
Code :
|
Cela viens t il du fichier resolv.conf ou seulement des regles iptables ?
Merci de votre aide car je galere depuis un moment a trouver l'erreur
Marsh Posté le 18-03-2009 à 09:56:26
Tu as un serveur DNS sur ton pc qui utilise iptables ?
Parce que les chaines input/output c'est pour le traffic à destination/source de la machine.
Si c'est pas le cas faut regarder du côté de la chaine forward
Marsh Posté le 18-03-2009 à 10:06:00
Je@nb a écrit : Tu as un serveur DNS sur ton pc qui utilise iptables ? |
Justement pour pouvoir permettre au FW de sortir sur internet c'est pas en INPUT/OUTPUT ?
Non je n'ai aucun serveur dns, je sais c'est peut etre pas logique de vouloir faire sortir le FW sur internet niveau securité mais c'est juste pour un test important histoire d'avoir une regle dns dans le FW!
Je vais essayer sur la chaine forward
Marsh Posté le 18-03-2009 à 10:13:03
shurik84> Sans déconner, je t'ai déjà dit 100 fois de rester sur ton topic qui contient tout l'historique de tes problèmes , la description précise de ce que tu veux faire, etc... au lieu de faire remonter ces vieux topics
Donc retournes y, merci !
Marsh Posté le 26-08-2005 à 13:25:58
Bonjour,
Je suis loin d'être un pro en réseau mais j'aimerais bien que mon pc portable puissent partager une connection internet pour d'autres pc.
J'ai donc fait ceci:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- vinc 7.147-200-80.adsl.skynet.be tcp spt:www
ACCEPT tcp -- 7.147-200-80.adsl.skynet.be vinc tcp spt:www
Est-ce juste ?
Maintenant il faudrait autoriser le passage des DNS, comment faire ?
Merci...