Script pour lancer le nattage au demarrage
xynthia
Messages postés
20
Statut
Membre
-
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 :
Ensuite j'attribue les droits d'execution au user root:
et enfin j'intégre le script au systéme pour qu'il se lance au demarrage :
et j'ai bien obtenu le resultat suivant :
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
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
-
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 -
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. -
Salut,
Après les choix start et stop manquent les ;; -
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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
-
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. -
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 -
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 -
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
-
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. -
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. -
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.