Назад | Перейти на главную страницу

Проблема с Fail2ban и Mikrotik Firewall

ОС: CentOS 7.1

В моей организации мы в настоящее время оцениваем возможность использования Fail2ban с брандмауэром на нашем маршрутизаторе Mikrotik. Я хочу, чтобы Fail2ban передавал брандмауэру Mikrotik любой IP-адрес, помеченный как заблокированный, создавая новое правило брандмауэра. К этому процессу относятся три файла:

/ usr / bin / mikrotik

-----------------------------------------
#!/bin/bash
ssh -l admin -p22 -i /root/.ssh/id_dsa 192.168.0.1 "$1"
-----------------------------------------

/etc/fail2ban/action.d/mikrotik.conf

-----------------------------------------
# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
actionban = mikrotik "/ip firewall filter add action=drop chain=forward dst-address=<ip> comment=AutoFail2ban-<ip>"

# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#

actionunban =  mikrotik "/ip firewall filter remove [:ip firewall filter find comment=AutoFail2ban-<ip>]"
-----------------------------------------

/etc/fail2ban/jail.local

-----------------------------------------
[sshd]
enabled = true
port    = ssh
filter  = sshd
action  = mikrotik
logpath = /var/log/secure
maxrety = 3
bantime = 120
-----------------------------------------

Текущая проблема заключается в том, что когда IP-адрес помечается как запрещенный, весь процесс ssh-подключения к Mikrotik и создания правила брандмауэра не происходит. Запуск команды вручную mikrotik успешно ssh в Mikrotik. Запуск вручную команды «/ ip firewall ...» в консоли Mikrotik успешно создает правило брандмауэра, поэтому я знаю, что команда верна.

делать tail -f в /var/log/fail2ban.log при запрете IP-адреса выдает ошибку:

[10265]: ERROR   /usr/bin/mikrotik -- returned 127 
[10265]: INFO   HINT on 127: "Command not found". Make sure that all commands in '/usr/bin/mikrotik' are in the PATH of fail2ban-server process (grep -a PATH= /proc/`pidof -x fail2ban-server`/environ).

Однако выполнение предложенного grep команда дает:

LANG=en_US.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

Изменение banaction на использование ssh даст аналогичный результат и укажет, что команда ssh не найден.

Мы будем очень благодарны за любое понимание того, как мы можем передать команду Mikrotik через ssh.