Petit problème avec IPTABLES

Petit problème avec IPTABLES - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 20-08-2007 à 11:35:32    

Bonjour à tous !
 
          Je cherche à bloquer les adresses du type https://myip:3000/ et https://myip:3001/ "entrant" sur l'interface eth2, donc j'ai mis au point ces règles:
 

Code :
  1. iptables -F
  2. iptables -X
  3. iptables -P INPUT ACCEPT
  4. iptables -P OUTPUT ACCEPT
  5. iptables -P FORWARD ACCEPT
  6. iptables -t nat -F
  7. iptables -t nat -X
  8. iptables -t nat -P PREROUTING ACCEPT
  9. iptables -t nat -P POSTROUTING ACCEPT
  10. iptables -t nat -P OUTPUT ACCEPT
  11. iptables -t mangle -F
  12. iptables -t mangle -X
  13. iptables -t mangle -P PREROUTING ACCEPT
  14. iptables -t mangle -P INPUT ACCEPT
  15. iptables -t mangle -P OUTPUT ACCEPT
  16. iptables -t mangle -P FORWARD ACCEPT
  17. iptables -t mangle -P POSTROUTING ACCEPT
  18. iptables -A INPUT -i lo -j ACCEPT
  19. iptables -A OUTPUT -o lo -j ACCEPT
  20. iptables -A INPUT -i eth0 -j ACCEPT
  21. iptables -A OUTPUT -o eth0 -j ACCEPT
  22. iptables -A INPUT -i eth2 -j ACCEPT
  23. iptables -A OUTPUT -o eth2 -j ACCEPT
  24. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  25. iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  26. iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
  27. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
  28. iptables -A INPUT -p udp --sport 53  -j ACCEPT
  29. iptables -A OUTPUT -p tcp  --dport 53 -j ACCEPT
  30. iptables -A INPUT -p tcp --sport 53  -j ACCEPT
  31. iptables -A OUTPUT -o eth1 -p tcp -m state --state ! INVALID -j ACCEPT
  32. iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  33. iptables -A INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  34. iptables -A INPUT -i eth2 -p tcp  --dport 3001 -j DROP
  35. iptables -A INPUT -p tcp --dport 2145 -i eth1 -j ACCEPT
  36. iptables -A OUTPUT -p tcp --sport 2145 -o eth1 -j ACCEPT
  37. iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
  38. iptables -A INPUT -p udp --dport 123 -j ACCEPT
  39. iptables -A OUTPUT -p udp --sport 123 -j ACCEPT


 
Mais ça ne fonctionne pas et je ne vois pas pourquoi ! ou est le problème ?
 
Merci d'avance !
RedVivi

Reply

Marsh Posté le 20-08-2007 à 11:35:32   

Reply

Marsh Posté le 20-08-2007 à 11:37:59    

:D
 
Sérieux, tu ne vois pas où est le problème ? :D


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:38:32    

Tu prends le problème à l'envers. Le plus simple et le plus sur quand tu configures un firewall, c'est de tout bloquer par défaut et de n'ouvrir que ce qui est pertinent (donc le strict minimum).

Reply

Marsh Posté le 20-08-2007 à 11:39:00    

Ton firewall sert pas à grand chose avec les règles aux lignes 5 à 7, telles qu'elles sont écrites là  :D
 
Tu lui dis en gros "Laisses passer tout"  :D


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:40:15    

RiderCrazy a écrit :

Tu prends le problème à l'envers. Le plus simple et le plus sur quand tu configures un firewall, c'est de tout bloquer par défaut et de n'ouvrir que ce qui est pertinent (donc le strict minimum).


A priori, c'est qu'il voulait faire, il s'est juste trompé sur les lignes 5 à 7. Faut qu'il mette DROP au lieu de ACCEPT et ça ira mieux  ;)


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:41:35    

Elles viennent d'où ces règles ?  faites à la main ou générées par un qconque outil/script ?


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:42:09    

Zzozo a écrit :


A priori, c'est qu'il voulait faire, il s'est juste trompé sur les lignes 5 à 7. Faut qu'il mette DROP au lieu de ACCEPT et ça ira mieux  ;)


 
ou qu'il insère ses règles de DROP et non pas qu'il utilise -A...


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 20-08-2007 à 11:46:57    

J'ai mis accept pour des raisons de tests,  les règles sont écrites à la main.
 
