Я пытаюсь настроить конфигурацию/etc/fail2ban/jail.local со сценарием удара. Я думал для использования sed и регулярного выражения для изменения разделов, в которых я нуждаюсь.
sed -i "s/^bantime = 600/bantime = $1/" /etc/fail2ban/jail.local
sed -i "s/^destemail = root@localhost/destemail = $2/" /etc/fail2ban/jail.local
sed -i "s/^action = %(action_)s/action = %(action_mwl)s/" /etc/fail2ban/jail.local
Как Вы видите для bantime, destemail и действия, я могу сделать так. Только если это соответствует точно. Я мог быть то, что bantime или destemail изменяется, затем сценарий не будет работать. Что я могу использовать для создания после = знак гибкий. Например, если bantime не 600, но 700 он также изменит использование сценария удара.
Также существует раздел для конфигурирования SSH и 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
Я также хочу указать порт, который я использую для SSH или включаю SSHD с sed и регулярным выражением. Но поскольку Вы видите, когда я буду соответствовать на включенном, я изменю все тюрьмы или если я буду соответствовать на порте, то я изменю все порты в конфигурации. Это не то, что я хочу.
Кто-либо может помочь мне с путем к configur Fail2Ban со сценарием и гибким путем?
Большое спасибо, Raoul
Для однострочных редактирований Вы могли использовать
sed -e "s/^bantime = .*/bantime = $1/"
или, более эластично
sed -re "s/^bantime[[:blank:]]*=.*/bantime = $1/"
Для многострочной проблемы используйте селекторы строки для разграничивания редактирований
sed -re "/^\[ssh\]$/,/^\[/s/port[[:blank:]]*=.*/port = $1/"