Comment lancer un script à la fin de la séquence de démarrage ?

Comment lancer un script à la fin de la séquence de démarrage ? - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 15-07-2007 à 17:46:36    

Bonjour à tous !
 
J'ai un problème, j'ai un script qui nécessite d'être lancé en toute fin de séquence de démarrage de la machue (juste avant le prompt du login), j'ai essayé de bidouiller les priorités avec les liens dans /etc/rcX.d mais ça ne fonctionne pas, j'aurais voulu savoir si lil y avait un moyen de retarder l'éxécution du script (en mettant un compte à rebours intégré au code en lui meme peut etre ) ?
 
Merci d'avance !
RedVivi

Reply

Marsh Posté le 15-07-2007 à 17:46:36   

Reply

Marsh Posté le 15-07-2007 à 17:48:52    

généralement, si le démarrage est de type SysV, c'est rc.local qui est éxécuté en dernier. le mettre à la fin de ce fichier devrait faire ce que tu cherches.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 15-07-2007 à 18:15:45    

Bon..après investigation ce n'est pas le timing qui pose problème, en fait quand le système lance le script j'ai des erreurs (could'nt find /lib/iptables...) tandis que si je le lance en root tout fonctionne !! Que faut il faire !?

Reply

Marsh Posté le 15-07-2007 à 18:17:30    

sans les erreurs exactes et le contenu du script, il est difficile de te répondre.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 15-07-2007 à 18:23:09    

Je sens que je vais paraitre idiot mais je n'arrive pas à retrouver les erreurs affichés dans les logs :s


Message édité par redvivi le 15-07-2007 à 18:23:21
Reply

Marsh Posté le 15-07-2007 à 18:38:35    

Pardon je veux dire que je n'arrive pas à retrouver les erreurs qui one été affichées sur l'écran...

Reply

Marsh Posté le 15-07-2007 à 19:02:57    

Parce qu'il faudrait rediriger les erreurs dans un fichier spécial ?
Parce qu'il faudrait utiliser les trucs prévus pour le logging dans les scripts d'init.
Regarde les autres scripts.
Ou affiche nous ton script pour voir les erreurs.

Reply

Marsh Posté le 15-07-2007 à 19:26:44    

[EDIT] Problème d'encodage de fichier résolu
 
Je vais tacher de trouver un moyen de vous faire parvenir les erreurs.


Message édité par redvivi le 15-07-2007 à 19:28:48
Reply

Marsh Posté le 15-07-2007 à 19:38:15    

Voici les erreurs que j'arrive à voir sur l'écran:
 

Code :
  1. iptables v1.3.6: Couldn't load match 'layer7' : /lib/iptables/libipt_kay.so:Cannot open shared object file: No such file or directory


 
Et il y en a une floppée comme ça, je me demande si ce n'est pas un problème de chargement de modules, mais il me semble qu'ils sont compilés en dur dans le noyau....enfin toujours est il que après m'être loggé ça fonctionne bien !

Reply

Marsh Posté le 16-07-2007 à 09:42:10    

redvivi a écrit :

Voici les erreurs que j'arrive à voir sur l'écran:
 

Code :
  1. iptables v1.3.6: Couldn't load match 'layer7' : /lib/iptables/libipt_kay.so:Cannot open shared object file: No such file or directory


 
Et il y en a une floppée comme ça, je me demande si ce n'est pas un problème de chargement de modules, mais il me semble qu'ils sont compilés en dur dans le noyau....enfin toujours est il que après m'être loggé ça fonctionne bien !


 
mets aussi la ligne de commande pour voir...


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

Marsh Posté le 16-07-2007 à 09:42:10   

Reply

Marsh Posté le 16-07-2007 à 09:50:15    

Voici le script entier:
 

Code :
  1. #Fichier de configuration permettant de définir les politique de routage,
  2. #de pare-feu, et de gestion de la bande passante (QoS)
  3. echo "Activation du routage..."
  4. echo 1 > /proc/sys/net/ipv4/ip_forward
  5. echo "Activation de l'anti IP-Spoofing..."
  6. if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
  7. then
  8. for f in /proc/sys/net/ipv4/conf/*/rp_filter
  9. do
  10. echo 1 > $f
  11. done
  12. fi
  13. # Nous vidons les chaîs :
  14. iptables -F
  15. # Nous supprimons d'éntuelles chaîs personnelles :
  16. iptables -X
  17. # Nous les faisons pointer par déut sur DROP
  18. iptables -P INPUT DROP
  19. iptables -P OUTPUT DROP
  20. iptables -P FORWARD DROP
  21. # Nous faisons de mê avec toutes les autres tables,
  22. # àavoir "nat" et "mangle", mais en les faisant pointer
  23. # par déut sur ACCEPT. Ca ne pose pas de problès
  24. # puisque tout est bloquéu niveau "filter"
  25. iptables -t nat -F
  26. iptables -t nat -X
  27. iptables -t nat -P PREROUTING ACCEPT
  28. iptables -t nat -P POSTROUTING ACCEPT
  29. iptables -t nat -P OUTPUT ACCEPT
  30. iptables -t mangle -F
  31. iptables -t mangle -X
  32. iptables -t mangle -P PREROUTING ACCEPT
  33. iptables -t mangle -P INPUT ACCEPT
  34. iptables -t mangle -P OUTPUT ACCEPT
  35. iptables -t mangle -P FORWARD ACCEPT
  36. iptables -t mangle -P POSTROUTING ACCEPT
  37. # Nous considéns que la machine elle mê est sû# et que les processus locaux peuvent communiquer entre eux
  38. # via l'interface locale :
  39. iptables -A INPUT -i lo -j ACCEPT
  40. iptables -A OUTPUT -o lo -j ACCEPT
  41. # Nous considéns que notre réau local est
  42. # élement sûe qui n'est pas forcént vrai, d'ailleurs).
  43. iptables -A INPUT -i eth0 -j ACCEPT
  44. iptables -A OUTPUT -o eth0 -j ACCEPT
  45. iptables -A INPUT -i eth2 -j ACCEPT
  46. iptables -A OUTPUT -o eth2 -j ACCEPT
  47. # Translation d'adresses pour tout ce qui traverse la passerelle
  48. # en sortant par eth1 (AccèInternet)
  49. echo "Application du partage de connexion Internet..."
  50. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  51. # Toutes les connexions qui sortent du LAN vers le Net
  52. # sont accepté
  53. echo "Mise en place de l'ouverture dynamique de ports..."
  54. iptables -A FORWARD -i eth2 -o eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
  55. # Seules les connexions dé éblies ou en relation avec
  56. # des connexions éblies sont accepté venant du Net vers le LAN
  57. iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
  58. # Autorisation des requês DNS locales
  59. iptables -A OUTPUT -o eth1 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
  60. iptables -A INPUT -i eth1 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  61. # Autorisation des requês DNS sur Internet
  62. iptables -A OUTPUT -o eth2 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
  63. iptables -A INPUT -i eth2 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  64. # Autorisation des requês DWeb de la passerelle
  65. iptables -A OUTPUT -o eth1 -p tcp -m state --state ! INVALID -j ACCEPT
  66. iptables -A INPUT -i eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
  67. # Autorisation des envois SMTP locaux
  68. iptables -A OUTPUT -o eth1 -p tcp --sport 1024: --dport 25 -m state --state ! INVALID -j ACCEPT
  69. iptables -A INPUT -i eth1 -p tcp --sport 25 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  70. # AccèSSH depuis le Net
  71. iptables -A INPUT -p tcp --dport 2145 -i eth1 -j ACCEPT
  72. iptables -A OUTPUT -p tcp --sport 2145 -o eth1 -j ACCEPT
  73. #On accepte la transmission des erreurs de ping
  74. iptables -A INPUT -p icmp -m state --state RELATED -j ACCEPT
  75. # Options de configuration pour limitation:
  76. #  DEV    - correspond au péphéque ethX connectéu modem
  77. #  RATEUP - àositionner àne valeur inféeure àa bande
  78. #            passante montante de la ligne.
  79. #            Pour ma ligne ADSL en 1500/128, RATEUP=90 convient au rythme
  80. #            montant de 128 kbps.
  81. #  RATEDN - àositionner en dessous de la bande passante descendante de
  82. DEV=eth1
  83. RATEUP=4000
  84. RATEDN=2500 # Nettement inféeur àa capacitée la ligne de 1500.
  85.             # On n'a donc pas àimiter le trafic entrant jusqu'àe
  86.             # qu'une meilleure réisation telle que la modification
  87.             # de fenêe TCP soit disponible.
  88. #
  89. # Fin des options de configuration
  90. #
  91. # Remise àé
  92. tc qdisc del dev $DEV root    2> /dev/null > /dev/null
  93. tc qdisc del dev imq0 root 2> /dev/null > /dev/null
  94. iptables -t mangle -D POSTROUTING -o $DEV -j LIMITATION-OUT 2> /dev/null > /dev/null
  95. iptables -t mangle -F LIMITATION-OUT 2> /dev/null > /dev/null
  96. iptables -t mangle -X LIMITATION-OUT 2> /dev/null > /dev/null
  97. iptables -t mangle -D PREROUTING -i $DEV -j LIMITATION-IN 2> /dev/null > /dev/null
  98. iptables -t mangle -F LIMITATION-IN 2> /dev/null > /dev/null
  99. iptables -t mangle -X LIMITATION-IN 2> /dev/null > /dev/null
  100. ip link set imq0 down 2> /dev/null > /dev/null
  101. rmmod imq 2> /dev/null > /dev/null
  102. ###########################################################
  103. #
  104. # Limitation de trafic sortant (limite supéeure àATEUP)
  105. # positionnement de la taille de la file d'éssion pour obtenir
  106. # une latence d'environ 2 secondes pour les paquets de la file
  107. # de faible priorité#i
  108. ip link set dev $DEV qlen 30
  109. # modification de MTU du péphéque sortant.
  110. # - Diminuer la MTU abaisse la latence mais déade le dét en raison de
  111. #   la surcharge IP et TCP.
  112. #ip link set dev $DEV mtu 1000
  113. # ajout de la stratée HTB
  114. tc qdisc add dev $DEV root handle 1: htb default 25
  115. # ajout de la classe de limitation principale
  116. tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATEUP}kbit
  117. # ajout des classes filles:
  118. # - chaque classe dispose AU MOINS de son quota de bande passante. Aucune
  119. #   classe n'est donc éuffépar les autres. Chaque classe peut élement
  120. #   consommer toute la bande passante si aucune autre classe ne l'emploie.
  121. tc class add dev $DEV parent 1:1 classid 1:20 htb rate $[$RATEUP/8]kbit \
  122. ceil ${RATEUP}kbit prio 0
  123. tc class add dev $DEV parent 1:1 classid 1:21 htb rate $[$RATEUP/8]kbit \
  124. ceil ${RATEUP}kbit prio 1
  125. tc class add dev $DEV parent 1:1 classid 1:22 htb rate $[$RATEUP/8]kbit \
  126. ceil ${RATEUP}kbit prio 2
  127. tc class add dev $DEV parent 1:1 classid 1:23 htb rate $[$RATEUP/8]kbit \
  128. ceil ${RATEUP}kbit prio 3
  129. tc class add dev $DEV parent 1:1 classid 1:24 htb rate $[$RATEUP/8]kbit \
  130. ceil ${RATEUP}kbit prio 4
  131. tc class add dev $DEV parent 1:1 classid 1:25 htb rate $[$RATEUP/8]kbit \
  132. ceil ${RATEUP}kbit prio 5
  133. tc class add dev $DEV parent 1:1 classid 1:26 htb rate $[$RATEUP/8]kbit \
  134. ceil ${RATEUP}kbit prio 6
  135. tc class add dev $DEV parent 1:1 classid 1:27 htb rate $[$RATEUP/8]kbit \
  136. ceil ${RATEUP}kbit prio 7
  137. # ajout de la stratée aux classes filles
  138. # - SFQ offre un traitement sensiblement éitable de chaque classe.
  139. tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
  140. tc qdisc add dev $DEV parent 1:21 handle 21: sfq perturb 10
  141. tc qdisc add dev $DEV parent 1:22 handle 22: sfq perturb 10
  142. tc qdisc add dev $DEV parent 1:23 handle 23: sfq perturb 10
  143. tc qdisc add dev $DEV parent 1:24 handle 24: sfq perturb 10
  144. tc qdisc add dev $DEV parent 1:25 handle 25: sfq perturb 10
  145. tc qdisc add dev $DEV parent 1:26 handle 26: sfq perturb 10
  146. tc qdisc add dev $DEV parent 1:27 handle 27: sfq perturb 10
  147. # rértition du trafic en classe via fwmark
  148. # - le trafic est rérti en classes de prioritéuivant l'indicateur
  149. #   fwmark des paquets (ceux-ci sont positionnéavec iptables un peu plus
  150. #   loin). La classe de prioritéar déut a é mise à:25 de telle sorte
  151. #   que les paquets qui ne sont pas marquése retrouvent dans la classe de
  152. #   prioritéa plus faible.
  153. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20
  154. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21
  155. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22
  156. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23
  157. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24
  158. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 25 fw flowid 1:25
  159. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 26 fw flowid 1:26
  160. tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 27 fw flowid 1:27
  161. # ajout de LIMITATION-OUT àa table de modification des paquets d'iptables
  162. # - ceci déare la table employépour filtrer et classer les paquets
  163. iptables -t mangle -N LIMITATION-OUT
  164. iptables -t mangle -I POSTROUTING -o $DEV -j LIMITATION-OUT
  165. # ajout de fwmark pour classer les diffénts types de trafic
  166. # - fwmark est positionnée 20 à7 suivant la classe. 20 correspond àa
  167. #   prioritéa plus forte.
  168. #ATTENTION A L'ORDRE, SCAN DES PAQUETS DE HAUT EN BAS. RETURN PERMET DE PASSER
  169. #AU PAQUET SUIVANT DES QUE LE BON PATTERN EST TROUVE POUR LE STREAM (EVITE UN SCAN COMPLET)
  170. iptables -t mangle -A LIMITATION-OUT -p tcp -m length --length :64 -j MARK --set-mark 20
  171. iptables -t mangle -A LIMITATION-OUT -p tcp -m length --length :64 -j RETURN
  172. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto dns -j MARK --set-mark 20
  173. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto dns -j RETURN
  174. iptables -t mangle -A LIMITATION-OUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 20
  175. iptables -t mangle -A LIMITATION-OUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN
  176. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ntp -j MARK --set-mark 21
  177. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ntp -j RETURN
  178. iptables -t mangle -A LIMITATION-OUT -p icmp -j MARK --set-mark 21
  179. iptables -t mangle -A LIMITATION-OUT -p icmp -j RETURN
  180. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto validcertssl -j MARK --set-mark 21
  181. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto validcertssl -j RETURN
  182. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ssl -j MARK --set-mark 21
  183. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ssl -j RETURN
  184. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto tls -j MARK --set-mark 21
  185. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto tls -j RETURN
  186. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto socks -j MARK --set-mark 21
  187. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto socks -j RETURN
  188. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto aimwebcontent -j MARK --set-mark 21
  189. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto aimwebcontent -j RETURN
  190. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto pop3 -j MARK --set-mark 23
  191. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto pop3 -j RETURN
  192. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto smtp -j MARK --set-mark 23
  193. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto smtp -j RETURN
  194. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto msnmessenger -j MARK --set-mark 23
  195. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto msnmessenger -j RETURN
  196. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto aim -j MARK --set-mark 23
  197. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto aim -j RETURN
  198. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto yahoo -j MARK --set-mark 23
  199. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto yahoo -j RETURN
  200. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto irc -j MARK --set-mark 23
  201. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto irc -j RETURN
  202. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto jabber -j MARK --set-mark 23
  203. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto jabber -j RETURN
  204. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto shoutcast -j MARK --set-mark 24
  205. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto shoutcast -j RETURN
  206. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto live365 -j MARK --set-mark 24
  207. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto live365 -j RETURN
  208. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-rtsp -j MARK --set-mark 24
  209. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-rtsp -j RETURN
  210. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto rtsp -j MARK --set-mark 24
  211. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto rtsp -j RETURN
  212. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto quicktime -j MARK --set-mark 24
  213. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto quicktime -j RETURN
  214. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto httpvideo -j MARK --set-mark 24
  215. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto httpvideo -j RETURN
  216. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto httpaudio -j MARK --set-mark 24
  217. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto httpaudio -j RETURN
  218. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-itunes -j MARK --set-mark 24
  219. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-itunes -j RETURN
  220. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto sip -j MARK --set-mark 24
  221. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto sip -j RETURN
  222. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto skypeout -j MARK --set-mark 24
  223. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto skypeout -j RETURN
  224. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto skypetoskype -j MARK --set-mark 24
  225. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto skypetoskype -j RETURN
  226. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto h323 -j MARK --set-mark 24
  227. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto h323 -j RETURN
  228. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http -j MARK --set-mark 21
  229. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http -j RETURN
  230. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ftp -j MARK --set-mark 26
  231. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto ftp -j RETURN
  232. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-dap -j MARK --set-mark 26
  233. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto http-dap -j RETURN
  234. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto msn-filetransfer -j MARK --set-mark 26
  235. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto msn-filetransfer -j RETURN
  236. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7dir /etc/l7-protocols/ --l7proto bittorrent -j MARK --set-mark 27
  237. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7dir /etc/l7-protocols/ --l7proto bittorrent -j RETURN
  238. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto edonkey -j MARK --set-mark 27
  239. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto edonkey -j RETURN
  240. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto fasttrack -j MARK --set-mark 27
  241. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto fasttrack -j RETURN
  242. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto imesh -j MARK --set-mark 27
  243. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto imesh -j RETURN
  244. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto gnutella -j MARK --set-mark 27
  245. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto gnutella -j RETURN
  246. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto openft -j MARK --set-mark 27
  247. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto openft -j RETURN
  248. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto napster -j MARK --set-mark 27
  249. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto napster -j RETURN
  250. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto mute -j MARK --set-mark 27
  251. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto mute -j RETURN
  252. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto 100bao -j MARK --set-mark 27
  253. iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto 100bao -j RETURN
  254. iptables -t mangle -A LIMITATION-OUT -m mark --mark 0 -j MARK --set-mark 25
  255. # Fin de la limitation sortante
  256. #
  257. ####################################################
  258. echo "Limitation de trafic sortant activéur $DEV.  Dét: ${RATEUP}kbit/sec."
  259. # Démmenter la ligne suivante pour n'avoir que la limitation de trafic montant.
  260. # exit
  261. # Limitation du trafic entrant (dét maximal de RATEDN)
  262. # on force le chargement du module imq
  263. modprobe imq numdevs=1
  264. ip link set imq0 up
  265. # ajout de la stratée de mise en file d'attente
  266. # - par déut une classe 1:21 àaible priorité
  267. tc qdisc add dev imq0 handle 1: root htb default 21
  268. # ajout de la classe de limitation principale
  269. #
  270. tc class add dev imq0 parent 1: classid 1:1 htb rate ${RATEDN}kbit
  271. # ajout des classes filles
  272. # - trafic TCP en 21, le reste en 20
  273. #
  274. tc class add dev imq0 parent 1:1 classid 1:20 htb rate $[$RATEDN/2]kbit \
  275. ceil ${RATEDN}kbit prio 0
  276. tc class add dev imq0 parent 1:1 classid 1:21 htb rate $[$RATEDN/2]kbit \
  277. ceil ${RATEDN}kbit prio 1
  278. # ajout de la stratée de limitation aux classes filles
  279. # - voir les remarques ci-dessus sur SFQ.
  280. tc qdisc add dev imq0 parent 1:20 handle 20: sfq perturb 10
  281. tc qdisc add dev imq0 parent 1:21 handle 21: red limit 1000000 \
  282. min 5000 max 100000 avpkt 1000 burst 50
  283. # rértition du trafic en classe via fwmark
  284. # - le trafic est rérti en classes de prioritéuivant l'indicateur
  285. #   fwmark des paquets (ceux-ci sont positionnéavec iptables un peu plus loin).
  286. tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20
  287. tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21
  288. # ajout de LIMITATION-IN àa table de modification des paquets d'iptables
  289. iptables -t mangle -N LIMITATION-IN
  290. iptables -t mangle -I PREROUTING -i $DEV -j LIMITATION-IN
  291. # ajout de fwmark pour classer les diffénts types de trafic
  292. # - fwmark est positionnée 20 à1 suivant la classe. 20 correspond àa
  293. #   prioritéa plus forte.
  294. # Forte prioritéour les paquets non TCP
  295. iptables -t mangle -A LIMITATION-IN -p ! tcp -j MARK --set-mark 20
  296. iptables -t mangle -A LIMITATION-IN -p ! tcp -j RETURN
  297. # Les petits paquets TCP sont probablement des ACK
  298. iptables -t mangle -A LIMITATION-IN -p tcp -m length --length :64 -j MARK --set-mark 20
  299. iptables -t mangle -A LIMITATION-IN -p tcp -m length --length :64 -j RETURN
  300. iptables -t mangle -A LIMITATION-IN -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 20
  301. iptables -t mangle -A LIMITATION-IN -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN
  302. # Rétition - les paquets sans marque sont positionnéà1 (faible priorité
  303. iptables -t mangle -A LIMITATION-IN -m mark --mark 0 -j MARK --set-mark 21
  304. iptables -t mangle -A LIMITATION-IN -m mark --mark 0 -j RETURN
  305. # on envoie les paquets prédents à'interface imq0.
  306. iptables -t mangle -A LIMITATION-IN -j IMQ
  307. # Fin de la limitation de trafic entrant.
  308. #
  309. ####################################################
  310. echo "Limitation de trafic entrant activésur $DEV.  Dét: ${RATEDN}kbit/sec."

Reply

Marsh Posté le 16-07-2007 à 10:01:42    

redvivi a écrit :


Citation :


iptables -t mangle -A LIMITATION-OUT -m layer7 --l7proto socks -j MARK --set-mark 21




 
Si layer 7 est compilé en dur, je pense qu'il faut pas préciser à iptables de charger le module...


Message édité par _p1c0_ le 16-07-2007 à 10:57:24

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

Marsh Posté le 16-07-2007 à 10:43:24    

Mais dans ce cas pourquoi celà fonctionne-t-il après le login ?

Reply

Marsh Posté le 16-07-2007 à 10:57:53    

redvivi a écrit :

Mais dans ce cas pourquoi celà fonctionne-t-il après le login ?


 
bonne question, tu es sur que les messages d'erreurs ne sont pas dans /var/log/messages ?


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

Marsh Posté le 16-07-2007 à 11:13:25    

Non, j'ai déjà regardé...pour moi je pense que c'est un problème de permissions, il y a un moyen pour exécuter ce script en tant que root ? Ou alors créer un autologin au niveau de la machine et qui lance le script ensuite ?

Reply

Marsh Posté le 16-07-2007 à 11:23:19    

je suis pas sur à 100% mais je pense qu'il est lancé en root au démarrage...
 
edit: t'as essayé en retirant les -m layer7 ?


Message édité par _p1c0_ le 16-07-2007 à 11:23:39

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

Marsh Posté le 16-07-2007 à 11:33:49    

non, je ne suis pas sur place actuellement, mais pour moi ce n'est pas un problème de module vu que la syntaxe du script fonctionne après login, à ce que je sache il n'y a pas de déchargement de module, en plus il est compilé en dur.... Mais je pense que le script est lancé en tant que sys mais pas root.


Message édité par redvivi le 16-07-2007 à 11:34:32
Reply

Marsh Posté le 16-07-2007 à 11:38:32    

Ou alors seul root peut loader des modules ?

Reply

Marsh Posté le 16-07-2007 à 21:11:52    

Up !

Reply

Marsh Posté le 16-07-2007 à 21:18:02    

pour etre sur de qui tu es au démarrage rajoutes ca au debut du script
echo `id`>  /tmp/whoami
et rebootes

Reply

Marsh Posté le 16-07-2007 à 21:20:54    

sinon /lib/iptables/libipt_kay.so, personne connait... t'es sûr ?

Reply

Marsh Posté le 16-07-2007 à 21:50:07    

non j'ai du mal recopier l'erreur, mais c'est ça fait la même chose avec toutes les libs.

Reply

Marsh Posté le 17-07-2007 à 10:16:53    

ben j'ai copier/coller le path dans google et rien [:spamafote]

Reply

Marsh Posté le 17-07-2007 à 10:17:13    

l0ky a écrit :

pour etre sur de qui tu es au démarrage rajoutes ca au debut du script
echo `id`>  /tmp/whoami
et rebootes


Reply

Marsh Posté le 19-07-2007 à 13:51:44    

redvivi a écrit :

Voici les erreurs que j'arrive à voir sur l'écran:
 

Code :
  1. iptables v1.3.6: Couldn't load match 'layer7' : /lib/iptables/libipt_kay.so:Cannot open shared object file: No such file or directory


 
Et il y en a une floppée comme ça, je me demande si ce n'est pas un problème de chargement de modules, mais il me semble qu'ils sont compilés en dur dans le noyau....enfin toujours est il que après m'être loggé ça fonctionne bien !


 
J'ai l'impression que iptables essaye de charger la bibliothèque libipt_kay.so pour utiliser le module layer7 (-m layer7).
Vérifie si la bibliothèque n'est pas située à un autre endroit avec par exemple un

find / -name "libipt_kay*"

Reply

Marsh Posté le 20-07-2007 à 22:24:42    

Non la librairie est bien dans /lib/iptables/....j'ai regardé le truc du whoami, et le script est bien lancé en ROOT

Reply

Marsh Posté le 20-07-2007 à 22:31:51    

J'ai l'erreur exacte:
 

Code :
  1. iptavles v1.3.6: Couldn't load match `layer7': /lib/iptables/lipipt_layer7.so: cannot open shared object file: No such file or directory
  2. Try 'iptables -h' or 'iptables --help' for more information


 
C'est ce type d'erreur là que j'ai, maintenant je ne vois que la fin des erreurs, si ça se trouve la toute première erreur donne la solution mais comme les logs n'indiquent rien, à moins de rediriger l'erreur standard (comment on fait ?) je vois mal comment faire.

Reply

Marsh Posté le 21-07-2007 à 10:29:10    

redvivi a écrit :

J'ai l'erreur exacte:
 

Code :
  1. iptavles v1.3.6: Couldn't load match `layer7': /lib/iptables/lipipt_layer7.so: cannot open shared object file: No such file or directory
  2. Try 'iptables -h' or 'iptables --help' for more information


 
C'est ce type d'erreur là que j'ai, maintenant je ne vois que la fin des erreurs, si ça se trouve la toute première erreur donne la solution mais comme les logs n'indiquent rien, à moins de rediriger l'erreur standard (comment on fait ?) je vois mal comment faire.


 
Pour les logs, met ça au début de ton script :

exec 2> /tmp/err.log


L'option -m indique à iptables qu'il doit utiliser le module layer7, il essaye donc de charger la librairie /lib/iptables/lipipt_layer7.so
Vu ton erreur, soit il ne trouve pas le fichier soit il n'arrive pas à le charger.
Rajoute ceci en début et en fin de ton script :

ls -l /lib/iptables/lipipt_layer7.so >> /tmp/verif.log 2>&1
lsmod >> /tmp/verif.log 2>&1


Vérifie si layer7 est un module :

find /lib/modules/`uname -r` -name "*layer7*"


Si c'est un module, il devrait apparaître dans le résultat du lsmod.

Reply

Marsh Posté le 21-07-2007 à 10:52:24    

Je voudrais tout d'abord vous remercier pour vos réponses, voici ce que contient le fichier verif.log (j'ai enlevé les lignes non significatives:
 

Code :
  1. ls: /lib/iptables/lipipt_layer7.so: No such file or directory
  2. Module                  Size  Used by
  3. button                  6672  0
  4. ac                      5188  0


 

Code :
  1. uhci_hcd               21164  0
  2. usbcore               112644  3 ehci_hcd,uhci_hcd
  3. thermal                13608  0
  4. processor              28840  1 thermal
  5. fan                     4804  0
  6. ls: /lib/iptables/lipipt_layer7.so: No such file or directory


 
Voici err.log:
 

Code :
  1. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  2. nnot open shared object file: No such file or directory
  3. Try `iptables -h' or 'iptables --help' for more information.
  4. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  5. nnot open shared object file: No such file or directory
  6. Try `iptables -h' or 'iptables --help' for more information.
  7. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  8. nnot open shared object file: No such file or directory
  9. Try `iptables -h' or 'iptables --help' for more information.
  10. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  11. nnot open shared object file: No such file or directory
  12. Try `iptables -h' or 'iptables --help' for more information.
  13. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  14. nnot open shared object file: No such file or directory
  15. Try `iptables -h' or 'iptables --help' for more information.
  16. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  17. nnot open shared object file: No such file or directory
  18. Try `iptables -h' or 'iptables --help' for more information.
  19. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  20. nnot open shared object file: No such file or directory
  21. Try `iptables -h' or 'iptables --help' for more information.
  22. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  23. nnot open shared object file: No such file or directory
  24. Try `iptables -h' or 'iptables --help' for more information.
  25. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  26. nnot open shared object file: No such file or directory
  27. Try `iptables -h' or 'iptables --help' for more information.
  28. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  29. nnot open shared object file: No such file or directory
  30. Try `iptables -h' or 'iptables --help' for more information.
  31. iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: ca
  32. nnot open shared object file: No such file or directory
  33. Try `iptables -h' or 'iptables --help' for more information.


 
La commande

Code :
  1. find /lib/modules/`uname -r` -name "*layer7*"

ne trouve rien, ni le lsmod pour le fichier concerné, mais ça me semble logique puisque j'ai tout compilé en dur pour tout ce qui concerne iptables.

Reply

Marsh Posté le 21-07-2007 à 11:07:17    

A priori, vu le résultat du ls, la lib n'est pas dans /lib/iptables.
 
Il faut touver où elle se trouve puis faire un lien dans /lib/iptables.


Message édité par crisl01 le 21-07-2007 à 11:07:50
Reply

Marsh Posté le 21-07-2007 à 11:53:54    

ton iptables ne supporte donc pas le match layer 7...
Le plus simple étant de récupérer les sources d'iptables le patcher si nécessaire avec et le recompiler

Reply

Marsh Posté le 21-07-2007 à 11:55:34    

Reply

Marsh Posté le 21-07-2007 à 11:58:50    

Si il le supporte...je te rappelle que tout fonctionne apres le login

Reply

Marsh Posté le 21-07-2007 à 12:03:01    

si c'est l'iptables standard de debian, je ne penses pas :

[ root@mano ~ ]
# iptables -m layer7 --help
iptables v1.3.6: Couldn't load match `layer7':/lib/iptables/libipt_layer7.so: cannot open shared object file: No such file or directory

 

Try `iptables -h' or 'iptables --help' for more information.
zsh: exit 2     iptables -m layer7 --help

 

[ root@mano ~ ]
# iptables -m foobar --help
iptables v1.3.6: Couldn't load match `foobar':/lib/iptables/libipt_foobar.so: cannot open shared object file: No such file or directory

 

Try `iptables -h' or 'iptables --help' for more information.
zsh: exit 2     iptables -m foobar --help

 

[ root@mano ~ ]
# iptables -m state  --help
iptables v1.3.6

 

Usage: iptables -[AD] chain rule-specification [options]
       iptables -[RI] chain rulenum rule-specification [options]
       iptables -D chain rulenum [options]
       iptables -[LFZ] [chain] [options]
       iptables -[NX] chain
       iptables -E old-chain-name new-chain-name
       iptables -P chain target [options]
       iptables -h (print this help information)

 

Commands:
Either long or short options are allowed.
<skip>

 

[ root@mano ~ ]

 


Ce type de commande iptables -m 'match' --help te permet d'avoir l'aide associé à cette commande. si iptables retourne ce genre d'erreur c'est que ne supportes pas ce match.

 

Donc si ca mache apres le login c'est que ce n'est pas le meme iptables.
Ton PATH en root apres le login peut etre différent du PATH dans ton script au démarrage...

 

Peux tu faire "iptables -m layer7 --help" apres le login et faire which iptables dans ce cas ?
Pour ajouter ce nouveau match il faut le module kernel et que iptables soit compiler avec le support.


Message édité par l0ky le 21-07-2007 à 12:09:12
Reply

Marsh Posté le 21-07-2007 à 12:14:37    

Pour résumer et reprendre depuis le début :
 
1. A partir d'un shell root, tu n'as aucune erreur en exécutant ce script et iptables -L -v -n te rends exactement les règles que tu as installé ?
 
2. As tu recompilé iptables à un moment donné ?
 
3. As tu recompilé le kernel à un moment donné ?
 
4. Peux tu faire un which iptables dans un shell root pour vérifier où il se trouve
 
5. peux tu faire un iptables -m layer7 --help pour vérifier que ton iptables en shell root supporte ce match ?

Reply

Marsh Posté le 21-07-2007 à 12:49:27    

1. Oui
 
2. Oui
 
3. Oui
 
4. ceci me donne

Code :
  1. /usr/local/sbin/iptables


 
5. Voici ce que me donne la commande:

Code :
  1. iptables v1.3.8
  2. Usage: iptables -[AD] chain rule-specification [options]
  3.        iptables -[RI] chain rulenum rule-specification [options]
  4.        iptables -D chain rulenum [options]
  5.        iptables -[LFZ] [chain] [options]
  6.        iptables -[NX] chain
  7.        iptables -E old-chain-name new-chain-name
  8.        iptables -P chain target [options]
  9.        iptables -h (print this help information)
  10. Commands:
  11. Either long or short options are allowed.
  12.   --append  -A chain            Append to chain
  13.   --delete  -D chain            Delete matching rule from chain
  14.   --delete  -D chain rulenum
  15.                                 Delete rule rulenum (1 = first) from chain
  16.   --insert  -I chain [rulenum]
  17.                                 Insert in chain as rulenum (default 1=first)
  18.   --replace -R chain rulenum
  19.                                 Replace rule rulenum (1 = first) in chain
  20.   --list    -L [chain]          List the rules in a chain or all chains
  21.   --flush   -F [chain]          Delete all rules in  chain or all chains
  22.   --zero    -Z [chain]          Zero counters in chain or all chains
  23.   --new     -N chain            Create a new user-defined chain
  24.   --delete-chain
  25.             -X [chain]          Delete a user-defined chain
  26.   --policy  -P chain target
  27.                                 Change policy on chain to target
  28.   --rename-chain
  29.             -E old-chain new-chain
  30.                                 Change chain name, (moving any references)
  31. Options:
  32.   --proto       -p [!] proto    protocol: by number or name, eg. `tcp'
  33.   --source      -s [!] address[/mask]
  34.                                 source specification
  35.   --destination -d [!] address[/mask]
  36.                                 destination specification
  37.   --in-interface -i [!] input name[+]
  38.                                 network interface name ([+] for wildcard)
  39.   --jump        -j target
  40.                                 target for rule (may load target extension)
  41.   --goto      -g chain
  42.                               jump to chain with no return
  43.   --match       -m match
  44.                                 extended match (may load extension)
  45.   --numeric     -n              numeric output of addresses and ports
  46.   --out-interface -o [!] output name[+]
  47.                                 network interface name ([+] for wildcard)
  48.   --table       -t table        table to manipulate (default: `filter')
  49.   --verbose     -v              verbose mode
  50.   --line-numbers                print line numbers when listing
  51.   --exact       -x              expand numbers (display exact values)
  52. [!] --fragment  -f              match second or further fragments only
  53.   --modprobe=<command>          try to insert modules using this command
  54.   --set-counters PKTS BYTES     set the counter during insert/append
  55. [!] --version   -V              print package version.
  56. LAYER7 match v1.3.8 options:
  57. --l7dir <directory>  : Look for patterns here instead of /etc/l7-protocols/
  58.                        (--l7dir must be specified before --l7proto if used!)
  59. --l7proto [!] <name> : Match the protocol defined in /etc/l7-protocols/name.pat


 
J'ai une information interessante: effectivement les librairies étaient dans /usr/local et pas dans /lib/modules, j'ai fait des liens et maintenant il trouve les librairies MAIS:
 
- Quand je le lance avec rc.local, voici ce que j'ai dans err.log:

Code :
  1. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  2. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  3. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  4. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  5. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  6. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  7. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  8. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  9. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  10. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  11. iptables: match `layer7' v1.3.8 (I'm v1.3.6).
  12. iptables: match `layer7' v1.3.8 (I'm v1.3.6).


 
- Quand je le lance en root, aucune erreur dans err.log
 

Message cité 1 fois
Message édité par redvivi le 21-07-2007 à 12:49:56
Reply

Marsh Posté le 21-07-2007 à 13:37:04    

Dans ton script remplace iptables par /usr/local/sbin/iptables

Reply

Marsh Posté le 21-07-2007 à 14:49:34    

redvivi a écrit :

4. ceci me donne

Code :
  1. /usr/local/sbin/iptables



Donc vraissemblablement quand tu es en root ta variable $PATH contient /usr/local/sbin et au boot, ta variable PATH ne le contient pas... De ce fait en root (login) le iptables vient de /usr/local/sbin et pas au boot.

Reply

Marsh Posté le 21-07-2007 à 16:24:10    

Est-ce prudent de remplacer l'iptables de bin par celui de usr/local/bin ?

Reply

Marsh Posté le 21-07-2007 à 16:32:11    

redvivi a écrit :

Est-ce prudent de remplacer l'iptables de bin par celui de usr/local/bin ?


 
ce qui serait plus prudent, c'est de n'avoir qu'un iptables d'installé... Maintenant, si celui qui marche est dans sbin, faut prendre celui là...


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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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