# NFTABLES Logging

**URL:** <https://www.debian-fr.org/t/nftables-logging/88403>\
**Category:** Support Debian\
**Tags:** iptables\
**Created:** [Juin 23, 2023, 6:44 UTC](https://www.debian-fr.org/t/nftables-logging/88403 "2023-06-23T06:44:24Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 6:44 UTC](https://www.debian-fr.org/t/nftables-logging/88403/1 "2023-06-23T06:44:24Z")

</div>

Bonjour,

N’ayant pas trouvé de catégorie nftables, je crée ce sujet dans iptables.

Je rencontre un problème de logging avec nftables dont les logs sont injectés dans une base Mysql.  
Dans la documentation je trouve :

1. 

```auto
"% nft add rule filter input tcp dport 22 ct state new log prefix \"New SSH connection: \" accept"

```

Cependant, si je mets des antislash pour échapper les quote → j’ai une erreur lors de l’implementation.

1. 

Si je tente de faire un «&nbsp;log flags all&nbsp;» puis le group de logging j’ai aussi une erreur

```auto
nft -f /etc/nftables.conf
/etc/nftables.conf:57:44-48: Error: syntax error, unexpected group, expecting newline or semicolon
                log flags all prefix "Drop" group 2 counter 
                                                         ^^^^^

```

Sans le «&nbsp;flags all&nbsp;» ça passe.

Si quelqu’un a des compétences dans ce domaine, je suis preneur !

Merci

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juin 23, 2023, 7:26 UTC](https://www.debian-fr.org/t/nftables-logging/88403/2 "2023-06-23T07:26:25Z")

</div>

Bonjour,

De quelle façon tes logs sont-ils injectés dans une base mysql?  
Utilises tu ulog?

---

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 7:38 UTC](https://www.debian-fr.org/t/nftables-logging/88403/3 "2023-06-23T07:38:54Z")

</div>

Oui avec le fichier de configuration ulog.conf  
J’ai bien mes logs mais ma syntaxe n’accepte pas les antislash bien que ce soit dans la documentation et l’option «&nbsp;flags full&nbsp;» n’est pas accepté si je spécifie le groupe d’affectation «&nbsp;group 2&nbsp;» pour moi.

Sinon j’ia bien mes logs dans la base sql mais la plupart des champs (tous les flags de la session tcp) sont NULL evidement

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juin 23, 2023, 7:39 UTC](https://www.debian-fr.org/t/nftables-logging/88403/4 "2023-06-23T07:39:58Z")

</div>

peux-tu nous montrer ta configuration s’il te plait? à la fois coté ulog/ulogd2 mais aussi coté parefeu.

---

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 7:52 UTC](https://www.debian-fr.org/t/nftables-logging/88403/5 "2023-06-23T07:52:20Z")

</div>

```nohighlight
[global]
######################################################################
# GLOBAL OPTIONS
######################################################################

# logfile for status messages
logfile="/var/log/ulog/ulog.log"

# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8) (default 5)
loglevel=5

######################################################################
# PLUGIN OPTIONS
######################################################################

plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_inppkt_NFLOG.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_inppkt_ULOG.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_inpflow_NFCT.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_IFINDEX.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_IP2STR.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_IP2BIN.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_IP2HBIN.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_PRINTPKT.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_HWHDR.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_PRINTFLOW.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_filter_MARK.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_output_SYSLOG.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_output_MYSQL.so"
plugin="/usr/lib/x86_64-linux-gnu/ulogd/ulogd_raw2packet_BASE.so"

# this is a stack for logging packet to MySQL
stack=log2:NFLOG,base1:BASE,ifi1:IFINDEX,ip2bin1:IP2BIN,mac2str1:HWHDR,mysql1:MYSQL

[ct2]
hash_enable=0

# Logging of system packet through NFLOG
[log1]
# netlink multicast group (the same as the iptables --nflog-group param)
# Group O is used by the kernel to log connection tracking invalid message
group=0

# packet logging through NFLOG for group 1
[log2]
group=2 # Group has to be different from the one use in log1

[log3]
group=2 # Group has to be different from the one use in log1/log2
numeric_label=1 # you can label the log info based on the packet verdict

[ulog1]
# netlink multicast group (the same as the iptables --ulog-nlgroup param)
nlgroup=1
#numeric_label=0 # optional argument

[nuauth1]
socket_path="/tmp/nuauth_ulogd2.sock"

[emu1]
file="/var/log/ulog/syslogemu.log"
sync=1

[op1]
file="/var/log/ulog/oprint.log"
sync=1

[gp1]
file="/var/log/ulog/gprint.log"
sync=1
timestamp=1

[xml1]
directory="/var/log/ulog/"
sync=1

[json1]
sync=1

[pcap1]
#default file is /var/log/ulogd.pcap
#file="/var/log/ulog/ulogd.pcap"
sync=1

[mysql1]
db="xxxxx"
host="localhost"
user="xxxxxx"
table="ulog"
pass="xxxxxxxx"
procedure="INSERT_PACKET_FULL"

[mysql2]
db="xxxxxx"
host="localhost"
user="xxxxxx"
table="conntrack"
pass="changeme"
procedure="INSERT_CT"

[sys2]
facility=LOG_LOCAL2

[nacct1]
sync = 1
#file = /var/log/ulog/nacct.log

[mark1]
mark = 1

[acct1]
pollinterval = 2

[graphite1]
host="127.0.0.1"
port="2003"
# Prefix of data name sent to graphite server
prefix="netfilter.nfacct"

```

côté parfeu pas grand chose a montrer :  
Les regles accept ne log pas et la derniere regle par defaut Drop.  
Je recupere les drops avec : log prefix «&nbsp;Drop&nbsp;» group 2 counter

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juin 23, 2023, 8:59 UTC](https://www.debian-fr.org/t/nftables-logging/88403/6 "2023-06-23T08:59:33Z")

</div>

Tu ne devrais pas conserver le paramétrage de base de ulogd2.  
Commente tout ce qui ne concerne pas ton système de log.

---

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 9:59 UTC](https://www.debian-fr.org/t/nftables-logging/88403/7 "2023-06-23T09:59:25Z")

</div>

hmm cette fois j’ai un message plus parlant : Error: flags and group are mutually exclusive

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juin 23, 2023, 11:33 UTC](https://www.debian-fr.org/t/nftables-logging/88403/8 "2023-06-23T11:33:40Z")

</div>

c’est normal. Tu as deux déclaration de `group=2`

Supprimer toutes les définition qui ne soit pas la tienne. Les définition présentent par défaut dans le fichier, commentes les.

---

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 12:26 UTC](https://www.debian-fr.org/t/nftables-logging/88403/9 "2023-06-23T12:26:18Z")

</div>

non c’est le message que j’ai apres avoir fait du tri.  
mais il est explicite : pas de possibilité d’avoir flags full accocié a group.  
je crois que ça repond a ma question

C’est compliqué de trouver de la DOC sur le logging ulogd ou alors c’est très basique

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Juin 23, 2023, 12:56 UTC](https://www.debian-fr.org/t/nftables-logging/88403/10 "2023-06-23T12:56:56Z")

</div>

d’un autre coté je n’utilise pas l’injection directement dans une BDD. Je passe plutôt par un système comme ELK ou Splunk.

---

<div class="post-metadata">

**Author:** ![didebian](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@didebian](https://www.debian-fr.org/u/didebian)\
**Post date:** [Juin 23, 2023, 1:12 UTC](https://www.debian-fr.org/t/nftables-logging/88403/11 "2023-06-23T13:12:15Z")

</div>

oui mais comme j’ai eu besoin de me faire un dashboard en PHP, la mise en forme et tri dans une DB etait beaucoup plus simple
