Using TLS In Flow Collection/Export

By default nProbe uses UDP to collect and export flows. However it also supports

  • UDP
  • TCP
  • TLS
  • SCTP (on selected platforms, only for flow export)

You can select the protocol with -n (flow export) and -3 (flow collection) using the format <method>://<address>. Example:

  • udp://127.0.0.1:1234
  • tls://127.0.0.1:1234

When using TLS, it is compulsory to have a valid TLS certificate that is validated during handshake. The following sections explain how to generate a TLS certificate and what are the command line options available for TLS.

TLS Certificates Validation

When nProbe is used for flow collection over TLS, nProbe needs a valid certificate file. While you can generate certificates using commercial CA (Certification Authorities), sometimes you want to use a self-signed TLS certificate for testing. It can be generated as follows: openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365

The above command will generate two files: key.pem that is the private file, and cert.pem that is the certificate file. Such files needs to be stored on a prototected place and they can be passed to nProbe as follows:

  • --tls-priv-key <key.pem path>
  • --tls-cert <cert.pem path>

For example the following command collects flows on localhost:2055: nprobe --tls-priv-key tls/key.pem --tls-cert tls/cert.pem -n none -i none -b 2 -3 tls://localhost:2055

nProbe can export flows to the above command as follows: nprobe -i en3 -b2 -t 3 -d 3 -s 3 -n tls://localhost:2055

If the nProbe collector has been started with a self-signed or non-valid (e.g. expired) certificate, the --tls-insecure option can be used to skip TLS certificate validation. Please remember to set –tls-insecure before -n.