Toda a configuração está concentrada no arquivo
/etc/blockhosts.cfg. O arquivo de configuração tem muitos comentários e explicação de cada item (em inglês). Na prática você precisa apenas remover o caractere de comentário (#) e modificar o valor de cada item conforme sua necessidade. Mesmo assim vou comentar os principais itens:
HOSTS_BLOCKFILE = "/etc/hosts.deny"
-> Onde está localizado o arquivo 'hosts.deny'
HOST_BLOCKLINE = ["ALL: ", " : deny"]
-> Esta precisa apenas remover o comentário e deixar padrão, é a linha de bloqueio que será inserida no arquivo 'hosts.deny'.
VERBOSE = Log.MESSAGE_LEVEL_INFO
-> Define o nível de log. Para minhas necessidades o nível "info" é suficiente.
COUNT_THRESHOLD = 7
-> Número de vezes que o usuário pode errar a senha. Neste caso, se errar 7 vezes, será bloqueado.
AGE_THRESHOLD = 48
-> Quanto tempo o IP de origem ficará bloqueado. Neste caso, 48 horas.
WHITELIST = [ "127.0.0.1", "192\.168\..*\..*", ]
-> Lista de IPs ou range de IPs que nunca serão bloqueados. Na maioria das vezes é interessante listar aqui a sua rede interna. Podem ser utilizadas expressões regulares para a definição. Para saber mais sobre expressões regulares, acesse: http://www.vivaolinux.com.br/artigo/Iniciando-no-mundo-das-expressoes-regulares-%28parte-1%29/
BLACKLIST = [ "192.168.10.1", "10\..*", ]
-> Se deseja manter um IP ou range de IPs sempre bloqueados, este é o local. Também podem ser utilizadas expressões regulares.
LOGFILES = [ "/var/log/auth.log", "/var/log/proftpd/proftpd.log", ]
-> Aqui você define quais serão os logs analisados. Neste caso está verificando o log do SSH e do ProFTPd.
LOCKFILE = "/tmp/blockhosts.lock"
-> Arquivo temporário de lock. Pode deixar o padrão.
Este é o básico da configuração... o restante pode ficar na configuração padrão que já vai funcionar muito bem!
Agora o último passo... rodando via cron!
Executando o Block Hosts
Para execução do Block Hosts você deve adicionar uma linha no agendador de tarefas Cron. Para isto edite o arquivo
/etc/crontab e insira no final dele as seguintes linhas:
# Executa Block Hosts a cada 5 minutos
*/5 * * * * root /usr/bin/blockhosts.py --verbose >> /var/log/blockhosts.log 2>&1
Após isto basta monitorar o arquivo de log armazenado em "/var/log/blockhosts.log" que tudo deve estar funcionando corretamente! Se tudo deu certo, pode respirar aliviado, você já está mais seguro...
Espero que seja útil!
Att,
Alexandro Corrêa - Porto Alegre - RS