Script pour lancer le nattage au demarrage

Fermé
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010 - 8 mai 2010 à 12:17
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010 - 10 mai 2010 à 11:52
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
A voir également:

12 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 mai 2010 à 13:06
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 10:00
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
10 mai 2010 à 10:04
Salut,

Après les choix start et stop manquent les ;;
0
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 10:36
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
10 mai 2010 à 10:46
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 10:53
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
10 mai 2010 à 11:00
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 11:07
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 11:11
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
10 mai 2010 à 11:11
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 11:32
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
10 mai 2010 à 11:35
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
xynthia Messages postés 19 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 17 juin 2010
10 mai 2010 à 11:52
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