Это продолжение предыдущего вопроса о создании тюрьмы для определенного URL-адреса .
Он запрещает IP Cloudflare, а не пользователя. Я выполнил это руководство, чтобы настроить Фильтр Cloudflare, но у меня проблемы.
Jail.local выглядит так ...
[apache-specific-url]
enabled = true
port = http,https
filter = apache-specific-url
action = cloudflare
iptables-allports
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1
actions.d / cloudflare.conf
Это cloudflare.conf из Fail2ban V0.11.1, который я и использую. Похоже, это последняя и правильная версия. Я правильно установил cftoken
& cfuser
в файле.
actionban = curl -s -o /dev/null -X POST -H 'X-Auth-Email: ' -H 'X-Auth-Key: ' \
-H 'Content-Type: application/json' -d '{ "mode": "block", "configuration": { "target": "ip", "value": "" } }' \
https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules
actionunban = curl -s -o /dev/null -X DELETE -H 'X-Auth-Email: ' -H 'X-Auth-Key: ' \
https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules/$(curl -s -X GET -H 'X-Auth-Email: ' -H 'X-Auth-Key: ' \
'https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules?mode=block&configuration_target=ip&configuration_value=&page=1&per_page=1' | tr -d '\n' | cut -d'"' -f6)
Моя информация об API и Curl в порядке
Если я скручу следующее, тестовый IP-адрес действительно заблокирован в облачной вспышке, и я получу успех по возвращении.
curl -s -X POST "https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules" \
-H "X-Auth-Email: CloudFlare-username" \
-H "X-Auth-Key: CloudFlare-API-Key" \
-H "Content-Type: application/json" \
--data '{"mode":"block","configuration":{"target":"ip","value":"1.2.3.4"},"notes":"Fail2ban"}'
/var/log/fail2ban.log показывает следующее
2021-01-15 14:59:08,461 fail2ban.filter [3439]: INFO [apache-specific-url] Found 172.69.63.147 - 2021-01-15 14:59:07
2021-01-15 14:59:08,981 fail2ban.actions [3439]: NOTICE [apache-specific-url] Ban 172.69.63.147
Я не уверен, что мне здесь не хватает, но не похоже, что я правильно настроил тюрьму, чтобы получить фактический IP-адрес от Cloudflare и заблокировать его локально или в Cloudflare.
Любая помощь очень ценится.