我在理解 fail2ban 的工作流程时遇到了一些问题。
我的目标是采取以下行动:
名称:pamysql
用于:执行以<name>
、<failures>
、<ip>
、 ... 作为参数的命令
我创建了action.d/pamysql.conf
:
actionban = wget -q -O /dev/null server.de/fail2ban/ajax.php?action=ban&jail=<name>&ip=<ip>&failures=<failures>&time=<time>&logpath=<logpath>
调用wget
可以成功,但是诸如 等参数<name>
却不成功。
我的jail.conf
样子是这样的:
mta = sendmail
banaction = iptables-multiport
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", ...]
%(mta)s-whois-lines[name=%(__name__)s, ...]
pamysql[name=%(__name__)s, port="%(port)s", logpath=%(logpath)s]
action = %(action_mwl)s
有人能解释一下为什么这些参数不起作用吗pamysql.conf
?
答案1
我找到了。解决方案非常简单:wget 调用的 url 必须放在引号之间。
因此
actionban = wget -q -O /dev/null server.de/fail2ban/ajax.php?action=ban&jail=<name>&ip=<ip>&failures=<failures>&time=<time>&logpath=<logpath>
变成
actionban = wget -q -O /dev/null "server.de/fail2ban/ajax.php?action=ban&jail=<name>&ip=<ip>&failures=<failures>&time=<time>&logpath=<logpath>"