[resolu] nfs à travers un firewall (pf -openbsd)

nfs à travers un firewall (pf -openbsd) [resolu] - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 09-06-2004 à 12:56:22    

Bonjour,
 
J'ai un chtit probleme avec nfs et un firewall.
l'archi est la suivante  
 
 
serveur NFS -------------------openbsd -----------------client 1
                                         \------------------------client 2
 
 
Les clients arrivent bien à monter le nfs, a y accéder pendant 10secondes.  
Au bout de ces 10secondes, la machine cliente indique qu'elles n'arrivent pas à acceder au serveur nfs ... je ne comprends pas du tout [:mlc]
 
 
Sur le serveur NFS j'ai forcé l'utilisation de port particulier pour rpc.nfsd, rpc.statsd et rpc.mountd.
Sur le firewall en "pass all" ca marche impec (merci conti) mais on dirait que nfs utilise d'autre port ... enfin zarb :/
 

Code :
  1. serveur:/home/gug# rpcinfo -p
  2.    program vers proto   port
  3.     100000    2   tcp    111  portmapper
  4.     100000    2   udp    111  portmapper
  5.     100003    2   udp   2049  nfs
  6.     100003    2   tcp   2049  nfs
  7.     100005    1   udp    923  mountd
  8.     100005    2   udp    923  mountd
  9.     100005    1   tcp    923  mountd
  10.     100005    2   tcp    923  mountd
  11.     100024    1   udp   1024  status
  12.     100024    1   tcp   1024  status
  13. serveur:/home/gug#


 
le firewall pf :  
 

