четверг, 8 ноября 2018 г.

Snort. Ошибка Invalid keyword }

  Настраиваю snort. Проверяю конфигурацию командой
C:\Snort\bin>snort -T -c c:\snort\etc\snort.conf -l c:\snort\log

  И показывает ошибку
ERROR: c:\snort\etc\snort.conf(326) => Invalid keyword '}' for server configuration. Fatal Error, Quitting..
  По номеру строки 326 в snort.conf понятно, что ошибка в следующей директиве:
preprocessor http_inspect_server: server default \ 
…………....     
   webroot no \  
   decompress_swf { deflate lzma } \ 
   decompress_pdf { deflate }  

  Нижняя строка "decompress_pdf { deflate }" как раз и имеет номер 326.
 
Комментируя по очереди строки этой директивы обнаружил что проблема во второй снизу строке "decompress_swf { deflate lzma }". Гугл показал статью Snort error, в которой дословно сказано следующее:

This line controls which SWF file decompression algorithms are enabled.  By default, Snort is built with ZLIB (deflate) decompression libraries, but NOT LZMA libraries.  Specifying LZMA on this config line results in a config parsing error as without LZMA included, the LZMA keyword is unknown to the parser.  There is a pending bug to improve the parsing logic and produce a better error if/when the keyword is present but without LZMA support. 
You can hashout (i.e. remove) this config line, but this will also remove the ZLIB/deflate file decompression mode also.  Removing the LZMA keyword will fix the parsing error but leave the deflate mode enabled.

То есть snort, который я настроиваю скомпилирован без поддержки LZMA. Строку "decompress_swf { deflate lzma }" я просто закоментировал.