一、概述
基于Asterisk的IPPBX或者网关设备如果被放到公网上,设备很可能会收到大量的SIP请求(注册Register和打电话INVITE等),导致系统运行效率低且存在很大的安全隐患,比如盗用设备拨打国际电话等。而Fail2Ban 就是一个非常不错地防止VoIP欺诈和暴力攻击的工具,配合Asterisk可以提高安全性。Fail2ban是一个基于日志IP的过滤筛选器,根据fail2ban提供的匹配规则提取IP,一旦这些 IP在一定的时间内到达了规定的次数就会将此IP地址添加到iptables以禁止该IP访问。
Asterisk-16版本都是默认使用PJSIP,因此本文将描述如何将PJSIP+Fail2ban配合搭建VoIP欺诈和暴力攻击的环境以及解决在Fail2ban搭建过程中遇到的问题(ERROR NOK: ('Action firewallcmd-rich-rules already exists)。
二、安装Fail2ban
2.1 安装Fail2ban
[root@localhost ~]# yum install fail2ban
2.2 配置fail2ban
1、在/etc/fail2ban/jail.conf增加action_sip
action_sip=%(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", prot