Code :
  1. #interfaces
  2. loop= "lo0"
  3. net_if= "de0"
  4. lan_if= "vr0"
  5. dmz_if= "vr1"
  6. #network
  7. lan= "192.168.1.0/24"
  8. dmz= "192.168.0.0/24"
  9. #machine
  10. proxy= "192.168.0.6"
  11. ldap= "192.168.0.5"
  12. #comportement par defaut
  13. set block-policy drop
  14. #normalisation des paquets
  15. #scrub in all
  16. #definition des ports
  17. tcp_dmz_net = "{ 80, 443 }"
  18. #udp_dmz_net = "{ 53 }"
  19. tcp_lan_dmz_proxy = "{ 3128, 22, 5432, 923, 2049, 111, 1024 }"
  20. tcp_lan_dmz_ldap = "{ 389, 22 }"
  21. udp_lan_dmz = "{ 53, 111, 2049, 923, 1024 }"
  22. #adresse non routable
  23. #NO_route= "{ 127.0.0.1/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 255.255.255.255/32 }"
  24. NO_route= "{ 127.0.0.1/8, 172.16.0.0/12, 10.0.0.0/8 }"
  25. #-------------NAT aka TRANSLATION --------------------#
  26. #du proxy vers internet
  27. nat on $net_if from $proxy to any -> $net_if
  28. #des clients vers les serveurs/dmz
  29. #nat on $dmz_if from $lan to $dmz -> $dmz_if
  30. #-------------REGLE DE FILTRAGE-----------------#
  31. #pass all
  32. block all
  33. #Antispoof
  34. antispoof for $loop inet
  35. antispoof for $net_if inet
  36. #Accepte pour le loop
  37. pass in quick on $loop all
  38. pass out quick on $loop all
  39. #Bloque les scans nmap et les tentatives de prise d'empreinte de la pile tcp/ip
  40. block in log quick on $net_if inet proto tcp from any to any flags FUP/FUP
  41. block in log quick on $net_if inet proto tcp from any to any flags SF/SFRA
  42. block in log quick on $net_if inet proto tcp from any to any flags/SFRA
  43. #On bloque les adresses non routables
  44. block in log quick on $net_if from $NO_route to any
  45. block out log quick on $net_if from any to $NO_route
  46. #--------------LOCAL --------------------------#
  47. #Accepte les connections ssh sur lan_if et dmz_if
  48. pass in log quick on $lan_if inet proto tcp from $lan to $lan_if port 22 modulate state
  49. pass in log quick on $dmz_if inet proto tcp from $dmz to $dmz_if port 22 modulate state
  50. #----------- PROXY vers exterieur ----------------#
  51. #TCP tcp_dmz_net
  52. pass in quick on $dmz_if inet proto tcp from $proxy to any port $tcp_dmz_net modulate state
  53. pass out quick on $net_if inet proto tcp from $net_if to any port $tcp_dmz_net modulate state
  54. #UDP udp_dmz_net DNS
  55. pass in quick on $dmz_if inet proto udp from $proxy to any port 53 keep state
  56. pass out quick on $net_if inet proto udp from $net_if to any port 53 keep state
  57. #FTP
  58. pass in quick on $dmz_if inet proto tcp from $proxy to any port 21 modulate state
  59. pass in quick on $dmz_if inet proto tcp from $proxy to any port >1024 modulate state
  60. pass out quick on $net_if inet proto tcp from $net_if to any port 21 modulate state
  61. pass out quick on $net_if inet proto tcp from $net_if to any port >1024 modulate state
  62. #ICMP
  63. pass in quick on $dmz_if inet proto icmp from $proxy to any icmp-type 8 code 0 keep state
  64. pass out quick on $net_if inet proto icmp from $net_if to any icmp-type 8 code 0 keep state
  65. pass in quick on $dmz_if inet proto icmp from $proxy to any icmp-type 11 keep state
  66. pass out quick on $net_if inet proto icmp from $net_if to any icmp-type 11 keep state
  67. #------------ LAN VERS DMZ ---------------------#
  68. #TCP tcp_lan_dmz_proxy
  69. pass in quick on $lan_if inet proto tcp from $lan to $proxy port $tcp_lan_dmz_proxy modulate state
  70. pass out quick on $dmz_if inet proto tcp from $lan to $proxy port $tcp_lan_dmz_proxy modulate state
  71. #TCP LDAP
  72. pass in quick on $lan_if inet proto tcp from $lan to $ldap port $tcp_lan_dmz_ldap modulate state
  73. pass out quick on $dmz_if inet proto tcp from $lan to $ldap port $tcp_lan_dmz_ldap modulate state
  74. #ICMP
  75. pass in quick on $lan_if inet proto icmp from $lan to $dmz icmp-type 8 code 0 keep state
  76. pass out quick on $dmz_if inet proto icmp from $lan to $dmz icmp-type 8 code 0 keep state
  77. pass in quick on $lan_if inet proto icmp from $lan to $dmz icmp-type 11 keep state
  78. pass out quick on $dmz_if inet proto icmp from $lan to $dmz icmp-type 11 keep state
  79. #UDP DNS
  80. pass in quick on $lan_if inet proto udp from $lan to $proxy port $udp_lan_dmz keep state
  81. pass out quick on $dmz_if inet proto udp from $lan to $proxy port $udp_lan_dmz keep state
  82. # ------------ DMZ vers LAN ------------------#
  83. #ICMP
  84. pass in quick on $dmz_if inet proto icmp from $dmz to $lan icmp-type 8 code 0 keep state
  85. pass out quick on $lan_if inet proto icmp from $lan_if to $lan icmp-type 8 code 0 keep state
  86. pass in quick on $dmz_if inet proto icmp from $dmz to $lan icmp-type 11 keep state
  87. pass out quick on $lan_if inet proto icmp from $lan_if to $lan icmp-type 11 keep state
  88. #SSH
  89. pass in quick on $dmz_if inet proto tcp from $dmz to $lan port 22 modulate state
  90. pass out quick on $lan_if inet proto tcp from $lan_if to $lan port 22 modulate state
  91. #----------------- DHCRELAY ------------------#
  92. pass in quick on $lan_if inet proto udp from 0.0.0.0 port 68 to 255.255.255.255 port 67 keep state
  93. #pass out quick on $lan_if inet proto udp from $lan_if port 67 to any port 68
  94. #pass in quick on $dmz_if inet proto udp from 192.168.0.6 to $dmz_if port 67
  95. pass out quick on $dmz_if inet proto udp from $dmz_if port 67 to 192.168.0.6 port 67 keep state
  96. #des serveurs ver le lan
  97. #nat on $lan_if from $dmz to $lan -> $lan_if
  98. #-------------REGLE DE FILTRAGE-----------------#
  99. #pass all
  100. block all
  101. #Antispoof
  102. antispoof for $loop inet
  103. antispoof for $net_if inet
  104. #Accepte pour le loop
  105. pass in quick on $loop all
  106. pass out quick on $loop all
  107. #Bloque les scans nmap et les tentatives de prise d'empreinte de la pile tcp/ip
  108. block in log quick on $net_if inet proto tcp from any to any flags FUP/FUP
  109. block in log quick on $net_if inet proto tcp from any to any flags SF/SFRA
  110. block in log quick on $net_if inet proto tcp from any to any flags/SFRA
  111. #On bloque les adresses non routables
  112. block in log quick on $net_if from $NO_route to any
  113. block out log quick on $net_if from any to $NO_route
  114. #--------------LOCAL --------------------------#
  115. #Accepte les connections ssh sur lan_if et dmz_if
  116. pass in log quick on $lan_if inet proto tcp from $lan to $lan_if port 22 modulate state
  117. pass in log quick on $dmz_if inet proto tcp from $dmz to $dmz_if port 22 modulate state
  118. #----------- PROXY vers exterieur ----------------#
  119. #TCP tcp_dmz_net
  120. pass in quick on $dmz_if inet proto tcp from $proxy to any port $tcp_dmz_net modulate state
  121. pass out quick on $net_if inet proto tcp from $net_if to any port $tcp_dmz_net modulate state
  122. #UDP udp_dmz_net DNS
  123. pass in quick on $dmz_if inet proto udp from $proxy to any port 53 keep state
  124. pass out quick on $net_if inet proto udp from $net_if to any port 53 keep state
  125. #FTP
  126. pass in quick on $dmz_if inet proto tcp from $proxy to any port 21 modulate state
  127. pass in quick on $dmz_if inet proto tcp from $proxy to any port >1024 modulate state
  128. pass out quick on $net_if inet proto tcp from $net_if to any port 21 modulate state
  129. pass out quick on $net_if inet proto tcp from $net_if to any port >1024 modulate state
  130. #ICMP
  131. pass in quick on $dmz_if inet proto icmp from $proxy to any icmp-type 8 code 0 keep state
  132. pass out quick on $net_if inet proto icmp from $net_if to any icmp-type 8 code 0 keep state
  133. pass in quick on $dmz_if inet proto icmp from $proxy to any icmp-type 11 keep state
  134. pass out quick on $net_if inet proto icmp from $net_if to any icmp-type 11 keep state
  135. #------------ LAN VERS DMZ ---------------------#
  136. #TCP tcp_lan_dmz_proxy
  137. pass in quick on $lan_if inet proto tcp from $lan to $proxy port $tcp_lan_dmz_proxy modulate state
  138. pass out quick on $dmz_if inet proto tcp from $lan to $proxy port $tcp_lan_dmz_proxy modulate state
  139. #TCP LDAP
  140. pass in quick on $lan_if inet proto tcp from $lan to $ldap port $tcp_lan_dmz_ldap modulate state
  141. pass out quick on $dmz_if inet proto tcp from $lan to $ldap port $tcp_lan_dmz_ldap modulate state
  142. #ICMP
  143. pass in quick on $lan_if inet proto icmp from $lan to $dmz icmp-type 8 code 0 keep state
  144. pass out quick on $dmz_if inet proto icmp from $lan to $dmz icmp-type 8 code 0 keep state
  145. pass in quick on $lan_if inet proto icmp from $lan to $dmz icmp-type 11 keep state
  146. pass out quick on $dmz_if inet proto icmp from $lan to $dmz icmp-type 11 keep state
  147. #UDP DNS
  148. pass in quick on $lan_if inet proto udp from $lan to $proxy port $udp_lan_dmz keep state
  149. pass out quick on $dmz_if inet proto udp from $lan to $proxy port $udp_lan_dmz keep state
  150. # ------------ DMZ vers LAN ------------------#
  151. #ICMP
  152. pass in quick on $dmz_if inet proto icmp from $dmz to $lan icmp-type 8 code 0 keep state
  153. pass out quick on $lan_if inet proto icmp from $lan_if to $lan icmp-type 8 code 0 keep state
  154. pass in quick on $dmz_if inet proto icmp from $dmz to $lan icmp-type 11 keep state
  155. pass out quick on $lan_if inet proto icmp from $lan_if to $lan icmp-type 11 keep state
  156. #SSH
  157. pass in quick on $dmz_if inet proto tcp from $dmz to $lan port 22 modulate state
  158. pass out quick on $lan_if inet proto tcp from $dmz to $lan port 22 modulate state
  159. #----------------- DHCRELAY ------------------#
  160. pass in quick on $lan_if inet proto udp from 0.0.0.0 port 68 to 255.255.255.255 port 67 keep state
  161. #pass out quick on $lan_if inet proto udp from $lan_if port 67 to any port 68
  162. #pass in quick on $dmz_if inet proto udp from 192.168.0.6 to $dmz_if port 67
  163. pass out quick on $dmz_if inet proto udp from $dmz_if port 67 to 192.168.0.6 port 67 keep state


 
