[BSD][RESOLU] Besoin d'aide sur PF [PFSENSE]

Besoin d'aide sur PF [PFSENSE] [BSD][RESOLU] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-10-2009 à 11:41:40    

Bonjour,
 
Je suis relativement bon connaisseur en linux, mais je dois gérer un nouveau serveur sous l'architecture FreeBSD (Pfsense). Il utilise visiblement pf dans la gestion des paquets ip et du pare - feu.
 
Mon problème est simple, je cherche à bloquer complètement une adresse IP, elle ne doit plus être autorisé a faire quoi que ce soit sur la passerelle (y accéder, être routée, ping etc).
 
Pour simplifier prenons cet exemple :  
10.1.2.50 est l'adresse que je veux bloquer. Elle ne dois plus être autorisée a accéder à 10.1.3.0/24 ni au WAN, ni pinger la passerelle (10.1.2.254) etc...  
10.1.2.0 / 24 est son sous réseau. Le reste du sous réseau ne doit pas être impacté.
10.1.2.254 est l'adresse du serveur PFSENSE dans ce sous réseau.
 
Sous linux je veux bloquer cette IP je fais :

Code :
  1. iptables -I FORWARD 1 -s 10.1.2.50 -j REJECT
  2. iptables -I INPUT 1 -s 10.1.2.50 -j REJECT
  3. iptables -I OUTPUT 1 -s 10.1.2.50 -j REJECT


Et là sous pf, qui se vente d'être verbeux et donc plus simple à comprendre c'est une galère sans nom...
Si j'ai bien compris la règle a rajouter devrait être

Code :
  1. block out quick from 10.1.2.50 to any label "blocage ordi"


Déjà est-ce correct ?
 
Si oui, comment rajouter cette règle, a chaud, simplement via le shell (pas de modification de fichier de conf, le fait que la règle soit perdue au redémarrage n'est pas grave, c'est même un plus).
 
Alors j'ai trouvé via des googlages intense comment rajouter cette règle:

Code :
  1. http://www.pettingers.org/code/sshblack-config.html
  2. echo 'block out quick from 10.1.2.50 to any label "blocage ordi"' | pfctl -f -


 
Sauf qu'en faisant ca, ca me supprime toute mes règles de filtrages déjà existantes.  :pt1cable:  
 
 
Je prends tout message pour m'aider à bloquer une ip avec PF merci. :wahoo:

Message cité 1 fois
Message édité par beridoxy le 29-12-2009 à 19:56:32
Reply

Marsh Posté le 16-10-2009 à 11:41:40   

Reply

Marsh Posté le 16-10-2009 à 12:30:01    

ta règle me semble correcte, oui.
 

Citation :


{ cat /etc/pf.conf; echo 'block out quick from 10.1.2.50 to any label "blocage ordi"'; } | pfctl -f -


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 16-10-2009 à 16:49:10    

Pour simplifier la regle de restriction, tu peux tout simplement l'"écrire comme ca  
 
block quick from 10.1.2.50
 
Dans un fichier de conf, tu peux la mettre au début de tes regles de filtrages et tu recharge ta conf simplement
 
pfctl -F rules -f /etc/pf.conf
 
Avec ce que t'as mis zecrazytux, ta regle vas se mettre a la fin de tes regles de filtrage. Si les paquets envoyés par cette ip correspondant à une règles précédente, pf les laissera passer.  
 
Tu peux aussi utiliser des tables. Tu crée la table au niveau des tes macros, par exemple :
 
table <badguys> persist
 
au début de tes regles, tu block tout ceux qui sont dans la table
 
block quick from <badguys>
 
et puis en fonction de qui tu veux bloquer tu l'ajoute dans la table en temps reel
 
pfctl -t badguyus -T add 10.1.2.50
 

Reply

Marsh Posté le 20-10-2009 à 12:38:00    

Ok, je vais utiliser la deuxième solution.
 
Le problème c'est qu'il n'y a pas de pf.conf statique dans le produit que j'utilise (pfsense).
Il est généré périodiquement à partir d'une configuration XML.
Je dois donc changer le script qui génére le pf.conf périodiquement. Mais ca devrait aller.
 
