RaoidScada и BAN-я всех лишних

Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Автор
    Сообщения
  • #34771
    manjey73
    Участник

    Собственно поставил на VDS с Linux RapidScada, ну и удивился всякому сброду, который на нее лезет. Секретный ключ ессно сразу был изменен на другой, но это никак не решает проблемы постоянных подключений то из Америки, то из Нидерландов, то из Китая, и даже Россия отметилась.

    В общем был установлен пакет fail2ban, немного подправлен конфиг, чтобы он стартовал (ищите, в нете все есть). И добавлены правила для контроля ScadaServer и ScadaAgent

    в /etc/fail2ban/jail.d — >

    scadaagent.conf с содержимым

    [scadaagent]
    enabled = true
    port = 10002
    filter = scadaagentd
    action = iptables[name=scadaagent, port=10002, protocol=tcp]
    logpath = /var/log/scada/ScadaAgent/Log/ScadaAgent.log
    findtime = 60
    maxretry = 1
    bantime = 1d

    scadaserver.conf с содержимым

    [scadaserver]
    enabled = true
    port = 10000
    filter = scadaserverd
    action = iptables[name=scadaserver, port=10000, protocol=tcp]
    logpath = /var/log/scada/ScadaServer/Log/ScadaServer.log
    findtime = 60
    maxretry = 1
    bantime = 1d

    и в фильтры добавлены два фильтра, указанные в конфигах jail как scadaserverd и scadaagentd. Ну на самом деле можно сделать один фильтр и прописать его в обоих jail правилах.

    в /etc/fail2ban/filter.d ->

    scadaagentd.conf с содержимым

    [Definition]
    failregex = \[root\]\[ERR\] Incorrect format of data received from client <HOST>:
    \[root\]\[ERR\] Некорректный формат данных, полученных от клиента <HOST>:

    scadaserverd.cong — содержимое то же самое.

    В результате в логе сервера нет целой пачки ошибок на один адрес типа

    2024-09-17 13:16:54 [vm-3ef3ea][root][ERR] Incorrect format of data received from client 68.105.242.119: data length is too big

    Банит сразу на первой же информации на 1 день. Можете в bantime сразу указывать 100d (дней) например.

    В общем удачи в отправке в Баню 🙂

    #34772
    manjey73
    Участник

    Надо писать только один из вариантов, в зависимости от языка логов.

    failregex = \[root\]\[ERR\] Incorrect format of data received from client <HOST>:

    или
    failregex = \[root\]\[ERR\] Некорректный формат данных, полученных от клиента <HOST>:

    #34775
    Mikhail
    Модератор

    Спасибо. Полезно.
    По всем открытым в мир портам постоянно идут попытки подключения и передачи каких-нибудь данных.

    #34778
    manjey73
    Участник

    Это же питон.
    Вторая строка должна начинаться с Tab, тогда вроде он проверяет по двум записям. Я на английской версии сперва русский вариант прописал, потом английский. Вроде отработало.
    Команду проверки позже напишу. Ну или посмотрите в справке fail2ban как выражения проверять.

    #34779
    manjey73
    Участник

    Команды тестирования правил
    fail2ban-regex /var/log/scada/ScadaServer/Log/ScadaServer.log scada.conf
    fail2ban-regex /var/log/scada/ScadaAgent/Log/ScadaAgent.log scada.conf

    Running tests
    =============
    
    Use   failregex filter file : scada, basedir: /etc/fail2ban
    Use         log file : /var/log/scada/ScadaAgent/Log/ScadaAgent.log
    Use         encoding : UTF-8
    
    Results
    =======
    
    Failregex: 11 total
    |-  #) [# of hits] regular expression
    |   1) [10] \[root\]\[ERR\] Incorrect format of data received from client <HOST>:
    |   2) [1] \[root\]\[ERR\] Некорректный формат данных, полученных от клиента <HOST>:
    -
    
    Ignoreregex: 0 total
    
    Date template hits:
    |- [# of hits] date format
    |  [200] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T|  ?)24hour:Minute:Second(?:[.,]Microseconds)?(?:\s*Zone offset)?
    -
    
    Lines: 205 lines, 0 ignored, 11 matched, 194 missed
    [processed in 0.06 sec]
    
    Missed line(s): too many to print.  Use --print-all-missed to print all 194 lines
    

    Пример теста.
    В обоих jail указал один файл выражений scada (scada.conf) вместо sacdaagentd и scadaserverd соответственно.
    Вторая строка должна начинаться с табуляции. Пример scada.conf в папке filter.d

    [Definition]
    failregex = \[root\]\[ERR\] Incorrect format of data received from client <HOST>:
            \[root\]\[ERR\] Некорректный формат данных, полученных от клиента <HOST>:
    
Просмотр 5 сообщений - с 1 по 5 (из 5 всего)
  • Вы должны авторизироваться для ответа в этой теме.