O Monitor de adivinhação de senha é um programa de desktop do Linux para monitorar as tentativas de SSH em sua máquina. O projeto foi dividido em dois programas separados: um daemon de vigilantes do arquivo de log e um aplicativo da GUI que se comunica com o daemon para atualizar a interface do usuário. O programa Daemon pode ser executado de forma independente a partir do aplicativo da GUI e adicionará regras de bloco iptables quando um limite de tentativa for atingido. Ambos os programas foram escritos usando o QT 5 e foram compilados e testados apenas contra o QT 5.8 e 5.10 no Ubuntu 16 e no Fedora 25.
O daemon e o aplicativo da GUI se comunicam por meio de arquivos JSON que mantêm informações sobre os hosts remotos e seu histórico de tentativas.


├── documentation
│ ├── pics/
│ ├── design.pdf
│ ├── testing.pdf
│ └── user-manual.pdf
├── log-monitor ---------------------- The log monitor daemon
│ ├── .gitignore
│ ├── ipblockmonitor.cpp
│ ├── ipblockmonitor.h
│ ├── logmonitor.cpp
│ ├── logmonitor.h
│ ├── log-monitor.pro
│ └── main.cpp
├── passwd-guess-monitor ------------ The GUI application
│ ├── activitylogmonitor.cpp
│ ├── activitylogmonitor.h
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ ├── mainwindow.ui
│ ├── passwd-guess-monitor.pro
└── .gitignore
Para executar o aplicativo da GUI, você deve executá -lo como um superusuário. Você pode configurar as configurações de daemon do monitor de log de inicialização. Se o daemon já estiver em execução, ele aparecerá na GUI e você poderá impedir o daemon a partir daí. Observe que atualmente assume que o daemon e a GUI serão executados no mesmo diretório.

Para executar o Daemon Log-Monitor: sudo ./log-monitor <path-to-logfile> <permitted-attempts> <reset-hours> <reset-min> <block-hours> <block-min>
Por exemplo: sudo ./log-monitor /var/log/auth.log 3 0 1 0 5
Monitorará o arquivo auth.log e permitirá 3 tentativas inválidas de login antes de bloquear esse host por 5 minutos. Ele redefinirá a tentativa do contador após 1 minuto entre tentativas inválidas.