GithubHelp home page GithubHelp logo

logstash-pfsense's Introduction

logstash-pfsense

Logstash configuration for pfSense syslog events. Comes with a dashboard for displaying blocked events from the firewall.

Includes a modified logstash configuration to work with the latest pfSense release v2.5 and Elastic services release v7.

alt text

pfSense Configuration

Enable remote logging in the pfSense web UI by going to:

Status -> System Logs -> Settings

Make sure that the "Log Message Format" is set to "BSD (RFC 3164, default)".

In Remote Logging Options, check "Enable Remote Logging", and add your remote Logstash server to the "Remote log servers". For example:

192.168.1.100:5140

Finally, check the "Everything" checkbox for "Remote Syslog Contents".

Logstash Configuration

The directories pipelines and patterns are specific to the logstash configuration.

You will need to edit ./pipelines/30-outputs.conf to set the elasticsearch host connection.

Kibana

Import the visualizations.json and dashboard.json.

K8s

There is an example Kubernetes kustomization for running ECK through the Elastic Operator.

Configuring and deploying the Elastic services in this way is beyond the scope of this document. But the yaml resources in infrastructure should give an idea of how to get that deployed.

Logstash is no longer a default component of the deployed Elastic services. logstash.yaml will show a way to deploy Logstash along side the other containers.

logstash-pfsense's People

Contributors

patrickjennings avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logstash-pfsense's Issues

Issue with [prog] regex in 11-pfsense.conf

I am sending logs from a pfsense 2.5.2 firewall, i got it working but my firewall messages were not getting Groked.

i did some investigation and the the cause was the Regex statement in this line.

if [prog] =~ /^filterlog$/ {

the problem was that the statement was just looking for the word "filterlog" in the [prog] field, when the real contents of the field was "filterlog[24523]", i assume the number is the PID of the process, so i added some regex to the if statment and now it works for most messages, im still trying to figure out an issue with Grok itself

for those of you who have this issue just replace the line with the following line and it should work

if [prog] =~ /^filterlog[([0-9]*)]$/ {

Problem : Cannot create pipeline {:reason=>"Expected one of #, } at line 122, column 22 (byte 2959) after output {\n if [type] == \"syslog\" {\n elasticsearch {\n hosts => 10.1"}

I had some problem when i downloaded this file from github to logstash folder , but when i restart this services, it's appear error :
[2020-09-16T09:51:33,670][ERROR][logstash.agent ] Cannot create pipeline {:reason=>"Expected one of #, } at line 122, column 22 (byte 2959) after output {\n if [type] == \"syslog\" {\n elasticsearch {\n hosts => 10.1"}

Anyone have the way for fix it? Many thanks.

Kibana visualizations "Could not locate that index-pattern-field"

The Common Destination Ports visualization does not import into Kibana 6.5.4 - gives an error "Could not locate that index-pattern-field (id: dest_port.keyword)".

The Blocked IPs & Ports visualization also gives an error when imported into Kibana 6.5.4 "Could not locate that index-pattern-field (id: src_ip.keyword)".

Please advise how to fix these issues.

Filterlog not begining the string for |prog]

Hello,
I don't why but in my case filterlog wasn't the first string of the line but the last word of the line.

image

If you have the same issue just modify the following line to :
if [prog] =~ /^filterlog$/ { => if [prog] =~ /filterlog/ {

_grokparsefailure on some lines

Hi
can you help me understand why such lines do not match the grok filter?

7,,,1000000105,igb1,match,block,in,6,0x00,0x00000,1,Options,0,32,fe80::f29f:c2ff:fe1a:2665,ff02::1,HBH,PADN,RTALERT,0x0000,
or
5,,,1000000103,ovpnc1,match,block,in,4,0x0,,64,65242,1480,none,17,udp,173,10.20.30.40,10.20.30.101,

license?

Could you please specify a license for this repo? I'd like to use the grok pattern in another project if the license allows.

Thanks!

Not populating all values for tcp_flags

On multiple instances, I only see tcp_flags values of RA or FA. When the field has A, FPA, or PA (the only ones I can reliably find on search) tcp_flags doesn't populate at all in Elasticsearch. An example search result file (csv) is attached based on the following search:
tags:dcSense AND direction:in AND src_ip:(192.168.0.* OR 192.168.1.* OR 192.168.10.* OR 192.168.11.* OR 192.168.14.* OR 192.168.15.) AND !(src_ip: (fe80 OR 127.0.0.1)) AND !(dest_ip:( 192.168.0.* OR 192.168.1.* OR 192.168.0.255 OR 192.168.1.255 OR 192.168.10.255 OR 192.168.11.255 OR 192.168.14.255 OR 192.168.15.255 OR 255.255.255.255)) AND !(tcp_flags:(RA OR FA))
Outbound-Blocked-Traffic.txt

I am using your pfSense grok and conf.d files (though I've made some minor modifications along the way, including to GeoIP tag outgoing traffic). All of that is working fine, I just am not getting the tcp_flags field to populate on values other than RA or FA.

PFSENSE_LOG_DATA doesn't match vlan interfaces

Hi there,
I had to change the PFSENSE_LOG_DATA pattern so it would match interface names with a vlan such as re0.1. The pattern %{WORD:iface} does not match properly so I changed it to %{DATA:iface} instead

PFSENSE_LOG_DATA (%{INT:rule}),(%{INT:sub_rule})?,,(%{INT:tracker}),(%{DATA:iface}),(%{WORD:reason}),(%{WORD:action}),(%{WORD:direction}),(%{INT:ip_ver}),

Seems to be working this side :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.