En fait je veux juste bloquer 2 ports sur l'interface eth2 sur laquelle tout est ouvert.

Message cité 1 fois
Message édité par redvivi le 20-08-2007 à 11:47:33
Reply

Marsh Posté le 20-08-2007 à 11:48:39    

redvivi a écrit :

J'ai mis accept pour des raisons de tests,  les règles sont écrites à la main.
 
En fait je veux juste bloquer 2 ports sur l'interface eth2 sur laquelle tout est ouvert.


 
oui enfin la vraie facon de concevoir un pare feux, c'est de tout bloquer sauf ce qu'on veut laisser passer. Après, pour ton test, il faut que tu mettes des -I au lieu des -A sur tes règles qui DROP les ports visés...


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 20-08-2007 à 11:49:33    

Tu risques pas de tester grand chose avec ces lignes là :

Citation :

#iptables -A INPUT -i eth2 -j ACCEPT
#iptables -A OUTPUT -o eth2 -j ACCEPT


 
Elles matchent tous les paquets qui rentrent ou sortent de eth2 avant toutes les autres ...  Tu tenais vraiment à ce qu'ils passent tes paquets, parce qu'entre ça et la Policy par défaut à ACCEPT  :D


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:49:33   

Reply

Marsh Posté le 20-08-2007 à 11:51:13    

Ok merci ! Je suis d'accord avec toi pour la conception des pare-feu...mais c'est ce que j'ai fait pour l"interface eth1 (qui normalement se prends les policy DROP mais qui la sont sur ACCEPT), je considère en effet que eth0 (réseau de backup, eth2 (réseau local) sont sur, je n'ai fait que du filtrage sur eth1


Message édité par redvivi le 20-08-2007 à 11:56:12
Reply

Marsh Posté le 20-08-2007 à 11:52:22    

Zzozo a écrit :

Tu risques pas de tester grand chose avec ces lignes là :

Citation :

#iptables -A INPUT -i eth2 -j ACCEPT
#iptables -A OUTPUT -o eth2 -j ACCEPT


 
Elles matchent tous les paquets qui rentrent ou sortent de eth2 avant toutes les autres ...  Tu tenais vraiment à ce qu'ils passent tes paquets, parce qu'entre ça et la Policy par défaut à ACCEPT  :D


 
 
OOps! Ok merci !

Reply

Marsh Posté le 20-08-2007 à 11:52:34    

redvivi a écrit :


 

Code :
  1. iptables -A INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  2. iptables -A INPUT -i eth2 -p tcp  --dport 3001 -j DROP




 
je vais peut etre etre insistant, mais avec un -I sur ces lignes, ca suffirait pour tester non ? meme si ca permet pas d'arriver à un "vrai" pare feux...


---------------
-_- http://www.scienceshopping.com -_-
Reply

Marsh Posté le 20-08-2007 à 11:53:33    

Zzozo a écrit :

Tu risques pas de tester grand chose avec ces lignes là :

Citation :

#iptables -A INPUT -i eth2 -j ACCEPT
#iptables -A OUTPUT -o eth2 -j ACCEPT


 
Elles matchent tous les paquets qui rentrent ou sortent de eth2 avant toutes les autres ...  Tu tenais vraiment à ce qu'ils passent tes paquets, parce qu'entre ça et la Policy par défaut à ACCEPT  :D


éventuellement, il faut mettre ça à la fin et en tout cas après tes 2 DROP.
iptables fait une lecture des regles de "haut en bas", s'il trouve un règle qui accept tout avant tes drop
ben c'est fini, il passe et ne matche rien :non:


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
Reply

Marsh Posté le 20-08-2007 à 11:55:22    

redvivi a écrit :


 
 
OOps! Ok merci !


Honnêtement, tu ferais mieux de repartir de zéro pour faire un truc clean, mais en ayant surtout décidé et écrit sur une feuille de papier ce que tu dois faire (les ports/proto à filtrer/accepter, ceux à forwarder, etc ...)  
 
Parce que là, ça fait un peu peur ton truc ...


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 11:57:07    

memaster a écrit :


éventuellement, il faut mettre ça à la fin et en tout cas après tes 2 DROP.
iptables fait une lecture des regles de "haut en bas", s'il trouve un règle qui accept tout avant tes drop
ben c'est fini, il passe et ne matche rien :non:


Ici, il a même pas besoin de les mettre en fait, parce que si aucune règle matche, sa Policy est  ACCEPT    c'est plus radical encore :D


