Advertisement
D0cEvil

Logstash - OpenVPN

Sep 23rd, 2022
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 4.24 KB | Cybersecurity | 0 0
  1. #########################################################################
  2. ##### ВЕРСИЯ НЕ РАБОЧАЯ!!!! ТОЛЬКО ДЛЯ СЕБЯ ЧТОБ ДОПИЛИТЬ ДО УМА!!!! ####
  3. #########################################################################
  4.  
  5. ################# INPUT #################
  6.  
  7. input {
  8.     file {
  9.         path => [ "/tmp/openvpn/openvpn.*" ]
  10.         sincedb_path => "/dev/null"
  11.         start_position => "beginning"
  12.     }
  13. }
  14.  
  15. ################# FILTER #################
  16.  
  17. filter {
  18.     if "IV_PLAT=" in [message] {    # Операционная система клиента
  19.         grok {
  20.             match => {
  21.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{IP:ovpn.source.ip}:%{WORD} %{WORD} %{WORD}: %{WORD}=%{GREEDYDATA:ovpn.client.plat}"
  22.             }
  23.             add_tag => ["Client OS"]
  24.         }
  25.         if "_grokparsefailure" in [tags] {
  26.             drop { }
  27.         }
  28.     }
  29.     else if "IV_GUI_VER=" in [message] {    # Используемая программа-клиент
  30.         grok {
  31.             match => {
  32.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{IP:ovpn.source.ip}:%{WORD} %{WORD} %{WORD}: %{WORD}=%{GREEDYDATA:ovpn.client.guiversion}"
  33.             }
  34.             add_tag => ["Clien GUI"]
  35.         }
  36.         if "_grokparsefailure" in [tags] {
  37.             drop { }
  38.         }
  39.     }
  40.     else if "primary virtual IP" in [message] { # Событие подключения, выдача внутреннего ip клиенту
  41.         grok {
  42.             match => {
  43.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{WORD:ovpn.client}/%{IP:ovpn.source.ip}:%{WORD:ovpn.source.port} %{WORD}: %{WORD} %{WORD} %{WORD} %{WORD} %{WORD}/%{IP}:%{WORD}: %{IP:ovpn.internal.ip}"
  44.             }
  45.             add_tag => ["Connected"]
  46.         }
  47.         if "_grokparsefailure" in [tags] {
  48.             drop { }
  49.         }
  50.     }
  51.     else if "TLS Error:" in [message] { # Обрыв связи, проблемы сети
  52.         grok {
  53.             match => {
  54.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{WORD}/%{IP}:%{WORD:port} %{GREEDYDATA:ovpn.error.event}: %{GREEDYDATA:ovpn.error.message}"
  55.             }
  56.             add_tag => ["TLS Error"]
  57.         }
  58.         if "_grokparsefailure" in [tags] {
  59.             drop { }
  60.         }
  61.     }
  62.     else if "TLS Error: cannot locate" in [message] {   # Попытки подключения левых юзеров
  63.         grok {
  64.             match => {
  65.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{GREEDYDATA:ovpn.error.event}: %{GREEDYDATA:ovpn.error.message} %{WORD} ?\[%{WORD}?]%{IP:ovpn.source.ip}:%{WORD:ovpn.source.port}"
  66.             }
  67.             add_tag => ["cannot locate"]
  68.         }
  69.         if "_grokparsefailure" in [tags]
  70.         {
  71.             drop { }
  72.         }
  73.     }
  74.     else if "VERIFY ERROR" in [message] {   # Сертификат клиента - ВСЁ
  75.         grok {
  76.             match => {
  77.                 "message" => "%{MONTH:month} %{MONTHDAY:day} %{TIME:time} %{WORD:logsource} %{SYSLOGPROG} ?\[%{WORD:pid}?]: %{IP:ovpn.source.ip}:%{WORD:ovpn.source.port} %{GREEDYDATA:ovpn.error.event}: %{WORD}=%{GREEDYDATA}, error=%{GREEDYDATA:ovpn.error.message}: %{WORD}=%{WORD:ovpn.client}"
  78.             }
  79.             add_tag => ["VERIFY ERROR"]
  80.         }
  81.         if "_grokparsefailure" in [tags] {
  82.             drop { }
  83.         }
  84.     }
  85.     else {
  86.         drop { }
  87.     }
  88. }
  89.  
  90. ################# OUTPUT #################
  91.  
  92. output {
  93. #   elasticsearch {
  94. #       hosts => ['192.168.15.77:9200']
  95. #   }
  96. ##### DEBUG OSTI D'CALISSE DE TABARNAK!!! ##### Отправка в разные файлы для гребанного дебага
  97.     if "Connected" in [tags] {
  98.         file {
  99.             path => "/tmp/vpn_connected.json"
  100.             codec => "json_lines"
  101.         }
  102.     }
  103.     else if "TLS Error" in [tags] {
  104.         file {
  105.             path => "/tmp/vpn_tls.json"
  106.             codec => "json_lines"
  107.         }
  108.     }
  109.     else if "cannot locate" in [tags] {
  110.         file {
  111.             path => "/tmp/vpn_cannot.json"
  112.             codec => "json_lines"
  113.         }
  114.     }
  115.     else if "VERIFY ERROR" in [tags] {
  116.         file {
  117.             path => "/tmp/vpn_verify.json"
  118.             codec => "json_lines"
  119.         }
  120.     }
  121.     else if "Client OS" in [tags] {
  122.         file {
  123.             path => "/tmp/vpn_os.json"
  124.             codec => "json_lines"
  125.         }
  126.     }
  127.     else if "IV_GUI_VER=" in [tags] {
  128.         file {
  129.             path => "/tmp/vpn_gui.json"
  130.             codec => "json_lines"
  131.         }
  132.     }
  133.     else {
  134.         file {
  135.             path => "/tmp/else.json"
  136.             codec => "json_lines"
  137.         }
  138.     }
  139.    
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement