ОС: 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.