merci d'avance
 
(comment chuis en galere)


Message édité par GUG le 14-06-2004 à 14:21:27
Reply

Marsh Posté le 09-06-2004 à 12:56:22   

Reply

Marsh Posté le 09-06-2004 à 14:37:58    

Au demarrage du client firewall activé, ca monte bien ...
 
J'ai ca :
Jun  9 14:47:47 WKS02 kernel: nfs: server 192.168.0.6 not responding, still trying
Jun  9 14:48:04 WKS02 kernel: nfs: server 192.168.0.6 not responding, still trying
 
 
Lorsque je passe le firewall en pass all :
Jun  9 14:49:17 WKS02 kernel: nfs: server 192.168.0.6 OK
 
:'(
il ne me reste que ca :/


Message édité par GUG le 09-06-2004 à 14:39:55
Reply

Marsh Posté le 09-06-2004 à 18:39:28    

Si en cette chaude soirée, une personne passe par la ;)

Reply

Marsh Posté le 09-06-2004 à 18:42:18    

t'as essaye un sniff histoire de voir quel port il essaye de contacter ???

Reply

Marsh Posté le 09-06-2004 à 18:48:19    

oui mais j'ai rien vu de spécial ...


Message édité par GUG le 09-06-2004 à 18:48:25
Reply

