IPFW est déjà installé, il s'agît de l'un des pare-feux par défaut sur FreeBSD.
Il possède des jeux de configurations pré-définis que l'on peut utiliser immédiatement pour commencer à sécuriser un poste de travail par exemple.
Voir à ce sujet l'article sur le manuel FreeBSD
Au-delà, il est également possible d'écrire sa propre matrice de flux, en rédigeant un script de règles qui sera ré-exécuté à chaque redémarrage du serveur :
(Passer en root)
sysrc firewall_enable='YES'
Mais attention, ces règles s'effaceront au redémarrage du serveur.
L'utilisation de la commande ipfw directement dans le shell est donc temporaire !
ipfw -q add drop tcp from any to me 55555
ipfw flush
service ipfw stop
sysrc firewall_enable='NO'
Voici un exemple comprenant plusieurs cas de figure d'une matrice de flux, à télécharger et adapter à votre sauce. La liste est, bien entendue, absolument non exhaustive !!
Télécharger « regles-ipfw.sh »
Vous devrez changer le nom de vos interfaces réseaux au début du script, et commenter ou dé-commenter les règles dont vous aurez (ou non) besoin. Voir, rajouter des interfaces réseaux si vous en avez plus de 3
Une fois votre script au point, vous devrez l'ajouter au fichier /etc/rc.conf.
Je rappelle que le rc.conf doit DEJA contenir firewall_enable=YES
Rajouter donc :
sysrc firewall_script='/etc/regles-ipfw.sh'
(Ré)activer le service
service ipfw start
service ipfw restart
ipfw a la capacité de créer du NAT.
Mais pour cela, il faut ajouter :
sysrc gateway_enable=YES
sysrc firewall_enable=YES
sysrc firewall_nat_enable=YES
Les 3 doivent être ACTIFS.
Voir à ce sujet l'article sur le manuel FreeBSD
on peut également faire du DNAT.
Avant cela, envoyer dans le rc.conf les services à exécuter au démarrage :
sysrc gateway_enable=YES
sysrc firewall_enable=YES
sysrc firewall_nat_enable=YES
Puis, dans votre fichier de configuration de règles (par exemple dans celui mis à télécharger : /etc/regles-ipfw.sh), rajouter :
redirect_port IP-DU-LAN:PORT PORT-WAN
Le PORT-WAN est le port sur lequel est reçu la demande de connexion sur le pare-feu
Exemple : Je suis chez moi, sur mon poste A. Je veux pouvoir travailler, en SSH, sur le serveur B (dont l'IP est 192.168.0.200), présent dans l'infrastructure de mon entreprise (derrière un pare-feu).
Je veux, qu'en me connectant à l'adresse IP publique du pare-feu de mon entreprise, sur le port 54333, je puisse accéder au serveur B en ssh (on va rester simple, sur le port 22)
Dans le pare-feu de l'entreprise (/etc/regles-ipfw.sh), je précise:
redirect_port 192.168.0.200:22 54333
On peut aussi préciser un intervalle de ports !
redirect_port 192.168.0.200:2000-3000 4000-5000
BIEN ENTENDU, NE PAS OUBLIER DE CRÉER LES RÈGLES POUR AUTORISER LE TRAFIC A ENTRER !!!
on peut également rediriger une adresse IP privée du LAN sur une adresse publique :
toujours :
sysrc gateway_enable=YES
sysrc firewall_enable=YES
sysrc firewall_nat_enable=YES
Puis, ajouter à votre fichier de conf scripté (/etc/regles-ipfw.sh) :
redirect_address IP-LOCALE IP-PUBLIQUE