Script pour lancer le nattage au demarrage

xynthia Messages postés 20 Statut Membre -  
xynthia Messages postés 20 Statut Membre -
Salut les amis et bon debut de weeckend,
voilà j'utilise ubuntu 9.04 et j'ai reussie à faire le nattage entre mes deux interfaces réseaux pour le partage de la connexion internet.
Mais je suis obligé de faire ça manuellement à chaque demarrage,j'ai donc fait quelque recherches sur internet mais qui ne me satisfont pas,voici ce que j'ai exactement dans mes fichiers de config :
- j'ai crée un fichier /etc/init.d/local et voici son contenu :
#!/bin/sh

case $1 in
start)
# pour activer tout ça
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

stop)
# pour arreter tout ça
iptable -t nat -F
echo 0 > /proc/sys/net/ipv4/ip_forward
*)
echo "Usage: /etc/init.d/local start | stop "
exit 1
;;
esac
exit 0

Ensuite j'attribue les droits d'execution au user root:
chmod 755 /etc/init.d/local

et enfin j'intégre le script au systéme pour qu'il se lance au demarrage :
update-rc.d local defaults

et j'ai bien obtenu le resultat suivant :
update-rc.d: warning: /etc/init.d/local missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/local ...
   /etc/rc0.d/K20local -> ../init.d/local
   /etc/rc1.d/K20local -> ../init.d/local
   /etc/rc6.d/K20local -> ../init.d/local
   /etc/rc2.d/S20local -> ../init.d/local
   /etc/rc3.d/S20local -> ../init.d/local
   /etc/rc4.d/S20local -> ../init.d/local
   /etc/rc5.d/S20local -> ../init.d/local

Mais lorsque je redemarre l'ordinateur le nattage n'est pas activer automatiquement,là je ne comprend plus
SVP les amis un coup de main.
merci d'avance

12 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    mettre une trace au début du script pour voir si il démarre
    echo $(date) $0 > /log

    ou essayer de renommer /etc/rc2.d/S20local en /etc/rc2.d/S99local
    0
  2. xynthia Messages postés 20 Statut Membre
     
    Salut dubcek,
    j'espére que le weeckend a été, voilà comment reconnaitre qu'un script c'est lancé au demarrage de l'ordinateur à partir du serveur car j'ai essayé ta premiere méthode : ( echo $(date) $0 > /log mais je ne sais pas si elle a vraiment marché car aucun message de signalement,idem lorsque je renomme le fichier /etc/rc2.d/S20local.
    Merci pour ta rapide reponse.
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Après les choix start et stop manquent les ;;
    0
  4. xynthia Messages postés 20 Statut Membre
     
    Salut,
    merci pour cette remarque,mais y'a t-il un fichier qui liste tous les scripts
    qui se sont lancés au demarrage car aprés les modifs j'ai vu aucun changement
    ou alors faut seulement faire les tests à partir du client.
    thank's pour cette prompt reponse.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Si tu démarres ton script manuellement ça se passe quoi?
    Affiche le résultat de (à taper dans la même ordre)

    /etc/init.d/local stop
    cat /proc/sys/net/ipv4/ip_forward
    /etc/init.d/local start
    cat /proc/sys/net/ipv4/ip_forward
    /etc/init.d/local

    0
  7. xynthia Messages postés 20 Statut Membre
     
    Le resultat est le même c'est à dire le fichier : /proc/sys/net/ipv4/ip_forward
    contient la valeur 1 lorsque je stop ou je demarre mon script local.
    Merci pour ton aide.
    0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    As-tu corrigé ton script?
    Essai comme ça (j'aimerai bien que tu colles ici ce que tu vois à l'écran, les commandes + le résultat)

    case $1 in
    'start')
    # pour activer tout ça
        iptables -t nat -F
        iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth1 -j MASQUERADE
        echo 1 > /proc/sys/net/ipv4/ip_forward
        ;;
    
    'stop')
    # pour arreter tout ça
        iptable -t nat -F
        echo 0 > /proc/sys/net/ipv4/ip_forward
        ;;
    *)
        echo "Usage: /etc/init.d/local start | stop "
        exit 1
        ;;
    esac
    exit 0
    0
  9. xynthia Messages postés 20 Statut Membre
     
    Rectification, je croyais que les commandes : "invoke-rc.d local stop" et "etc/init.d/stop" avait le même effet car lorsque je fais maintenant :
    "/etc/init.d/stop" on me renvoit le message :

    -bash: /etc/init.d/local: Permission non accordée 


    j'ai donc fais un : chmod 755 /etc/init.d/local

    et lorsque je refais : /etc/init.d/local

    j'ai ceci :

    /etc/init.d/local: 14: Syntax error: ")" unexpected (expecting ";;")

    Merci
    0
  10. xynthia Messages postés 20 Statut Membre
     
    Voici la nouvelle version mon script /etc/init.d/local :

    #!/bin/sh
    
    case $1 in
    start)
    # pour activer tout ça
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -o eth1 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ;;
    stop)
    # pour arreter tout ça
    iptable -t nat -F
    echo 0 > /proc/sys/net/ipv4/ip_forward
    *)
    echo "Usage: /etc/init.d/local start | stop "
    exit 1
    ;;
    esac
    exit 0
    
    0
  11. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Pour le message missing LSB information il fallait regarder ici
    https://wiki.debian.org/LSBInitScripts

    Tu peux regarder dans un script déjà existant pour voir ce que tu dois mettre au début de ton script.
    0
  12. xynthia Messages postés 20 Statut Membre
     
    OK, il y'avait plusieurs erreurs dans le script d'abord le "s" à ajouter a "iptable" aprés le : "stop)" et aussi ;; devait se mettre juste aprés "echo 0"

    Donc lorsque je fais : /etc/init.d/local je n'ai plus aucun message d'erreur,
    mais peut on dire que tout va mieux maintenant ?
    Merci encore pour ton aide.
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Re,

      Fait à nouveau les commandes pour voir (cette fois j'espère que tu vas coller ici le résultat ;-)
      /etc/init.d/local stop
      cat /proc/sys/net/ipv4/ip_forward
      /etc/init.d/local start
      cat /proc/sys/net/ipv4/ip_forward
      /etc/init.d/local
      0
  13. xynthia Messages postés 20 Statut Membre
     
    OK,
    lorsque je stop le script le fichier ip_forward passe à 0
    lorsque je le start le fichier passe à 1
    je crois que ca veut dire que tout est bon.
    Merci pour tes précieux conseils
    en fait j'ai un serveur vpn que j'ai configuré avec openswan et des clients ipsec
    sur windows s'authentifient et ont accés à internet.
    je vais maintenant pouvoir passé à l'accounting.
    Merci encore et à bientôt j'espére.
    0