PF – Configuration de base sous FreeBSD
Démarrage de PF
Pour commencer, pf doit être autoriser à démarrer en ajoutant les lignes suivantes au fichier de configuration /etc/rc.conf :
> pf_enable="YES"
> pflog_enable="YES"
Sous FreeBSD pf est un module du noyau, il est chargeable de la façon suivante :
> sudo kldload pf
en tapant la commande
> sudo pfctl -e
doit donner le résultat :
No ALTQ support in kernel
ALTQ related functions disabled
pf enabled
Pour démarrer pf :
> sudo /etc/rc.d/pf start
et pour l’arrêter
> sudo /etc/rc.d/pf stop
Règles minimales
Fichier de configuration
Le fichier de configuration de PF se situe dans /etc et se nomme pf.conf.
En y écrivant les lignes suivantes, on dispose d’une configuration minimaliste du firewall :
> block in all pass out all keep state
La première ligne interdit tout trafic sortant. La seconde autorise toutes les requêtes sortantes et les réponses qui leur sont liées. PF garde un état (keep state) des demandes afin d’autoriser les réponses.
Chargement des règles
> sudo pfctl -ef /etc/pf.conf
Définition de macros
Dans l’ensemble de règles proposé précédemment, on autorise toutes les demandes sortantes, on peut vouloir être plus précis et n’autoriser que certains protocoles. Au lieu d’écrire une règle pour chaque protocole, il est possible de factoriser en définissant des macros.
> tcp-services = "{ssh, smtp, smtps, domain, www, https, auth, imaps}"
> udp-services = "{domain}"
Ainsi, deux macros ont été définies. Pour autoriser un nouveau protocole, il suffit d’ajouter son port ou son nom tel que défini dans /etc/services. Le fichier de configuration pf.cont réécrit en utilisant les macros est :
> block in all
> pass out proto tcp to any port $tcp\_services
> pass proto udp to any port $udp\_services
Une fois modifié, pf doit prendre en compte ces nouvelles règles :
> sudo pfctl -f /etc/pf.conf
Tweet comments powered by Disqus