Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bsd:statistiques_pf_packet_filter [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Il existe un magnifique petit programme qui permet de mettre sous forme de graphe des statistiques tirées de notre merveilleux firewall packet filter (pf pour les intimes)
 +
 +Ce petit programme se nomme : pfstat
 +il est présent dans le ports tree d'​OpenBSD et de FreeBSD.
 +
 +Pour **OpenBSD** :
 +<​code>​
 +# cd /​usr/​ports/​net/​pfstat
 +</​code>​
 +pour **FreeBSD** :
 +<​code>​
 +# cd /​usr/​ports/​sysutils/​pfstat
 +</​code>​
 +et ensuite on l'​installe :
 +<​code>​
 +# make install clean
 +</​code>​
 +
 +sous FreeBSD par défault pfstat est installé dans /​usr/​local/​bin
 +
 +Si vous tapez :
 +<​code>​
 +# /​usr/​local/​bin/​pfstat -q
 +</​code>​
 +Vous allez voir des nombres s'​afficher ce sont les statistiques de pf.\\ 
 +Pour générer les graphes nous avons besoin de stocker ces valeurs à des intervalles réguliers.\\ ​
 +Pour ce faire une petite ligne dans crontab va suffir.
 +
 +<​code>​
 +# crontab -e
 +------------------------------------- SNiP ------------------------------------
 +*/5 * * * * /​usr/​local/​bin/​pfstat -q >> /​var/​log/​pfstat.log
 +------------------------------------- SNiP ------------------------------------
 +</​code>​
 +
 +Faites un tail -f sur /​var/​log/​pfstat.log et vous verrez qu'une nouvelle ligne est ajoutée à ce fichier toutes les 5 minutes.
 +
 +Bon c'est bien beau mais on a toujours pas de graphes...
 +
 +Pour créer des graphes il faut d'​abord créer un fichier de configuration que l'on appellera pfstat.conf par exemple et ensuite spécifier chaque graphe que nous voulons :
 +
 +pfstat est capable de grapher les choses suivantes :
 +
 +bytes_v4_in
 +bytes_v4_out
 +bytes_v6_in
 +bytes_v6_out
 +packets_v4_in_pass
 +packets_v4_in_drop
 +packets_v4_out_pass
 +packets_v4_out_drop
 +packets_v6_in_pass
 +packets_v6_in_drop
 +packets_v6_out_pass
 +packets_v6_out_drop
 +states_entries
 +states_searches
 +states_inserts
 +states_removals
 +counters_match
 +counters_badoffset
 +counters_fragment
 +counters_short
 +counters_normalize
 +counters_memory
 +
 +Voila un petit exemple :
 +
 +<​code>​
 +# vi /​usr/​local/​etc/​pfstat.conf
 +
 +------------------------------------- SNiP ------------------------------------
 +image "/​var/​www/​pf/​traffic_6h.jpg"​ {
 +    from 6 hours to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 0 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 0 0 255
 +}
 +------------------------------------- SNiP ------------------------------------
 +</​code>​
 +
 +Ce qui permet de faire un graphe entrant et sortant sur une période de 6 heures.
 +
 +Pour tous les détails de la configuration de pfstat
 +je vous laisse consulter la man page très bien expliquée
 +
 +<​code>​
 +# man pfstat
 +</​code>​
 +Enfin, ajoutez à votre pf.conf :
 +<​code>​
 +------------------------------------- SNiP ------------------------------------
 +
 +set loginterface ton_interface
 +
 +------------------------------------- SNiP ------------------------------------
 +</​code>​
 +Voila maintenant pour générer vos graphes toutes les 5 minutes et bien une ligne dans contrab va nous aider
 +<​code>​
 +# crontab -e
 +
 +------------------------------------- SNiP ------------------------------------
 +*/5 * * * * /​usr/​local/​bin/​pfstat -c /​usr/​local/​etc/​pfstat.conf -d /​var/​log/​pfstat.log
 +------------------------------------- SNiP ------------------------------------
 +</​code>​
 +
 +Et pour terminer voila un exemple de configuration :
 +<​code>​
 +------------------------------------- SNiP ------------------------------------
 +image "/​var/​www/​pf/​traffic_month.jpg"​ {
 +    from 1 months to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 255 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 255 0 0 filled
 +}
 +
 +image "/​var/​www/​pf/​traffic_week.jpg"​ {
 +    from 1 weeks to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 255 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 255 0 0 filled
 +}
 +
 +image "/​var/​www/​pf/​traffic_day.jpg"​ {
 +    from 1 days to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 255 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 255 0 0 filled
 +}
 +
 +image "/​var/​www/​pf/​traffic_12h.jpg"​ {
 +    from 12 hours to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 255 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 255 0 0 filled
 +}
 +
 +image "/​var/​www/​pf/​traffic_6h.jpg"​ {
 +    from 6 hours to now
 +    width 960 height 300
 +    left
 +    graph bytes_v4_in ​      label "​inconming"​ color 255 255 0 filled,
 +    graph bytes_v4_out ​     label "​outgoing" ​ color 255 0 0 filled
 +}
 +
 +image "/​var/​www/​pf/​firewall_6h.jpg"​ {
 +    from 6 hours to now
 +    width 960 height 300
 +    left
 +    graph packets_v4_in_pass ​       label "pass in" color 255 255 0 filled,
 +    graph packets_v4_in_drop ​       label "block in" ​ color 255 0 0 filled
 +
 +    right
 +    graph packets_v4_out_pass ​      label "pass out" color 206 38 255,
 +    graph packets_v4_out_drop ​      label "block out" color 206 179 255
 +}
 +------------------------------------- SNiP ------------------------------------
 +</​code>​
 +
 +Voila voila si vous avez la moindre question n'​hésitez pas.
 +
 +aflab.
  
bsd/statistiques_pf_packet_filter.txt · Last modified: 2010/01/12 13:29 (external edit)