[PF] problème de syntaxe .. info non-trouvé dans le man
6 réponses
Stéphane
Bonjour,
Oui je préfère annoncer dès le sujet que je me suis cassé la tete à chercher
avant de poster ici :-)
Mais bon à tout les coups il s'agit d'un truc tout bete qui m'échappe
Voici les lignes concernées du pf.conf :
============================================
iinv = "rl0" # Interface reliee au PC de l'invite
ip_iste = "192.168.1.1" # IP Interface reliee a Stephane
ip_ipat = "192.168.2.1" # IP Interface reliee a Patrick
ip_imar = "192.168.3.1" # IP Interface reliee a Marine
ip_iinv = "192.168.123.1" # IP Interface reliee a l'invite
ip_pub = "62.212.x.x" # IP publique Nerim
ip_imod = "10.0.0.1" # IP Interface reliee au modem
pass in quick on $iinv inet proto tcp from $ip_inv to ! $ip_del flags S/SA
modulate state
pass in quick on $iinv inet proto { udp, icmp } from $ip_inv to ! $ip_del
keep state
============================================
Il s'agit d'un pur problème de syntaxe.
Le soucis ce situe soit à la déclaration de ip_del (mais bon j'en doute,
j'ai repris la MEME syntaxe que sur monn ancienne passerelle où ça
fonctionnait), soit au niveau de "to ! $.."
Au cas où...
Le but des deux dernières lignes est de maintenir les connections
TCP/UDP/ICMP en cours sur l'interface $iinv quand ça vient de l'IP $ip_inv à
destination de tout sauf les IPs des différentes interfaces de la passerelle
(DELTA de son nom).
Biensûr je pourrais remplacer ces 2 lignes par:
block in quick on $iinv from $ip_inv to $ip_del
pass in quick on $iinv inet proto tcp from $ip_inv to any flags S/SA
modulate state
pass in quick on $iinv inet proto { udp, icmp } from $ip_inv to any keep
state
.. et ça revient au meme ...
.. et ça fonctionne...
Mais j'aurais aimé savoir où est-ce que je me plante dans ma premiere idée.
Note 2 : j'ai repris la syntaxe de la macro-list qui était dans le pf.conf de mon ancienne passerelle OpenBSD 3.3
Mais bon, je vois pas pourquoi ça poserai problème puisqu'avant tout il sagit de PF et non de l'OS
Stéphane
Voici les lignes concernées du pf.conf :
=========================================== > iinv = "rl0" # Interface reliee au PC de l'invite ip_iste = "192.168.1.1" # IP Interface reliee a Stephane ip_ipat = "192.168.2.1" # IP Interface reliee a Patrick ip_imar = "192.168.3.1" # IP Interface reliee a Marine ip_iinv = "192.168.123.1" # IP Interface reliee a l'invite ip_pub = "62.212.x.x" # IP publique Nerim ip_imod = "10.0.0.1" # IP Interface reliee au modem
pass in quick on $iinv inet proto tcp from $ip_inv to ! $ip_del flags S/SA modulate state pass in quick on $iinv inet proto { udp, icmp } from $ip_inv to ! $ip_del keep state =========================================== en enlevant purement et simplement le "!" (bien que ça n'aurait pas le sens
voulu), cela ne pose aucun problème. Il est donc clair que cela vient de la syntaxe de la négation.
Merci pour votre aide
Stéphane
Voici les lignes concernées du pf.conf :
=========================================== > iinv = "rl0" # Interface reliee au PC de l'invite
ip_iste = "192.168.1.1" # IP Interface reliee a Stephane
ip_ipat = "192.168.2.1" # IP Interface reliee a Patrick
ip_imar = "192.168.3.1" # IP Interface reliee a Marine
ip_iinv = "192.168.123.1" # IP Interface reliee a l'invite
ip_pub = "62.212.x.x" # IP publique Nerim
ip_imod = "10.0.0.1" # IP Interface reliee au modem
pass in quick on $iinv inet proto tcp from $ip_inv to ! $ip_del flags S/SA
modulate state
pass in quick on $iinv inet proto { udp, icmp } from $ip_inv to ! $ip_del
keep state
===========================================
en enlevant purement et simplement le "!" (bien que ça n'aurait pas le sens
voulu), cela ne pose aucun problème.
Il est donc clair que cela vient de la syntaxe de la négation.
=========================================== > iinv = "rl0" # Interface reliee au PC de l'invite ip_iste = "192.168.1.1" # IP Interface reliee a Stephane ip_ipat = "192.168.2.1" # IP Interface reliee a Patrick ip_imar = "192.168.3.1" # IP Interface reliee a Marine ip_iinv = "192.168.123.1" # IP Interface reliee a l'invite ip_pub = "62.212.x.x" # IP publique Nerim ip_imod = "10.0.0.1" # IP Interface reliee au modem
pass in quick on $iinv inet proto tcp from $ip_inv to ! $ip_del flags S/SA modulate state pass in quick on $iinv inet proto { udp, icmp } from $ip_inv to ! $ip_del keep state =========================================== en enlevant purement et simplement le "!" (bien que ça n'aurait pas le sens
voulu), cela ne pose aucun problème. Il est donc clair que cela vient de la syntaxe de la négation.
Merci pour votre aide
Stéphane
Stéphane
A la simple lecture je ne vois aucune définition de ip_inv.
ip_inv est bel et bien déclaré, j'ai juste oublié de vous le montrer :-)
ip_inv = "192.168.123.123" # IP de l'invite
A la simple lecture je ne vois aucune définition de ip_inv.
ip_inv est bel et bien déclaré, j'ai juste oublié de vous le montrer :-)
dans le man on voit ce genre de syntaxe : ! ($ext_if)
j'ai testé : aucune différence.
Xav
Le 2004-07-02, Stéphane a tapoté :
Il s'agit d'un pur problème de syntaxe. Le soucis ce situe soit à la déclaration de ip_del (mais bon j'en doute, j'ai repris la MEME syntaxe que sur monn ancienne passerelle où ça fonctionnait), soit au niveau de "to ! $.."
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu le fais.
xav
Le 2004-07-02, Stéphane a tapoté :
Il s'agit d'un pur problème de syntaxe.
Le soucis ce situe soit à la déclaration de ip_del (mais bon j'en doute,
j'ai repris la MEME syntaxe que sur monn ancienne passerelle où ça
fonctionnait), soit au niveau de "to ! $.."
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique
qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu
le fais.
Il s'agit d'un pur problème de syntaxe. Le soucis ce situe soit à la déclaration de ip_del (mais bon j'en doute, j'ai repris la MEME syntaxe que sur monn ancienne passerelle où ça fonctionnait), soit au niveau de "to ! $.."
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu le fais.
xav
Stéphane
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu le fais.
effectivement, le problème vient peut etre du fait qu'il s'agit d'une liste ...
J'ai fait d'autres tests : 1) au lieu d'une liste de macro, j'ai testé avec une liste d'IP en déclarant $ip_del de cette façon : ip_del= "{ 192.168.1.1, 192.168.2.1 }" erreur.
2) j'ai alors tenter la régle en mettant directement _une_ IP , soit : pass in quick on $iinv inet proto tcp from $ip_inv to ! 192.168.123.1 flags S/SA modulate state ça fonctionne.
3) j'ai tenté de mettre directement la liste d'IP, soit : pass in quick on $iinv inet proto tcp from $ip_inv to ! { 192.168.123.1, 192.168.3.1 } flags S/SA modulate state erreur.
On peut donc dire (définitivement?) qu'il s'agit bel et bien du fait que la négation n'accepte pas de _liste_.
A propos, le message d'erreur exact est le suivant :
bash-2.05b# pfctl -e -f /etc/pf.conf /etc/pf.conf:104: syntax error pfctl: Syntax error in config file: pf rules not loaded
C'est con tout de meme ... va falloir que je mette une regle par IP au lieu d'une regle avec une liste d'IP ... :-(
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique
qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu
le fais.
effectivement, le problème vient peut etre du fait qu'il s'agit d'une liste
...
J'ai fait d'autres tests :
1) au lieu d'une liste de macro, j'ai testé avec une liste d'IP en déclarant
$ip_del de cette façon : ip_del= "{ 192.168.1.1, 192.168.2.1 }"
erreur.
2) j'ai alors tenter la régle en mettant directement _une_ IP , soit :
pass in quick on $iinv inet proto tcp from $ip_inv to ! 192.168.123.1 flags
S/SA modulate state
ça fonctionne.
3) j'ai tenté de mettre directement la liste d'IP, soit :
pass in quick on $iinv inet proto tcp from $ip_inv to ! { 192.168.123.1,
192.168.3.1 } flags S/SA modulate state
erreur.
On peut donc dire (définitivement?) qu'il s'agit bel et bien du fait que la
négation n'accepte pas de _liste_.
A propos, le message d'erreur exact est le suivant :
bash-2.05b# pfctl -e -f /etc/pf.conf
/etc/pf.conf:104: syntax error
pfctl: Syntax error in config file: pf rules not loaded
C'est con tout de meme ... va falloir que je mette une regle par IP au lieu
d'une regle avec une liste d'IP ... :-(
D'après ce que je comprends de la grammaire du bazar, le ! ne s'applique qu'à des tag, des adresses ou des interfaces. Pas à des listes comme tu le fais.
effectivement, le problème vient peut etre du fait qu'il s'agit d'une liste ...
J'ai fait d'autres tests : 1) au lieu d'une liste de macro, j'ai testé avec une liste d'IP en déclarant $ip_del de cette façon : ip_del= "{ 192.168.1.1, 192.168.2.1 }" erreur.
2) j'ai alors tenter la régle en mettant directement _une_ IP , soit : pass in quick on $iinv inet proto tcp from $ip_inv to ! 192.168.123.1 flags S/SA modulate state ça fonctionne.
3) j'ai tenté de mettre directement la liste d'IP, soit : pass in quick on $iinv inet proto tcp from $ip_inv to ! { 192.168.123.1, 192.168.3.1 } flags S/SA modulate state erreur.
On peut donc dire (définitivement?) qu'il s'agit bel et bien du fait que la négation n'accepte pas de _liste_.
A propos, le message d'erreur exact est le suivant :
bash-2.05b# pfctl -e -f /etc/pf.conf /etc/pf.conf:104: syntax error pfctl: Syntax error in config file: pf rules not loaded
C'est con tout de meme ... va falloir que je mette une regle par IP au lieu d'une regle avec une liste d'IP ... :-(