Configure o Fail2Ban com o script bash

2

Estou tentando configurar o /etc/fail2ban/jail.local com um script bash. Eu estava pensando em usar sed e expressão regular para alterar as seções que eu preciso.

sed -i "s/^bantime  = 600/bantime  = /" /etc/fail2ban/jail.local
sed -i "s/^destemail = root@localhost/destemail = /" /etc/fail2ban/jail.local
sed -i "s/^action = %(action_)s/action = %(action_mwl)s/" /etc/fail2ban/jail.local

Como você pode ver por bantime, destemail e ação, eu posso fazer isso. Apenas se corresponder exatamente ao. Eu poderia ser que o bantime, ou o estemail é alterado, então o roteiro não funcionará. O que posso usar para fazer após o sinal = flexível. Por exemplo, se bantime não for 600, mas 700, ele também será alterado usando o script bash.

Além disso, há uma seção para configurar o SSH e o SSHD:

[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

[dropbear]

enabled = false 
port = ssh
filter = sshd
logpath = /var/log/dropbear
maxretry = 6

[ssh-ddos]

enabled = false
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 6

Eu também quero especificar a porta que eu uso para o SSH ou habilitar o SSHD com expressão sed e regular. Mas como você pode ver quando eu jogo em ativado vou mudar todas as prisões ou se eu combinar na porta vou mudar todas as portas na configuração. Não é isso que eu quero.

Alguém pode me ajudar com uma maneira de configurar o Fail2Ban com um script e uma maneira flexível?

Muito obrigado, Raoul

    
por yoRaoul 05.03.2013 / 02:51

1 resposta

1

Para as edições de linha única, você pode usar

sed -e "s/^bantime = .*/bantime = /"

ou, mais resilientemente

sed -re "s/^bantime[[:blank:]]*=.*/bantime = /"

Para o problema de várias linhas, use seletores de linha para delimitar suas edições

sed -re "/^\[ssh\]$/,/^\[/s/port[[:blank:]]*=.*/port = /"
    
por zwets 05.03.2013 / 07:08