Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    ELK + Suricata Inline mode

    Scheduled Pinned Locked Moved Russian
    16 Posts 3 Posters 8.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • werterW
      werter
      last edited by

      Доброе.
      Также исп. Suricata. Замечательное решение (после небольшого "обучения" что блокировать, что нет).

      Галка на Log to System Log в настр. не помогает ? И ,как вариант - рестарт suricata после галки или , кардинально, рестарт pf.

      настроенная Suricata работающая в inline mode. Так же настроенный ELK кушающий логи фаервола.

      А вот с этого места поподробнее :) Можно ли инс-ции по настройке связки elk + pf ? И ваш собственный со скринами.
      Буду категорически благодарен.

      1 Reply Last reply Reply Quote 0
      • B
        borg
        last edited by

        @werter:

        Галка на Log to System Log в настр. не помогает ? И ,как вариант - рестарт suricata после галки или , кардинально, рестарт pf.

        Если поставить галку, то события будут записываться в формате простого текста, который ELK так же не распознает.
        Пример результата:

        
        Time            Process         PID     Message
        Aug 18 14:03:57	suricata	60302	[Drop] [1:2010935:2] ET POLICY Suspicious inbound to MSSQL port 1433 [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} x.x.x.x:xxxx -> x.x.x.x:1433
        
        

        Нужно чтобы лог именно разделялся как в Alerts и при этом создать шаблон в ELK, при котором он бы распознавал логи сурикаты.

        @werter:

        А вот с этого места поподробнее :) Можно ли инс-ции по настройке связки elk + pf ? И ваш собственный со скринами.
        Буду категорически благодарен.

        Все выполнял по инструкции http://pfelk.3ilson.com/ на чистой ubuntu-14.04.5-server-amd64 (на 16й не завелось), заработало без всяких проблем.

        1 Reply Last reply Reply Quote 0
        • werterW
          werter
          last edited by

          Спасибо за ссылку.

          P.s. В гугле по suricata elk stack pfsense сразу выдало:
          https://blog.reboost.net/suricata-on-pfsense-to-elk-stack/
          https://www.aldeid.com/wiki/ELK-Stack
          https://blog.inliniac.net/2014/07/28/suricata-flow-logging/
          https://redmine.openinfosecfoundation.org/projects/suricata/wiki/_logstash_kibana_and_suricata_json_output

          И такое чудо еще - http://elatov.github.io/2016/04/suricata-logs-in-splunk-and-elk/

          1 Reply Last reply Reply Quote 0
          • B
            borg
            last edited by

            Попробуем-с поиграться с фаилбитом, о результатах отпишусь, спасибо.

            1 Reply Last reply Reply Quote 0
            • B
              borg
              last edited by

              Штудировал https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7 и http://elatov.github.io/2016/04/suricata-logs-in-splunk-and-elk/
              Добавил logstash-* и вуаля, получилось получить правильные логи, все работает, но вот есть одно но, по какой то причине не работает карта, появляется заполнение https://otile2-s.mqcdn.com/tiles/1.0.0/map/2/0/1.jpeg. Ломаю голову как это починить… возможно нужно обновить кибану, но пока не знаю точно.
              Нашел тему по этой проблеме https://github.com/elastic/kibana/issues/7717 сделал настройки карты как тут https://cloud.githubusercontent.com/assets/20421688/16770938/a6967a86-4846-11e6-92cd-c5a529663235.png
              Все работает в итоге. Если нужно кому-то, то могу сделать мануал по установке/залить .ova с начальными установками.

              1 Reply Last reply Reply Quote 0
              • werterW
                werter
                last edited by

                @borg:

                Все работает в итоге. Если нужно кому-то, то могу сделать мануал по установке/залить .ova с начальными установками.

                Супер же!
                Не надо готового. Лучше инструкцию со скринами. Чтоб люди сами. С готовым понимание того, что делать и как не прийдет.
                Заранее благодарен.

                P.s. Особенно настройки dashboard интересует.

                1 Reply Last reply Reply Quote 0
                • B
                  borg
                  last edited by

                  Инструкция по установке ELK с настройками для Suricat'ы c использованием Filebeat для передачи в logstash eve.json
                  Установка происходит на чистый CentOS-7-x86_64-Minimal-1511 с оф сайта.

                  Инструкция пишется для VM на Esxi 6. Для настройки нам понадобятся дополнительные пакеты: net-tools для простого определения полученного ip dhcp сервером через ifconfig и для подключения к серверу через putty, nano для более удобного редактирования, wget для скачивания пакетов, open-vm-tools для удобного управления через vsphere client.

                  Устанавливаем net-tools nano wget open-vm-tools:

                  yum install net-tools -y
                  yum install nano -y
                  yum install wget -y
                  yum install open-vm-tools -y
                  

                  Узнаем IP нашего сервера

                  ifconfig
                  >inet 10.10.10.150 ...
                  

                  Установка Java 8
                  Скачиваем rpm

                  wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm"
                  

                  Устанавливаем

                  sudo yum -y localinstall jdk-8u73-linux-x64.rpm
                  

                  Установка Elasticsearch
                  Импортируем ключ в rmp

                  rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
                  

                  Создаем файл репозитория

                  echo '[elasticsearch-2.x]
                  name=Elasticsearch repository for 2.x packages
                  baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
                  gpgcheck=1
                  gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
                  enabled=1
                  ' | sudo tee /etc/yum.repos.d/elasticsearch.repo
                  

                  Устанавливаем Elasticsearch

                  yum nstall -y elasticsearch
                  

                  Запускаем

                  systemctl start elasticsearch
                  

                  Добавляем в автозагрузку

                  systemctl enable elasticsearch
                  

                  Установка Kibana
                  Создаем файл репозитория

                  nano /etc/yum.repos.d/kibana.repo
                  

                  Добавляем содержимое

                  [kibana-4.4]
                  name=Kibana repository for 4.4.x packages
                  baseurl=http://packages.elastic.co/kibana/4.4/centos
                  gpgcheck=1
                  gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
                  enabled=1
                  

                  Устанавливаем Kibana

                  yum -y install kibana
                  

                  Включаем
                  systemctl start kibana

                  chkconfig kibana on
                  

                  Утсанавливаем Nginx

                  yum -y install epel-release
                  yum -y install nginx httpd-tools
                  

                  Создаем админа с паролем для веб интерфейса Kibana, где kibanaadmin логин который вы хотите использовать для входа

                  htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
                  

                  Редактируем конфиг Nginx

                  nano /etc/nginx/nginx.conf
                  

                  Нужно удалить блок server {}. 2 последние строчки должны быть

                      include /etc/nginx/conf.d/*.conf;
                  }
                  

                  Создаем новый блок server{} в новом файле

                  nano /etc/nginx/conf.d/kibana.conf
                  

                  Добавляем содержимое, где example.com имя сервера

                  server {
                      listen 80;
                  
                      server_name example.com;
                  
                      auth_basic "Restricted Access";
                      auth_basic_user_file /etc/nginx/htpasswd.users;
                  
                      location / {
                          proxy_pass http://localhost:5601;
                          proxy_http_version 1.1;
                          proxy_set_header Upgrade $http_upgrade;
                          proxy_set_header Connection 'upgrade';
                          proxy_set_header Host $host;
                          proxy_cache_bypass $http_upgrade;        
                      }
                  }
                  

                  Запускаем Nginx

                  systemctl start nginx
                  systemctl enable nginx
                  

                  Отключаем SELinux

                  setsebool -P httpd_can_network_connect 1
                  

                  Установка Logstash
                  Создаем файл репозитория

                  nano /etc/yum.repos.d/logstash.repo
                  

                  Добавляем содержимое

                  [logstash-2.2]
                  name=logstash repository for 2.2 packages
                  baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
                  gpgcheck=1
                  gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
                  enabled=1
                  

                  Устанавливаем

                  yum -y install logstash
                  

                  Устанавливаем GeoIP

                  cd /etc/logstash
                  curl -O "http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz"
                  gunzip GeoLiteCity.dat.gz
                  

                  Создаем конфиг

                  nano /etc/logstash/conf.d/suricata-beats.conf
                  

                  Наполняем содержимым

                  input {
                     beats {
                       type => SuricataIDPS
                       port => 5044
                       codec => json
                     }
                  }
                  
                  filter {
                    if [type] == "SuricataIDPS" {
                      date {
                        match => [ "timestamp", "ISO8601" ]
                      }
                      ruby {
                        code => "if event['event_type'] == 'fileinfo'; event['fileinfo']['type']=event['fileinfo']['magic'].to_s.split(',')[0]; end;"
                      }
                    }
                  
                    if [src_ip]  {
                      geoip {
                        source => "src_ip"
                        target => "geoip"
                        database => "/etc/logstash/GeoLiteCity.dat"
                        add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
                        add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
                      }
                      mutate {
                        convert => [ "[geoip][coordinates]", "float" ]
                      }
                      if ![geoip.ip] {
                        if [dest_ip]  {
                          geoip {
                            source => "dest_ip"
                            target => "geoip"
                            database => "/etc/logstash/GeoLiteCity.dat"
                            add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
                            add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
                          }
                          mutate {
                            convert => [ "[geoip][coordinates]", "float" ]
                          }
                        }
                      }
                    }
                  }
                  
                  output {
                    elasticsearch { hosts => ["localhost:9200"] }
                    stdout { codec => rubydebug }
                  }
                  

                  Проверим правильность конфигурации

                  service logstash configtest
                  

                  Если получаем Configuration OK, идем дальше

                  Перезагружаем logstash и добавляем в загрузку

                  systemctl restart logstash
                  chkconfig logstash on
                  

                  Настраиваем Filebeat на pfsense
                  Находим тут нужный нам файл, взависимости от того какой у нас pfsesne

                  https://beats-nightlies.s3.amazonaws.com/index.html?prefix=jenkins/filebeat/760-3850d0e6675293fc903528601eb304792c442dc3/
                  

                  Например это filebeat-freebsd-amd64

                  Качаем

                  fetch https://beats-nightlies.s3.amazonaws.com/jenkins/filebeat/760-3850d0e6675293fc903528601eb304792c442dc3/filebeat-freebsd-amd64
                  

                  Создаем каталог, перемещаем, делаем исполняемым

                  mkdir /etc/filebeat
                  mv ~/filebeat-freebsd-amd64 /etc/filebeat/
                  cd /etc/filebeat/
                  mv filebeat-freebsd-amd64 filebeat
                  chmod +x filebeat
                  

                  Создаем конфиг для него

                  nano /etc/filebeat/filebeat.yml
                  

                  И заполняем, где * имя интерфеса, 10.10.10.150 - адрес сервера ELK

                  filebeat:  
                    prospectors:
                      -
                        paths:
                          - /var/log/suricata/*/eve.json 
                        input_type: log
                        document_type: SuricataIDPS 
                  output:  
                    logstash:
                      hosts: ["10.10.10.150:5044"]
                  

                  Проверяем правильность конфига

                  /etc/filebeat/filebeat -configtest
                  

                  Если пусто то все ок

                  Для того чтобы добавить filebeat при старте pfsens'a нужно установить пакет Shellcmd (System, Packages). После установки, его можно найти в Services.
                  В /usr/local/etc/rc.d/ создать filebeat.sh

                  nano /usr/local/etc/rc.d/filebeat.sh
                  chmod +x filebeat.sh
                  

                  и заполнить

                  #!/bin/sh
                  
                  . /etc/rc.subr
                  
                  name="filebeat"
                  rcvar=filebeat_enable
                  
                  load_rc_config "$name"
                  
                  : ${filebeat_enable="NO"}
                  
                  command="/etc/filebeat/filebeat"
                  command_args="-c /etc/filebeat/filebeat.yml"
                  start_cmd=filebeat_start
                  pidfile="/var/run/${name}.pid"
                  
                  filebeat_start() {
                  	echo "Starting filebeat."
                  	/usr/sbin/daemon -c -f -p $pidfile ${command} ${command_args}
                  }
                  
                  run_rc_command "$1"
                  

                  Нажать в Shellcmd на + и в поле Command ввести /usr/local/etc/rc.d/filebeat.sh onestart оставить shellcmd type. После этого нужно перезагрузить pfsense.
                  Если хотите проверить работает ли он без перезагрузки то

                  cd /etc/filebeat
                  ./filebeat
                  

                  Теперь необходимо спровоцировать Alert, например запустить сканер на телефоне с мобильного интеренета по своему хосту (при условии его доступности из вне)
                  В /etc/filebeat/logs должен появиться filebeat файл с логом с успешным запуском

                  2016-08-19T16:16:12+03:00 INFO Home path: [/etc/filebeat] Config path: [/etc/filebeat] Data path: [/etc/filebeat/data] Logs path: [/etc/filebeat/logs]
                  2016-08-19T16:16:12+03:00 INFO Setup Beat: filebeat; Version: 5.0.0-alpha6-git3850d0e
                  2016-08-19T16:16:12+03:00 INFO Max Retries set to: 3
                  2016-08-19T16:16:12+03:00 INFO Activated logstash as output plugin.
                  2016-08-19T16:16:12+03:00 INFO Publisher name: pfSense.localdomain
                  2016-08-19T16:16:12+03:00 INFO Flush Interval set to: 1s
                  2016-08-19T16:16:12+03:00 INFO Max Bulk Size set to: 2048
                  2016-08-19T16:16:12+03:00 INFO filebeat start running.
                  2016-08-19T16:16:12+03:00 INFO Registry file set to: /etc/filebeat/data/registry
                  2016-08-19T16:16:12+03:00 INFO Loading registrar data from /etc/filebeat/data/registry
                  2016-08-19T16:16:12+03:00 INFO States Loaded from registrar: 1
                  2016-08-19T16:16:12+03:00 INFO Loading Prospectors: 1
                  2016-08-19T16:16:12+03:00 INFO Load previous states from registry into memory
                  2016-08-19T16:16:12+03:00 INFO Previous states loaded: 1
                  2016-08-19T16:16:12+03:00 INFO Starting Registrar
                  2016-08-19T16:16:12+03:00 INFO Loading Prospectors completed. Number of prospectors: 1
                  2016-08-19T16:16:12+03:00 INFO All prospectors are initialised and running with 1 states to persist
                  2016-08-19T16:16:12+03:00 INFO Starting prospector of type: log
                  2016-08-19T16:16:12+03:00 INFO Start sending events to output
                  2016-08-19T16:16:12+03:00 INFO Starting spooler: spool_size: 2048; idle_timeout: 5s
                  2016-08-19T16:16:42+03:00 INFO No non-zero metrics in the last 30s
                  2016-08-19T16:16:52+03:00 INFO Harvester started for file: /var/log/suricata/suricata_em012321/eve.json
                  

                  На ELK сервере в /var/log/logstash файл logstash.stdout должен набрать толщину и иметь записи больше чем

                  Sending logstash logs to /var/log/logstash/logstash.log.
                  

                  Если все так, как я описал, то все работает.
                  Набираем http://10.10.10.150/ в браузере. Используем логин и пароль который мы ранее создали после установки Nginx. Нам сразу же предложат создать патер logstash-*. Создаем его. Если его создать нельзя, значит нет логов, а если нет, значит что то пошло не так c filebeat.
                  Если же все успешно, то переходим в Visualize -> Tile map -> From a new search -> Options, галочку на WMS compliant map server

                  WMS url* http://ows-tile.terrestris.de/osm-basemap/service?
                  WMS layers* OSM-WMS
                  WMS version* 1.1.1
                  WMS format* image/jpeg
                  

                  Далее жмем Save Visualization, назавем к примеру Map
                  Идем в Dashboard -> Add visualization, выбираем наш Map, растягиваем как нам нжуно. Жмем Save и называем как хотим.
                  Пример того что у меня Картинка
                  Тут отображено на карте места где пакеты дропнуты, 1й круг - количество дропов по странам, 2й круг - дропнутые страны и города, 3й - страны по типу атак, таблица - дата, страна, город, на какой порт атака, тип атак, кол-во атак

                  Если у кого возникнут вопросы или трудности, отвечу как смогу.

                  Источники:
                  https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7
                  http://elatov.github.io/2016/04/suricata-logs-in-splunk-and-elk/

                  1 Reply Last reply Reply Quote 0
                  • B
                    borg
                    last edited by

                    Подредактировал автозагрузку filebeat c

                    /etc/filebeat/filebeat
                    

                    на

                    /etc/filebeat/filebeat -c /etc/filebeat/filebeat.yml
                    
                    1 Reply Last reply Reply Quote 0
                    • werterW
                      werter
                      last edited by

                      2 borg
                      Огромное спасибо.

                      1 Reply Last reply Reply Quote 0
                      • B
                        borg
                        last edited by

                        Наткнулся на дашборды для сурикаты
                        https://github.com/StamusNetworks/KTS
                        Все ранее созданные дашборды будут удалены и будут созданы новые патерны, поэтому если нужно, можно сделать экспорт в settings -> objects.
                        Для того чтобы все не сыпалось ошибками нужно во всех файлах находящихся в каталогах search и visualization изменить

                        logstash-alert-*
                        logstash-dns-*
                        logstash-fileinfo-*
                        logstash-flow-*
                        logstash-http-*
                        logstash-smtp-*
                        logstash-ssh-*
                        logstash-tls-*
                        

                        на

                        logstash-*
                        

                        для того чтобы все работало:

                        /opt/kibana/bin/kibana plugin -i elastic/timelion
                        git clone https://github.com/StamusNetworks/KTS.git
                        patch -p1 -d /opt/kibana/  < /root/KTS/patches/kibana-integer.patch
                        patch -p1 -d /opt/kibana/  < /root/KTS/patches/timelion-integer.patch
                        cd KTS
                        ./load.sh
                        
                        

                        Так же если кому нужно могу объяснить как создать свой патер и использовать его при использовании filebeat

                        1 Reply Last reply Reply Quote 0
                        • werterW
                          werter
                          last edited by

                          2 borg
                          Спасибо ОГРОМНОЕ )

                          Так же если кому нужно могу объяснить как создать свой патер и использовать его при использовании filebeat

                          Конечно же ! Ждем.

                          1 Reply Last reply Reply Quote 0
                          • B
                            borg
                            last edited by

                            Выяснил что

                            /etc/filebeat/filebeat -c /etc/filebeat/filebeat.yml
                            

                            вешает весь автозапуск у пфснса, нужен другой метод запуска

                            в /usr/local/etc/rc.d/ создать filebeat.sh

                            #!/bin/sh
                            
                            . /etc/rc.subr
                            
                            name="filebeat"
                            rcvar=filebeat_enable
                            
                            load_rc_config "$name"
                            
                            : ${filebeat_enable="NO"}
                            
                            command="/etc/filebeat/filebeat"
                            command_args="-c /etc/filebeat/filebeat.yml"
                            start_cmd=filebeat_start
                            pidfile="/var/run/${name}.pid"
                            
                            filebeat_start() {
                            	echo "Starting filebeat."
                            	/usr/sbin/daemon -c -f -p $pidfile ${command} ${command_args}
                            }
                            
                            run_rc_command "$1"
                            

                            и добавить в shellcmd строку

                            /usr/local/etc/rc.d/filebeat.sh onestart
                            
                            1 Reply Last reply Reply Quote 0
                            • B
                              borg
                              last edited by

                              Недавно вернулся к вопросу elk и Pfsense
                              Дополню про template

                              Для того чтобы входящие логи имели нужный нам индекс, нам необходимо в /etc/logstash/conf.d/suricata-beats.conf изменить блок output, например у нас будет индекс для логов от сурикаты suricata.

                              
                              output {
                                elasticsearch { hosts => ["localhost:9200"]
                                   index => "suricata-%{+YYYY.MM.dd}"
                               }
                              
                                stdout { codec => rubydebug }
                              }
                              
                              

                              Для того чтобы работало GeoIP необходимо создать template (я взял от logstash (/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-output-elasticsearch-2.7.1-java/lib/logstash/outputs/elasticsearch/elasticsearch-template.json) и поменял в нем значение на suricata)

                              
                              mkdir /etc/logstash/templates
                              sudo nano /etc/logstash/templates/suricata.json
                              
                              
                              
                              {
                                "template" : "suricata-*",
                                "settings" : {
                                  "index.refresh_interval" : "5s"
                                },
                                "mappings" : {
                                  "_default_" : {
                                    "_all" : {"enabled" : true, "omit_norms" : true},
                                    "dynamic_templates" : [ {
                                      "message_field" : {
                                        "match" : "message",
                                        "match_mapping_type" : "string",
                                        "mapping" : {
                                          "type" : "string", "index" : "analyzed", "omit_norms" : true,
                                          "fielddata" : { "format" : "disabled" }
                                        }
                                      }
                                    }, {
                                      "string_fields" : {
                                        "match" : "*",
                                        "match_mapping_type" : "string",
                                        "mapping" : {
                                          "type" : "string", "index" : "analyzed", "omit_norms" : true,
                                          "fielddata" : { "format" : "disabled" },
                                          "fields" : {
                                            "raw" : {"type": "string", "index" : "not_analyzed", "ignore_above" : 256}
                                          }
                                        }
                                      }
                                    } ],
                                    "properties" : {
                                      "@timestamp": { "type": "date" },
                                      "@version": { "type": "string", "index": "not_analyzed" },
                                      "geoip"  : {
                                        "dynamic": true,
                                        "properties" : {
                                          "ip": { "type": "ip" },
                                          "location" : { "type" : "geo_point" },
                                          "latitude" : { "type" : "float" },
                                          "longitude" : { "type" : "float" }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                              
                              

                              После регистрируем его

                              sudo curl -XPUT 'http://localhost:9200/_template/suricata?pretty' -d@/etc/logstash/templates/suricata.json
                              

                              Затем дополняем блок output suricata-beats.conf

                              
                              sudo nano /etc/logstash/conf.d/suricata-beats.conf
                              
                              
                              
                              output {
                                elasticsearch { hosts => ["localhost:9200"]
                                   index => "suricata-%{+YYYY.MM.dd}"
                                    template => "/etc/logstash/templates/suricata.json"
                                    template_overwrite => true
                               }
                              
                                stdout { codec => rubydebug }
                              }
                              
                              

                              Конечный файл выглядит так:

                              
                              input {
                                 beats {
                                   type => SuricataIDPS
                                   port => 5044
                                   codec => json
                                 }
                              }
                              
                              filter {
                                if [type] == "SuricataIDPS" {
                                  date {
                                    match => [ "timestamp", "ISO8601" ]
                                  }
                                  ruby {
                                    code => "if event['event_type'] == 'fileinfo'; event['fileinfo']['type']=event['fileinfo']['magic'].to_s.split(',')[0]; end;"
                                  }
                                }
                              
                                if [src_ip]  {
                                  geoip {
                                    source => "src_ip"
                                    target => "geoip"
                                    database => "/etc/logstash/GeoLiteCity.dat"
                                    add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
                                    add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
                                  }
                                  mutate {
                                    convert => [ "[geoip][coordinates]", "float" ]
                                  }
                                  if ![geoip.ip] {
                                    if [dest_ip]  {
                                      geoip {
                                        source => "dest_ip"
                                        target => "geoip"
                                        database => "/etc/logstash/GeoLiteCity.dat"
                                        add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
                                        add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
                                      }
                                      mutate {
                                        convert => [ "[geoip][coordinates]", "float" ]
                                      }
                                    }
                                  }
                                }
                              }
                              
                              output {
                                elasticsearch { hosts => ["localhost:9200"]
                                   index => "suricata-%{+YYYY.MM.dd}"
                                    template => "/etc/logstash/templates/suricata.json"
                                    template_overwrite => true
                               }
                              
                                stdout { codec => rubydebug }
                              }
                              
                              

                              После этих действий желательно удалить все индексы

                              
                              curl -XDELETE 'http://localhost:9200/_all'
                              
                              

                              После чего удаляем на pfsense директории /etc/filebeat/data и /etc/filebeat/logs и стартуем filebeat

                              
                              /usr/local/etc/rc.d/filebeat.sh onestart
                              
                              

                              Идем в Kibana  settings/Indices добавляем pattern suricata-*

                              1 Reply Last reply Reply Quote 0
                              • werterW
                                werter
                                last edited by

                                Доброе
                                Спасибо за дополнение.

                                1 Reply Last reply Reply Quote 0
                                • X
                                  xhangmanx
                                  last edited by

                                  Такой топик надо закрепить, ну или в FAQ

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post
                                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.