Bonjour à tous,
J'utilise une vieille machine comme routeur ADSL depuis quelques temps
déjà (obds 3.0), et en passant à OpenBDS 3.4 (réinstallation complète)
j'ai décidé de revoir un peux les configs que j'utilisais. C'est ainsi
que j'ai décidé de passer l'activation de pppoe de /etc/rc.local sur
/etc/netstart en utilisant le script suivant : .
.
.
echo -n "Trying to establish PPPoE DSL"; ppp -ddial pppoe for i in 19 18
17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0; do
sleep 5
echo -n.$i"
if /usr/local/sbin/adsl-status>/dev/null; then
break
fi
done
echo
/usr/local/sbin/adsl-status
if [ -z "$IP" ]; then
echo "ADSL link is down."
exit 1
else
echo "ADSL is up, IP address $IP"
exit 0
fi
Ceci fait, j'ai donc décidé de me passer des lancements de services
présents dans mon ppp.linkup, et d'utiliser rc.conf puisque la config
semblait s'y prêter.
L'activation de bind s'est faite sans problèmes, mais pf avait un
comportement bizarre. Un pfctl -sr ne me montrait pas les règles
habituelles, mais plutôt 4 ou 5 règles que j'ai retrouvées dans /etc/rc
insérées dans dans ce qui me semble être le script de lancement de pf.
Voici la section en question :
echo 'setting tty flags'
ttyflags -a
if [ "X${pf}" != X"NO" ]; then
RULES="block all"
RULES="$RULES\npass on lo0"
RULES="$RULES\npass in proto tcp from any to any port 22 keep state"
RULES="$RULES\npass out proto { tcp, udp } from any to any port 53 keep state"
RULES="$RULES\npass out inet proto icmp all icmp-type echoreq keep state"
case `sysctl vfs.mounts.nfs 2>/dev/null` in
*[1-9]*)
# don't kill NFS
RULES="scrub in all no-df\n$RULES"
RULES="$RULES\npass in proto udp from any port { 111, 2049 } to any"
RULES="$RULES\npass out proto udp from any to any port { 111, 2049 }"
;;
esac
echo $RULES | pfctl -f - -e
fi
Ce code se trouvant avant le script de démarrage du réseau, j'ai pensé
que pf ne trouvant pas de connexion active, celui-ci s'activait de façon
restrictive, au détriment de ma config perso.
Si quelqu'un pouvait m'expliquer comment faire en
sorte d'activer pf par le biais de rc.conf dans ce cas de figure, ou du
moins me donner une explication de ce comportement...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
zobe
Slt,
Pourquoi souhaites-tu lancer ta connexion avant le démarrage du réseau ? Parce que tu as une IP dynamique ?
Maintenant pf gère ça très bien !
When specifying an interface name for the translation address as above, the IP address is determined at pf.conf load time, not on the fly. If you are using DHCP to configure your external interface, this can be a problem. If your assigned IP address changes then NAT will continue translating outgoing packets using the old IP address. This will cause outgoing connections to stop functioning. To get around this, you can tell PF to automatically update the translation address by putting parentheses around the interface name: nat on ext_if from int_if/24 to any -> (ext_if) There is one major limitation to doing this: Only the first IP alias on an interface is evaluated when the interface name is placed in parentheses
Avec (ext_if) ton nat sera reloader automatiquement, plus besoin de se servir du ppp.linkup pour recharger le nat.
Slt,
Pourquoi souhaites-tu lancer ta connexion avant le démarrage du réseau
?
Parce que tu as une IP dynamique ?
Maintenant pf gère ça très bien !
When specifying an interface name for the translation address as
above, the IP address is determined at pf.conf load time, not on the
fly. If you are using DHCP to configure your external interface, this
can be a problem. If your assigned IP address changes then NAT will
continue translating outgoing packets using the old IP address. This
will cause outgoing connections to stop functioning. To get around
this, you can tell PF to automatically update the translation address
by putting parentheses around the interface name:
nat on ext_if from int_if/24 to any -> (ext_if)
There is one major limitation to doing this: Only the first IP alias
on an interface is evaluated when the interface name is placed in
parentheses
Avec (ext_if) ton nat sera reloader automatiquement, plus besoin de se
servir du ppp.linkup pour recharger le nat.
Pourquoi souhaites-tu lancer ta connexion avant le démarrage du réseau ? Parce que tu as une IP dynamique ?
Maintenant pf gère ça très bien !
When specifying an interface name for the translation address as above, the IP address is determined at pf.conf load time, not on the fly. If you are using DHCP to configure your external interface, this can be a problem. If your assigned IP address changes then NAT will continue translating outgoing packets using the old IP address. This will cause outgoing connections to stop functioning. To get around this, you can tell PF to automatically update the translation address by putting parentheses around the interface name: nat on ext_if from int_if/24 to any -> (ext_if) There is one major limitation to doing this: Only the first IP alias on an interface is evaluated when the interface name is placed in parentheses
Avec (ext_if) ton nat sera reloader automatiquement, plus besoin de se servir du ppp.linkup pour recharger le nat.
vincent Heurteaux
Pas du tout, comme ma connexion pppoe se lance lors de l'initialisation du réseau (netstart), j'en ai déduis que je devais me trouver dans la même situation que si ma machine était une simple passerelle dans un lan, auquel cas il me serait alors possible de démarrer les services de façon conventionnelle c'est à dire via rc.conf. Si ça fonctionne pour Bind, ce n'est pas le cas pour PF. Ceci dit mon adresse IP est fixe.
Pas du tout, comme ma connexion pppoe se lance lors de l'initialisation du
réseau (netstart), j'en ai déduis que je devais me trouver dans la même
situation que si ma machine était une simple passerelle dans un lan,
auquel cas il me serait alors possible de démarrer les services de façon
conventionnelle c'est à dire via rc.conf.
Si ça fonctionne pour Bind, ce n'est pas le cas pour PF.
Ceci dit mon adresse IP est fixe.
Pas du tout, comme ma connexion pppoe se lance lors de l'initialisation du réseau (netstart), j'en ai déduis que je devais me trouver dans la même situation que si ma machine était une simple passerelle dans un lan, auquel cas il me serait alors possible de démarrer les services de façon conventionnelle c'est à dire via rc.conf. Si ça fonctionne pour Bind, ce n'est pas le cas pour PF. Ceci dit mon adresse IP est fixe.
mips
On Sat, 10 Jan 2004 23:21:38 +0100 vincent Heurteaux wrote:
Pas du tout, comme ma connexion pppoe se lance lors de l'initialisation du réseau (netstart), j'en ai déduis que je devais me trouver dans la même situation que si ma machine était une simple passerelle dans un lan, auquel cas il me serait alors possible de démarrer les services de façon conventionnelle c'est à dire via rc.conf. Si ça fonctionne pour Bind, ce n'est pas le cas pour PF. Ceci dit mon adresse IP est fixe.
Dans le cas du pppoe, pfctl doit etre lance par ppp.linkup pour que le tunnel soit correctement pris en compte.
mips
On Sat, 10 Jan 2004 23:21:38 +0100
vincent Heurteaux <v.heurteaux@wanadoo.fr> wrote:
Pas du tout, comme ma connexion pppoe se lance lors de
l'initialisation du réseau (netstart), j'en ai déduis que je devais
me trouver dans la même situation que si ma machine était une simple
passerelle dans un lan, auquel cas il me serait alors possible de
démarrer les services de façon conventionnelle c'est à dire via
rc.conf. Si ça fonctionne pour Bind, ce n'est pas le cas pour PF.
Ceci dit mon adresse IP est fixe.
Dans le cas du pppoe, pfctl doit etre lance par ppp.linkup pour que le
tunnel soit correctement pris en compte.
On Sat, 10 Jan 2004 23:21:38 +0100 vincent Heurteaux wrote:
Pas du tout, comme ma connexion pppoe se lance lors de l'initialisation du réseau (netstart), j'en ai déduis que je devais me trouver dans la même situation que si ma machine était une simple passerelle dans un lan, auquel cas il me serait alors possible de démarrer les services de façon conventionnelle c'est à dire via rc.conf. Si ça fonctionne pour Bind, ce n'est pas le cas pour PF. Ceci dit mon adresse IP est fixe.
Dans le cas du pppoe, pfctl doit etre lance par ppp.linkup pour que le tunnel soit correctement pris en compte.