---------------
« Ce qui ne vous tue pas vous rend plus fort » F. Nietzsche | « Vise_ la Lune. Si tu rates, au pire, t'es dans la merde » Un poète disparu dans le cercle
Reply

Marsh Posté le 20-08-2007 à 12:05:55    

Code :
  1. iptables -F
  2. iptables -X
  3. iptables -P INPUT DROP
  4. iptables -P OUTPUT DROP
  5. iptables -P FORWARD ACCEPT
  6. iptables -t nat -F
  7. iptables -t nat -X
  8. iptables -t nat -P PREROUTING ACCEPT
  9. iptables -t nat -P POSTROUTING ACCEPT
  10. iptables -t nat -P OUTPUT ACCEPT
  11. iptables -t mangle -F
  12. iptables -t mangle -X
  13. iptables -t mangle -P PREROUTING ACCEPT
  14. iptables -t mangle -P INPUT ACCEPT
  15. iptables -t mangle -P OUTPUT ACCEPT
  16. iptables -t mangle -P FORWARD ACCEPT
  17. iptables -t mangle -P POSTROUTING ACCEPT
  18. iptables -A INPUT -i lo -j ACCEPT
  19. iptables -A OUTPUT -o lo -j ACCEPT
  20. iptables -A INPUT -i eth0 -j ACCEPT
  21. iptables -A OUTPUT -o eth0 -j ACCEPT
  22. iptables -A INPUT -i eth2 -j ACCEPT
  23. iptables -A OUTPUT -o eth2 -j ACCEPT
  24. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  25. iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  26. iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
  27. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
  28. iptables -A INPUT -p udp --sport 53  -j ACCEPT
  29. iptables -A OUTPUT -p tcp  --dport 53 -j ACCEPT
  30. iptables -A INPUT -p tcp --sport 53  -j ACCEPT
  31. iptables -A OUTPUT -o eth1 -p tcp -m state --state ! INVALID -j ACCEPT
  32. iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  33. iptables -I INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  34. iptables -I INPUT -i eth2 -p tcp  --dport 3001 -j DROP
  35. iptables -A INPUT -p tcp --dport 2145 -i eth1 -j ACCEPT
  36. iptables -A OUTPUT -p tcp --sport 2145 -o eth1 -j ACCEPT
  37. iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
  38. iptables -A INPUT -p udp --dport 123 -j ACCEPT
  39. iptables -A OUTPUT -p udp --sport 123 -j ACCEPT


 
C'est mieux comme ça ?


Message édité par redvivi le 20-08-2007 à 13:34:10
Reply

Marsh Posté le 20-08-2007 à 12:39:39    

Remarque non vu que ça ne fonctionne pas...j'ai du louper quelquechose..

Reply

Marsh Posté le 20-08-2007 à 13:22:41    

genre c'est un peu en forward qu'il faut travailler.

Reply

Marsh Posté le 20-08-2007 à 13:30:03    

en forward ? non c'est un serveur qui tourne sur le port 3000 et 3001 du serveur donc je pense que ce serait sur INPUT non?

Reply

Marsh Posté le 20-08-2007 à 14:13:18    

bah on sait pas, on y comprends rien à ton serveur routeur et tes règles sans queue ni tête.

Reply

Marsh Posté le 20-08-2007 à 14:25:21    

Bon....je recommence tout...j'ai 2 processes tournants sur le sereur local sur le port 3000 et 3001, eth2 représente la connexion vers le réseau local, je veux juste ne pas pouvoir accéder aux ports de ses processes depuis le réseau local, autremet dit bloquer les ports 3000 et 3001 "sur" l'interface eth2 en traffic entrant, eth1 represente la connexion vers internet et eth0 un réseau privé (sans importance). Voici la config que j'ai actuellement:
 