Je vais ajouter  
table <badguys> persist  
block quick from <badguys>  
 
Et contrôler avec des tables comme tu dis kisscoolz.
 
Je vais tester cela et voir si la table badguys reste bien permanent (j'espere :jap: )ou bien si elle est vidée dès que pfsense recharge à nouveau sa configuration périodiquement.  
 
Merci.
 
(Cependant je suis étonné que pf soit aussi monolithique : on est obligé de recharger toute une conf pour un ajout de règle).


Message édité par beridoxy le 20-10-2009 à 12:41:55
Reply

Marsh Posté le 20-10-2009 à 12:45:43    

Au premier abord, la table badguys en persist reste bien remplie, même si je change les règle du pare feu dans l'interface pfsense.
 
Bon, je reposterai dans quelques jour pour confirmer tout cela, mais en tout cas merci.  :hello:


Message édité par beridoxy le 20-10-2009 à 12:46:03
Reply

Marsh Posté le 20-10-2009 à 13:10:24    

beridoxy a écrit :


Alors j'ai trouvé via des googlages intense comment rajouter cette règle:

Code :
  1. http://www.pettingers.org/code/sshblack-config.html
  2. echo 'block out quick from 10.1.2.50 to any label "blocage ordi"' | pfctl -f -


 
Sauf qu'en faisant ca, ca me supprime toute mes règles de filtrages déjà existantes.  :pt1cable:  
 
 
Je prends tout message pour m'aider à bloquer une ip avec PF merci. :wahoo:


 
 
En regardant le man de pfctl l'option -m empeche les regles existantes d'etre supprimé
 

echo 'block out quick from 10.1.2.50 to any label "blocage ordi"' | pfctl -mf -


 
mais en meme temps si pfsense recharge regulierement les regles, ta regles disparaitra bien avantle prochain reboot ;)


Message édité par kisscoolz le 20-10-2009 à 13:11:32
Reply

Marsh Posté le 21-10-2009 à 11:41:19    

Sinon le mieux c'est d'utiliser une table, ça facilitera encore plus le blocage non-persistant de certaines IP.
Et surtout de modifier ton pf.conf.
Et encore plus de RTFM un peu, pf c'est tellement facile.
 
Faut oublier le mode de fonctionnement à la con d'iptables. avec pf tu peux recharger toutes tes règles sans avoir à tout purger comme un crétin avec iptable.
 
(ET PASSE PAR L'INTERFACE GRAPHIQUE.)
 
Mais sur le fond, j'aurais plutôt bloquer les paquets entrants que sortant.
 
block in quick from 10.1.2.50 to 10.1.3.0/24

Reply

Marsh Posté le 29-12-2009 à 19:54:41    

J'avais envie de conclure sur ce sujet, puisqu'il est résolu et que j'estime que je peux diffuser vu qu'il est en production depuis 1 mois.
 
J'ai effectivement du partir sur une table persistente, pour rajouter et supprimer dynamiquement les IP à bloquer.
 
Vu que j'utilise pfsense qui ne se base pas sur un pf.conf statique. J'ai du changer les scripts qui générent la configuration de pf sous pfsense pour rajouter la règle lié à la table. ( block quick from <nomtable> )
 
Pour ceux qui utilisent pfsense, le fichier "pf.conf" se trouve une fois généré par les scripts, dans /tmp/rules.debug et c'est lui qui est appliqué. (Je répète modifier rules.debug ne sert à rien, vu qu'il va être régénéré au prochain changement de règle dans l'interface de pfsense). Les scripts qui vont générer le fichier se trouvent dans /etc/inc/xxxx.inc.php
 
Pas de solution rapide, comme je le pensais au départ, mais tout est fonctionnel grace aux conseils donnés.
Je pense que je suis loin d'avoir tout découvert sur pf, mais je découvre bcp de fonctionnalités.
 
Merci.


Message édité par beridoxy le 29-12-2009 à 19:57:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed