Script pour lancer le nattage au demarrage

[Fermé]
Signaler
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010
-
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010
-
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

Messages postés
18258
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 septembre 2021
5 365
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
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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.
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
Salut,

Après les choix start et stop manquent les ;;
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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.
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
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

Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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.
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
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
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
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.
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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.
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 554
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
Messages postés
19
Date d'inscription
jeudi 15 avril 2010
Statut
Membre
Dernière intervention
17 juin 2010

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.