{"id":63,"date":"2009-05-17T16:15:04","date_gmt":"2009-05-17T15:15:04","guid":{"rendered":"http:\/\/blog.brimbelle.org\/?p=63"},"modified":"2009-08-22T10:39:56","modified_gmt":"2009-08-22T09:39:56","slug":"openbsd-pf-ouverture-de-ports-nfs-automatique","status":"publish","type":"post","link":"https:\/\/blog.brimbelle.org\/index.php\/2009\/05\/17\/openbsd-pf-ouverture-de-ports-nfs-automatique\/","title":{"rendered":"OpenBSD &#038; PF : ouverture de ports NFS automatique"},"content":{"rendered":"<p>D&rsquo;habitude, sur le serveur NFS qui me permet de booter en r\u00e9seau mes diff\u00e9rentes stations, je n&rsquo;activais pas PF : tout le trafic pouvait atteindre la machine en entr\u00e9e.<\/p>\n<p>Ayant activ\u00e9 l&rsquo;IPv6 sur toutes mes machines et \u00e9tant donn\u00e9 que la Freebox route tout le trafic IPv6 sur l&rsquo;interne, je suis dans l&rsquo;obligation de restreindre les acc\u00e8s en utilisant PF (en IPv4 je n&rsquo;avais pas ce souci puisqu&rsquo;elles \u00e9taient derri\u00e8re du NAT).<\/p>\n<p>Le probl\u00e8me avec NFS c&rsquo;est que certains ports sont allou\u00e9s de mani\u00e8re statique : nfsd sur le 2049 et le portmapper sur le 111, mais certains autres sont allou\u00e9s dynamiquement : j&rsquo;utilise bootparam et mountd pour ma part.<\/p>\n<p>Il me fallait donc une solution pour d\u00e9tecter au d\u00e9marrage de la machine les ports utilis\u00e9s par ces services.<\/p>\n<p><!--more-->La solution que j&rsquo;utilise est relativement simple. On suppose que PF tourne sur la machine avec un fichier pf.conf valide.<\/p>\n<p>Le principe retenu est d&rsquo;utiliser une ancre (<em>PF anchor<\/em>) plac\u00e9e dans les r\u00e8gles de filtrage :<\/p>\n<p><code>anchor nfs<\/code><\/p>\n<p>Ainsi au d\u00e9marrage de la machine, PF sera d\u00e9marr\u00e9 avec une ancre d&rsquo;affect\u00e9e, \u00e0 cet instant vide.<\/p>\n<p>Ensuite il reste \u00e0 lancer mon script Perl permettant de d\u00e9couvrir les ports utilis\u00e9s et peupler l&rsquo;ancre PF \u00e0 l&rsquo;aide de la commande <em>pfctl<\/em>.<\/p>\n<p>Pour ce faire, j&rsquo;utilise le script de d\u00e9marrage <em>rc.local<\/em> en ajoutant ceci avant le <em>echo &lsquo;.&rsquo;<\/em> final :<\/p>\n<p><code># RPC script<br \/>\nif [ -x \/home\/scripts\/rpcports.pl ] ; then<br \/>\n\/home\/scripts\/rpcports.pl<br \/>\necho -n ' rpcports.pl'<br \/>\nfi<\/code><\/p>\n<p>Attention cependant, ce script s&rsquo;appuie sur la sortie de la commande <em>rpcinfo -p<\/em> et se base sur les longueurs fixes des cha\u00eenes de caract\u00e8res en sortie.<\/p>\n<p>Pour finir, le script <a title=\"rpcports.pl\" href=\"http:\/\/www.brimbelle.org\/mattieu\/stuff\/rpcports.pl\">rpcports.pl<\/a> en question.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>D&rsquo;habitude, sur le serveur NFS qui me permet de booter en r\u00e9seau mes diff\u00e9rentes stations, je n&rsquo;activais pas PF : tout le trafic pouvait atteindre la machine en entr\u00e9e. Ayant activ\u00e9 l&rsquo;IPv6 sur toutes mes machines et \u00e9tant donn\u00e9 que la Freebox route tout le trafic IPv6 sur l&rsquo;interne, je suis dans l&rsquo;obligation de restreindre [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[8,9,6,102,7,10,18],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-informations-pour-les-geeks","tag-anchor","tag-nfs","tag-openbsd","tag-perl","tag-pf","tag-rpc","tag-script"],"_links":{"self":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":0,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.brimbelle.org\/index.php\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}