Немного озадачился необходимостью удаленно банить какие-то адреса на Mikrotik с другого хоста. Т.е. Mikrotik у меня стоит отдельно и сам по себе защищается, а я, при просмотре журналов сервера прямо на сервере бы и хотел банить плохие хосты. Можно было бы, конечно, на сервере стенкой и пользоваться, но это как-то некрасиво и неправильно. Итак, самое простое - это удаленное выполнение команды на Mikrotik, которая бы добавляла указанный мной адрес в блоклист.
Код:
add action=drop chain=input comment="Drop blocked" in-interface=wan src-address-list=block_ext
Для целей автоматизации пароль спрашиваться не должен (ssh-copy-id против Микротика не работает). Делается очень просто, для начала необходимо взять файлик id_rsa.pub из вашей директории ~/.ssh и положить его в файлы Mikrotik. Затем выполняете команду (или грузите по соответствующим разделам Mikrotik).
Код:
user ssh-keys import user=admin public-key-file=id_rsa.pub
Все, теперь вы можете без пароля заходить на рутер. Ну и для ускорения добавления адреса в список блокируемых можно в .bash_profile добавить алиас
Код:
alias ban="/usr/scripts/ban.sh "
/usr/scripts/ban.sh
Код:
#!/bin/bash
ssh admin@router "/ip firewall address-list add list=block_ext timeout=1w address=$1"