Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
​​На одном из чужих серверов, на котором пришлось выполнять некоторые работы, заметил новый для себя инструмент fail2web. Заинтересовался и решил посмотреть, что это такое. Это оказался web интерфейс для управления fail2ban. Так как последний я постоянно использую, решил посмотреть, как всё это выглядит. Программа очень старая (8 лет назад написана и не развивается) и инфы по ней почти нет, кроме непосредственно репозиториев. У меня получилось разобраться и запустить. В целом, там ничего сложного. Сначала ставим fail2rest. Это служба, которая взаимодействует с fail2ban. Написана на GO. # dnf install golang git gcc nginx # go get -v github.com/Sean-Der/fail2rest # go install -v github.com/Sean-Der/fail2rest В директории ~/go/bin будет бинарник fail2rest. Для его запуска нужно создать конфиг config.json с двумя параметрами: {  "Addr": "127.0.0.1:5000",  "Fail2banSocket": "/var/run/fail2ban/fail2ban.sock" } После этого можно запустить fail2rest: # fail2rest --config=config.json Проверить работу можно отправив запрос на указанный адрес и порт: # curl http://127.0.0.1:5000/global/ping "pong" Можно настроить запуск через systemd (поменяйте пути на свои): [Unit] Description=fail2ban REST server Documentation=man:fail2rest(1) ConditionPathExists=/etc/fail2rest.json After=fail2ban.service [Service] ExecStart=/usr/bin/fail2rest -config=/etc/fail2rest.json [Install] WantedBy=multi-user.target Теперь качаем веб интерфейс: # git clone --depth=1 https://github.com/Sean-Der/fail2web.git /var/www/fail2web # rm -rf /var/www/fail2web/.git И настраиваем виртуальный хост apache или nginx. Я для простоты nginx взял: server {   listen    80;   server_name YOUR_SERVER_NAME;   auth_basic "Restricted";   auth_basic_user_file /var/www/htpasswd;   location / {     root /var/www/fail2web;   }   location /api/ {     proxy_pass     http://127.0.0.1:5000/;     proxy_redirect   off;   } } Не забудьте создать файл /var/www/htpasswd и добавить туда юзера. Ну и конечно желательно на HTTPS перейти, если реально будете использовать. На этом собственно всё, можно заходить на настроенный виртуальный хост и управлять fail2ban. Сделано простенько, но функционально. Если реально постоянно какая-то движуха идёт с fail2ban, может быть полезно. Я нашёл всё то же самое, только на Docker, но уже не стал проверять. Сразу подскажу тем, кто будет реально разбираться. Если видите в веб интерфейсе ошибку: 502 Bad Gateway - Couldn't contact fail2rest Смотрите лог или настройки fail2ban. Например, если нет ни одного jail, будет эта ошибка. Если неправильно настроены action тоже будут ошибки. В общем, если есть какие-то проблемы с fail2ban, вы будете видеть ошибку соединения с fail2rest, что несколько сбивает с толку. По сути эта заметка готовая инструкция. Других в интернете вообще нет, так что можно сохранить на память. Исходники: https://github.com/Sean-Der/fail2rest https://github.com/Sean-Der/fail2web Обсуждение: www.reddit.com/r/linux…_web_gui #security #fail2ban