Marsh Posté le 09-06-2004 à 18:49:14    

tu l'as placé à quel niveau ?

Reply

Marsh Posté le 09-06-2004 à 18:52:04    

au niveau du client :/
j'airais du le placer au niveau du firewall plustot :'(

Reply

Marsh Posté le 09-06-2004 à 18:56:27    

ben un peu ouais :D

Reply

Marsh Posté le 09-06-2004 à 18:56:57    

:lol:  
je vais changer de metier moa :'(

Reply

Marsh Posté le 09-06-2004 à 18:57:45    

BTS IG option ARL ?

Reply

Marsh Posté le 09-06-2004 à 18:57:45   

Reply

Marsh Posté le 09-06-2004 à 18:58:34    

oui :/ et j'apprends rien en cours :'(

Reply

Marsh Posté le 09-06-2004 à 21:02:41    

:heink:
C'est quoi ces "block all" et "pass all" dans ton fichier? Je vois pas l'intéret, même pour des tests, étant donné que ce n'est pas stateful.
Tes règles ont l'air ok. Apparement, mountd est bien bindé.
Pour savoir ce qui déconne, utilisation de tcpdump, simultannément (plusieurs consoles) à une visualisation via tcpdump des logs du firewall lorsque tu montes via NFS.
tcpdump -n -e -ttt -i pflog0

Reply

Marsh Posté le 09-06-2004 à 21:55:43    

axey vient de me doner la reponse, je n'avais pas vu honte à moi :'(
 
no-df
    Supprime le bit don't fragment de l'en-tête du paquet IP. Quelques systèmes d'exploitation sont connus pour générer des paquets fragmentés avec le bit don't fragment positionné. Ceci est particulièrement vrai dans le cas de NFS. scrub va bloquer tous les paquets qui sont dans ce cas sauf si l'option no-df est spécifiée. Vu que certains systèmes d'exploitation génèrent des paquets don't fragment avec un champ d'identification à zéeo au niveau de l'en-tête IP, il est recommandé d'utiliser no-df conjointement avec l'option random-id.

Reply

Marsh Posté le 09-06-2004 à 22:18:24    

black_lord a écrit :

BTS IG option ARL ?


 
c'est clair :D je suis passé par là :D
 
sinon bravo axey
 
gourou openBSD [:prosterne]

Reply

Marsh Posté le 09-06-2004 à 22:20:02    

he oui (pour le bts) et clair que axey maitrise bien le bordel :D
 
j'essairais ca lundi ...
 
 
(ps t as cliqué sur le bouton de citation un rang trop haut ;))


Message édité par GUG le 09-06-2004 à 22:20:51
Reply

Marsh Posté le 09-06-2004 à 22:23:20    

GUG a écrit :

he oui (pour le bts) et clair que axey maitrise bien le bordel :D
 
j'essairais ca lundi ...
 
 
(ps t as cliqué sur le bouton de citation un rang trop haut ;))


 
oops [:cupra]
 
c'est quand tes épreuves pratiques ?

Reply

Marsh Posté le 09-06-2004 à 22:24:10    

le 16 soit mercredi :) et demain je part à Limoges  
me restera un ou deux jours pour tout mettre en branle
 
edit : blabla ;)


Message édité par GUG le 09-06-2004 à 22:25:47
Reply

Marsh Posté le 09-06-2004 à 22:26:37    

tu apportes tes machines ?
 
généralement le matos part en couille la veille et le jour même.
 
j'avais eu 19 en pratique :sol:

Reply

Marsh Posté le 09-06-2004 à 22:27:27    

black_lord a écrit :

tu apportes tes machines ?
 
généralement le matos part en couille la veille et le jour même.
 
j'avais eu 19 en pratique :sol:


hehe :) j'ai eu 19 a ma soutenance de stage  :sol:  
J'ai le matos du bahu :/ et en effet c'est pas le pied, je croise les doigts

Reply

Marsh Posté le 09-06-2004 à 22:32:40    

GUG a écrit :

hehe :) j'ai eu 19 a ma soutenance de stage  :sol:  
J'ai le matos du bahu :/ et en effet c'est pas le pied, je croise les doigts


 
pareil :o

Reply

Marsh Posté le 09-06-2004 à 22:39:31    

pas juste :p peut meme pas enfin bref  [:god]  
je vise plustot le 15/16 pour mes pti ;)

Reply

Marsh Posté le 14-06-2004 à 14:20:55    

c'est bon ca marche :) :love:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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