Rest API feita em Flask para notificar via Telegram os eventos do Fail2ban.
- Aplicação com arquitetura REST
- Receber uma requisição do tipo POST
- Utilizar um bot para comunicar com o Telegram
- Notificar no grupo o evento de acordo com o formato de entrada definido
- Executar em container Docker
- Python 3.8.2
- pip 20.0.2
- Flask 1.1.2
- python-dotenv 0.12.0
- Flask-HTTPAuth 3.3.0
- Flask-RESTful 0.3.8
- python-telegram-bot 12.4.2
- requests 2.23.0
- pytest 5.4.1
- gunicorn 20.0.4
- Copiar os templates de arquivos:
cp flaskenv_example .flaskenv && cp env_example .env
- Substituir os valores correspondentes às variáveis
- Instale o Python 3
- Instale o pip
- Atualize o pip
- Instale o openssl-dev
- Crie o ambiente virtual com:
python -m venv venv
- Ative o ambiente virtual:
source ./venv/bin/activate
- Instale os pacotes necessários com o pip:
pip install -r requirements.txt
- Instale o Docker e Docker-compose
- Crie a imagem a partir do DOCKERFILE (dockerfile_fail2ban_iec):
docker build -f ./dockerfile_fail2ban_iec -t fail2ban:alpine .
- Sem o servidor WSGI
flask run
ou
python -m flask run
- Com o servidor WSGI
gunicorn --workers=5 --bind=0.0.0.0:5000 --access-logfile - --error-logfile - 'fail2ban:create_app()'
ou execute o startup.sh (deve estar habilitado para execução)
./startup.sh
docker run --name fail2ban-telegram -p 5000:5000 --restart=unless-stopped -d fail2ban:alpine
- Para criar e executar a aplicalçao
docker-compose -f fail2ban_iec.yml up --build -d --remove-orphans
- Para derrubar e remover container + imagem
docker-compose -f fail2ban_iec.yml down --rmi all -v --remove-orphans