Code :
  1. iptables -F
  2. iptables -X
  3. iptables -P INPUT DROP
  4. iptables -P OUTPUT DROP
  5. iptables -P FORWARD ACCEPT
  6. iptables -t nat -F
  7. iptables -t nat -X
  8. iptables -t nat -P PREROUTING ACCEPT
  9. iptables -t nat -P POSTROUTING ACCEPT
  10. iptables -t nat -P OUTPUT ACCEPT
  11. iptables -t mangle -F
  12. iptables -t mangle -X
  13. iptables -t mangle -P PREROUTING ACCEPT
  14. iptables -t mangle -P INPUT ACCEPT
  15. iptables -t mangle -P OUTPUT ACCEPT
  16. iptables -t mangle -P FORWARD ACCEPT
  17. iptables -t mangle -P POSTROUTING ACCEPT
  18. iptables -A INPUT -i lo -j ACCEPT
  19. iptables -A OUTPUT -o lo -j ACCEPT
  20. iptables -A INPUT -i eth0 -j ACCEPT
  21. iptables -A OUTPUT -o eth0 -j ACCEPT
  22. iptables -A INPUT -i eth2 -j ACCEPT
  23. iptables -A OUTPUT -o eth2 -j ACCEPT
  24. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  25. iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  26. iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
  27. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
  28. iptables -A INPUT -p udp --sport 53  -j ACCEPT
  29. iptables -A OUTPUT -p tcp  --dport 53 -j ACCEPT
  30. iptables -A INPUT -p tcp --sport 53  -j ACCEPT
  31. iptables -A OUTPUT -o eth1 -p tcp -m state --state ! INVALID -j ACCEPT
  32. iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  33. iptables -I INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  34. iptables -I INPUT -i eth2 -p tcp  --dport 3001 -j DROP
  35. iptables -A INPUT -p tcp --dport 2145 -i eth1 -j ACCEPT
  36. iptables -A OUTPUT -p tcp --sport 2145 -o eth1 -j ACCEPT
  37. iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
  38. iptables -A INPUT -p udp --dport 123 -j ACCEPT
  39. iptables -A OUTPUT -p udp --sport 123 -j ACCEPT


 

Reply

Marsh Posté le 20-08-2007 à 14:28:22    

bah tu reconfigures tes softs pour n'écouter que sur la bonne adresse ...

Reply

Marsh Posté le 20-08-2007 à 14:31:28    

Malheureusement je ne peux pas choisir sur quelle interface écouter (programme ntop).

Reply

Marsh Posté le 20-08-2007 à 15:15:31    

Là par contre j'ai trouvé quelquechose de curieux, j'ai remplacé (dans mon dernier copier coller de mon script)

Code :
  1. iptables -A INPUT -i eth2 -j ACCEPT
  2. iptables -A OUTPUT -o eth2 -j ACCEPT


 
par  
 

Code :
  1. iptables -A INPUT -i eth2 -j DROP
  2. iptables -A OUTPUT -o eth2 -j DROP


 
j'ai enlevé

Code :
  1. iptables -I INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  2. iptables -I INPUT -i eth2 -p tcp  --dport 3001 -j DROP


 
et j'arrive à me connecter sur les ports 3000 et 3001 !


Message édité par redvivi le 20-08-2007 à 15:17:06
Reply

Marsh Posté le 20-08-2007 à 15:38:44    

redvivi a écrit :

Malheureusement je ne peux pas choisir sur quelle interface écouter (programme ntop).


oh que si. RTFM.

Reply

Marsh Posté le 20-08-2007 à 16:21:32    

Voici tout ce que j'au trouvé dans man ntop:
 

Code :
  1. -i --interface Specifies the network interface or interfaces to be used by ntop for network monitoring.


 
Il n'y a rien d'autres visiblement sur l"interface d'écoute du serveur http.

Reply

Marsh Posté le 20-08-2007 à 16:34:37    

Taz a écrit :

bah tu reconfigures tes softs pour n'écouter que sur la bonne adresse ...


[:quoted]

Reply

Marsh Posté le 20-08-2007 à 16:57:41    

Je veux bien mais avec ntop ce n'est point possible...On trouve juste l'interface de monitoring (capture réseau) mais pas l'interface d'écoute du serveur http

Reply

Marsh Posté le 20-08-2007 à 20:25:49    

Problème résolu, j'ai mis toutes les policies sur DROP et , j'ai mis le INPUT OUTPUT sur eth2 en ACCEPT et j'ai bloqué les ports à l'aide de:
 

Code :
  1. iptables -I INPUT -i eth2 -p tcp  --dport 3000 -j DROP
  2. iptables -I INPUT -i eth2 -p tcp  --dport 3001 -j DROP


Reply

Marsh Posté le 25-08-2007 à 11:07:32    

redvivi a écrit :

Je veux bien mais avec ntop ce n'est point possible...On trouve juste l'interface de monitoring (capture réseau) mais pas l'interface d'écoute du serveur http


man si, seulement faudrait avoir la force de RTFM

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed