Aller à la recherche

Pare-feu PF sous FreeBSD

PF est le pare-feu officiel d’OpenBSD et fourni en standard avec FreeBSD avec une syntaxe claire et simple à comprendre

Configurer PF le firewall sous FreeBSD

Commençons par activer pf grâce au fichier /etc/rc.conf, on définit aussi le fichier qui contiendra les régles

pf_enable="YES"
pf_rules="/etc/pf.conf"

Lancement du service service pf start

Fichier de règles /etc/pf.conf

# MACROS (variables qui seront remplacées par leurs valeurs dans le reste du fichier)
if="igb0"
addr="100.000.000.000 »

# Adresse ip séparé par des virgules qui seront autorisées à tout faire sur le serveur
trusted= ‘ { 123.123.123.123, 213.213.213.213 } ’

# TABLES Persistant
table <bruteforce> persist file "/var/db/pf/bruteforce"

# REGLES
# Ne filtre pas la boucle locale
set skip on lo0

#Normalisation des paquets entrants (permet d’éviter des paquets malformés volontairement ou non)
scrub in all

#Stop tout par défaut
block all

# Stop les tables persistant et arrête de lire le fichier
block drop in from <bruteforce>

# Protection contre l'ip spoofind
antispoof log quick for $if inet

# Arrête les tentatives de déterminer l'os
block in log quick on $if proto tcp flags FUP/WEUAPRSF
block in log quick on $if proto tcp flags WEUAPRSF/WEUAPRSF
block in log quick on $if proto tcp flags SRAFU/WEUAPRSF
block in log quick on $if proto tcp flags /WEUAPRSF
block in log quick on $if proto tcp flags SR/SR
block in log quick on $if proto tcp flags SF/SF

#On laisse passer sur le tcp udp et icmp les adresses ip de confiance
pass in quick on $if inet proto tcp from $trusted to any flags S/SA keep state
pass in quick on $if inet proto udp from $trusted to any keep state
 pass in quick on $if inet proto icmp from $trusted to any keep state

# Si c’est votre serveur web, on laisse passer les demandes sur le port 80 (www)
pass in quick on $if inet proto tcp from any to $addr port 80 keep state

#On bloque les tentatives de connexion sur des ports sensibles ou l’on ne devrait pas accéder normalement
# ssh de notre serveur ou l’on a changé le port par défaut
block in quick on $if inet proto tcp from any to $addr port ssh flags S/SA ( max 0, overload <bruteforce>)
# smtp ...
block in quick on $if inet proto tcp from any to $addr port smtp flags S/SA ( max 0, overload <bruteforce>
…

Charger les règles

Attention gardez toujours une connexion supplémentaire ouverte à côté au cas où pfctl -e -f /etc/pf.conf

pfctl ou comment contrôler votre pare-feu

Afficher le contenu des tables pfctl -t table -T show

Ajouter une ip à une table (attention perdue après un redémarrage) pfctl -t table -T add 123.123.123.123

Idem pour supprimer une ip d’une table pfctl -t table -T delete 123.123.123.123

Voilà un point de départ à adapter à votre serveur en fonction des services fournis par celui-ci.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/5

Fil des commentaires de ce billet

Page top