problème entre ntp et iptables

problème entre ntp et iptables - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 06-10-2007 à 16:24:31    

Salut à tous !
 
         Je rencontre un problème sur une passerelle/firewall Debian avec openntp, quand j'utilise ntpdate-debian avec le script de firewalling ci-joint, impossible d'obtenir une synchronisation avec les serveurs internet (Operation non permitted), maintenant si j'ouvre toutes les portes du firewall tout fonctionne, pourtant j'ai ouvert les ports 123 tcp/udp (normalement udp mais au cas ou j'ai mis le tcp) Voici mon script de firewalling qui bloque le ntp:
 

Code :
  1. # Nous vidons les chaînes:
  2. iptables -F
  3. # Nous supprimons d'éventuelles chaînes personnelles :
  4. iptables -X
  5. # Nous les faisons pointer par défaut sur DROP
  6. iptables -P INPUT DROP
  7. iptables -P OUTPUT DROP
  8. iptables -P FORWARD DROP
  9. # Nous faisons de même avec toutes les autres tables,
  10. #à savoir "nat" et "mangle", mais en les faisant pointer
  11. # par défaut sur ACCEPT. Ca ne pose pas de problèmes
  12. # puisque tout est bloqué au niveau "filter"
  13. iptables -t nat -F
  14. iptables -t nat -X
  15. iptables -t nat -P PREROUTING ACCEPT
  16. iptables -t nat -P POSTROUTING ACCEPT
  17. iptables -t nat -P OUTPUT ACCEPT
  18. iptables -t mangle -F
  19. iptables -t mangle -X
  20. iptables -t mangle -P PREROUTING ACCEPT
  21. iptables -t mangle -P INPUT ACCEPT
  22. iptables -t mangle -P OUTPUT ACCEPT
  23. iptables -t mangle -P FORWARD ACCEPT
  24. iptables -t mangle -P POSTROUTING ACCEPT
  25. # Nous considérons que la machine elle-même est sûre
  26. # et que les processus locaux peuvent communiquer entre eux
  27. # via l'interface locale :
  28. iptables -A INPUT -i lo -j ACCEPT
  29. iptables -A OUTPUT -o lo -j ACCEPT
  30. # Nous considérons que notre réseau local est sûr
  31. iptables -A INPUT -i eth0 -j ACCEPT
  32. iptables -A OUTPUT -o eth0 -j ACCEPT
  33. iptables -A INPUT -i eth2 -j ACCEPT
  34. iptables -A OUTPUT -o eth2 -j ACCEPT
  35. # Translation d'adresses pour tout ce qui traverse la passerelle
  36. # en sortant par eth1 (Accès Internet)
  37. #echo " "
  38. #echo "Application du partage de connexion Internet..."
  39. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  40. # Toutes les connexions qui sortent du LAN vers le Net
  41. # sont acceptées
  42. #echo "Mise en place de l'ouverture dynamique de ports..."
  43. iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  44. # Seules les connexions déja établies ou en relation avec
  45. # des connexions établies sont acceptées venant du Net vers le LAN
  46. iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
  47. # Autorisation des requêtes DNS sur toutes les interfaces
  48. iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
  49. iptables -A INPUT -p udp --sport 53  -j ACCEPT
  50. iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
  51. iptables -A INPUT -p tcp --sport 53  -j ACCEPT
  52. # Accès Internet du serveur
  53. iptables -A OUTPUT -o eth1 -p tcp -m state --state ! INVALID -j ACCEPT
  54. iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  55. #Blocage des outils de monitoring
  56. iptables -I INPUT -i eth1 -p tcp  --dport 3000 -j DROP
  57. iptables -I INPUT -i eth1 -p tcp  --dport 3001 -j DROP
  58. #Autorisation des envois SMTP locaux
  59. iptables -A OUTPUT -o eth1 -p tcp --sport 1024: -d mail.icam.fr --dport 25 -m state --state ! INVALID -j ACCEPT
  60. iptables -A INPUT -i eth1 -p tcp -s mail.icam.fr --sport 25 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  61. #Autorisation des accès SSH depuis le Net
  62. iptables -A INPUT -p tcp --dport 2145 -i eth1 -j ACCEPT
  63. iptables -A OUTPUT -p tcp --sport 2145 -o eth1 -j ACCEPT
  64. #On accepte la transmission des erreurs de ping
  65. iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
  66. #Autorisation du protocole NTP (synchronisation des horloges)
  67. iptables -A INPUT -p udp --dport 123 -j ACCEPT
  68. iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
  69. iptables -A INPUT -p tcp --dport 123 -j ACCEPT
  70. iptables -A OUTPUT -p tcp --sport 123 -j ACCEPT
  71. #Blocage des protocoles
  72. iptables -I FORWARD -m layer7 --l7proto edonkey -j DROP
  73. iptables -I FORWARD -m layer7 --l7proto bittorrent -j DROP
  74. iptables -I INPUT -i eth1 -m layer7 --l7proto edonkey -j DROP
  75. iptables -I OUTPUT -o eth1 -m layer7 --l7proto edonkey -j DROP
  76. iptables -I INPUT -i eth1 -m layer7 --l7proto bittorrent -j DROP
  77. iptables -I OUTPUT -o eth1 -m layer7 --l7proto bittorrent -j DROP
  78. iptables -I INPUT -i eth1 -m layer7 --l7proto dhcp -j DROP
  79. iptables -I OUTPUT -o eth1 -m layer7 --l7proto dhcp -j DROP
  80. iptables -I FORWARD -m layer7 --l7proto dhcp -j DROP
  81. iptables -I FORWARD -m layer7 --l7proto gnutella -j DROP
  82. iptables -I FORWARD -m layer7 --l7proto gnutella -j DROP
  83. iptables -I INPUT -i eth1 -m layer7 --l7proto gnutella -j DROP
  84. iptables -I OUTPUT -o eth1 -m layer7 --l7proto gnutella -j DROP


 
Pour ouvrir les portes je mets les policy en accept et un exit après la définition des policies
 
Merci d'avance !
RedVivi


Message édité par redvivi le 06-10-2007 à 16:24:56
Reply

Marsh Posté le 06-10-2007 à 16:24:31   

Reply

Marsh Posté le 06-10-2007 à 16:33:30    

Déja tu peux utiliser -j LOG pour logguer, ca pourrait t'aider à débugguer et savoir exactement quelle règle drop ton NTP


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 16:35:53    

Si j'ai bien compris :
 - tu as ce firewall, et tu voudrais mettre à jour son horloge mais avec ce script, ca marche pas ?


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 16:37:48    

Ou trouve -t-on les logs dans ce cas ? il faut mettre le -J LOG pour chaque règle ?

Reply

Marsh Posté le 06-10-2007 à 16:37:48    

Tu pourrais mettre le résultat de la commande  
iptables -t filter -L -v -n ?


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 16:39:15    

Tu retrouves dans /var/log
Pour mettre -j LOG, pour une règle précise tu recopies la ligne juste avant et au lieu de mettre -j ACCEPT tu mets -j LOG


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 17:13:50    

Hmmm, je crois avoir trouvé :

 
#Autorisation du protocole NTP (synchronisation des horloges)
    iptables -A INPUT -p udp --dport 123 -j ACCEPT
    iptables -A OUTPUT -p udp --sport 123 -j ACCEPT
    iptables -A INPUT -p tcp --dport 123 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 123 -j ACCEPT


En INPUT c'est --sport 123 et non --dport et inversement en OUTPUT

 

D'ailleurs si j'étais toi  j'utiliserais le 'stateful':
 - je garderais la règle en OUTPUT (avec -m state --state NEW,ESTABLISHED)
 - je ne mettrais rien en INPUT, seulement : -p udp -m state --state ESTABLISHED -j ACCEPT (là tu n'as que pour tcp)

 

et effectivement, tu n'as pas besoin de tcp pour ntp dans ce cas là, c'est uniquement udp.


Message édité par o'gure le 06-10-2007 à 17:17:28

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 18:26:53    

Tu utiliserai le stateful sur le port 123 udp seulement ? pourtant j'ai déjà une règle qui me permet de faire du stateful (si j'ai bien compris, celà consiste à ouvrir "dynamiquement" les ports sur demande de connexion du serveur lui meme vers internet cest sa ?)

Reply

Marsh Posté le 06-10-2007 à 18:31:57    

Tu as une règle pour le stateful effectivement mais tu as précisé le protocol TCP uniquement.

iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT

 

et pour ton problème c'est que tu as inversé les sport/dport...

 

Donc soit tu enlèves -p tcp sur cette ligne, soit tu en refais une autre pour l'UDP. Et oui j'utilise ca. mon squelette est

 

1. politique par défaut : DROP en INPUT, OUTPUT (et forward)
2. j'accepte tout ce qui est ESTABLISHED/RELATED en INPUT, OUTPUT et en FORWARD.
3. J'ouvre un port par un --state NEW en FORWARD (sens LAN->internet) ou en OUTPUT.

 

Le stateful n'est pas uniquement pour l'ouverture de port dynamique (genre FTP avec la négociation de port, ceci utilise l'état RELATED.) mais pour le suivit des protocoles TCP ou UDP eux meme.

 



Message édité par o'gure le 06-10-2007 à 18:32:24

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 18:36:07    

En fait le stateful (sans parler d'ouverture de port dynamique pour FTP par exemple c'est :
 - On autorise les paquets qui sont en l'état NEW dans un sens (donc qui initie une session TCP ou undébut de flux UDP)
 - On autorise automatiquement le trafic retour symétrique.
 
Par exemple dans ton cas tu veux ouvrir le port UDP 123 en output (--dport) et en input (--sport). Si tu fais ca, les équipements d'internet pourront émettre des paquets avec un port source UDP 123 et ces paquets franchiront ton firewall.
 
 
Si on prend le port 80 en TCP en faisant pareil, tous les paquets ayant un port source = 80 depuis internet vers ton PC ne sera pas supprimé par ton firewall. Donc ca remet en cause l'intégralité de ton filtrage.
 
 
=> TOUJOURS mettre du statefull et n'ouvrir dans le sens INTERNET => LAN que si tu mets un service a disposition à internet, et tu filtre uniquement dans ce cas sur le port dport.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 18:36:07   

Reply

Marsh Posté le 06-10-2007 à 18:36:39    

http://christian.caleca.free.fr/netfilter.html


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 20:52:11    

Et je ne sais toujours pas si ca a résolu ton probleme l'inversion --sport et --dport ?? :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 06-10-2007 à 21:04:06    

Heum...j'ai planté mon accès distant, je te dis ça dimanche soir :-s


Message édité par redvivi le 06-10-2007 à 21:16:18
Reply

Marsh Posté le 06-10-2007 à 21:04:45    

[:el g]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 08-10-2007 à 18:52:07    

Finalement l'inversion des sport et dport n'a pas résolu le problème :s

Reply

Marsh Posté le 08-10-2007 à 18:56:32    

tu peux virer tes règles pour NTP et corriger celle là :
 
#
#
iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
 
 
forcément si tu laisses pas l'UDP, sntp marche beaucoup moins bien.

Reply

Marsh Posté le 08-10-2007 à 18:59:14    

pourtant c'est sûr qu'il fallait inverser. T'as regardé en rajoutant des règles identiques avec un --j LOG ?


Message édité par o'gure le 08-10-2007 à 18:59:29

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 13-10-2007 à 14:13:55    

Je comprends pas, j'ai ajouté cette ligne dans mon syslog:

Code :
  1. kern.warning                    /var/log/iptables.log


 
et j'ai ajouté chaque ligne en remplaçant -j DROP par -j LOG --log-prefix="iptables" (--log-level=0) mais rien n'y fait je n'ai pas de trace dans les logs

Reply

Sujets relatifs:

Leave a Replay

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