要解决"Asterisk 13.x和fail2ban正则表达式字符串"的问题,您可以按照以下步骤进行操作:
步骤1:安装和配置fail2ban
在您的系统上安装fail2ban。可以使用以下命令之一,具体取决于您使用的操作系统:
安装完成后,进入fail2ban的配置目录。通常情况下,该目录位于/etc/fail2ban/。
编辑jail.local配置文件。使用编辑器打开该文件,例如:
在文件的末尾添加以下内容,以配置Asterisk 13.x的fail2ban过滤器:
[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, [email protected], [email protected], sendername="Fail2Ban"]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 86400
保存并关闭文件。
创建fail2ban的Asterisk过滤器。在同一目录中,创建一个名为"asterisk.conf"的文件,并将以下内容复制到文件中:
[Definition]
failregex = NOTICE.* .*: Registration from '.*' failed for '' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
NOTICE.* .*: Registration from '.*' failed for '' - ACL error \(permit\)
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Call from '.*' \(\d{1,}\.\d{1,}\.\d{1,}\.\d{1,}\) to extension '.*' rejected because extension not found in context
NOTICE.* .*: Call from '.*' \(\d{1,}\.\d{1,}\.\d{1,}\.\d{1,}\) to extension '.*' rejected because extension not found in context '.*'
NOTICE.* .*: Host failed to authenticate as '.*'$
ignoreregex =
保存并关闭文件。
重新启动fail2ban服务,以使更改生效。使用以下命令之一,具体取决于您使用的操作系统:
步骤2:测试fail2ban配置
打开Asterisk的日志文件/var/log/asterisk/messages。
通过在Asterisk服务器上发起一些恶意登录尝试,来测试fail2ban是否正常工作。
在测试完成后,检查fail2ban的日志文件/var/log/fail2ban.log,以确保fail2ban已经成功地禁止了恶意IP地址。
通过按照上述步骤进行操作,您将能够成功配置和使用fail2ban来保护Asterisk服务器免受恶意登录尝试。