本文主要是介绍freeswitch借助fail2ban屏蔽骚扰注册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
fail2ban屏蔽fs中的骚扰注册
- 背景
- Fail2Ban
- 安装
- 配置
背景
在阿里云上部了一套fs满足公网业务需要。布置好后打开fs_cli看了一眼,全是来自公网的骚扰注册,足见公网环境的风险(不过aws似乎情况稍好)。
Fail2Ban
使用Fail2Ban来防御注册骚扰的主要原因是,Fail2Ban已经和freeswitch有了很好的集成。Fail2Ban的工作原理简单来说,就是扫描fs的日志,从中发现疑似骚扰的ip,然后直接ban掉。
安装
centOS下安装很简单:yum install fail2ban
配置
- 修改扫描日志路径
/etc/fail2ban/jail.conf中,[freeswitch]标签下的logpath,修改为fs日志的路径:
- 自定义封禁逻辑
/etc/fail2ban/jail.d/路径下新增配置文件touch freeswitch.local。新增[freeswitch]标签,并新增如下配置(如果60s内检查到某个ip注册失败5次,则将这个ip封禁86400s)。如果要加白名单也是在这里加。
- 设置日志捕获和匹配逻辑
/etc/fail2ban/filter.d/freeswitch.conf中:
- 设置自启并重启
设置自启:systemctl enable fail2ban.service
重启:systemctl restart fail2ban
- 开启防火墙
fail2ban需要和防火墙一起工作。 - 查看firewalld状态:
systemctl status firewalld
- 开启防火墙:
systemctl start firewalld
- 设置自启:
systemctl enable firewalld
注意!!!firewalld默认是所有端口全ban的,所以要先开放我们需要的端口,例如业务需要8082的tcp端口,和16384-32768的udp端口:
- 查看8082端口是否开放:
firewall-cmd --query-port=8082/tcp
- 开启8082端口:
firewall-cmd --zone=public --add-port=8082/tcp --permanent
- 批量开启16384-32768端口:
firewall-cmd --zone=public --add-port=16384-32768/udp--permanent
- 查看所有已开放端口:
firewall-cmd --zone=public --list-ports
- 重启防火墙:
firewall-cmd --reload
- fail2ban基本命令
- 查看fail2ban客户端状态:
fail2ban-client status
- 查看fs的fail2ban状态:
fail2ban-client status freeswitch
- ban掉一个ip:
fail2ban-client set freeswitch banip 113.113.113.113
- 解禁一个ip:
fail2ban-client set freeswitch unbanip 113.113.113.113
- 查看fail2ban日志
fail2ban日志位于/var/log/fail2ban.log,可以看到fail2ban运行详情:
重启后从日志中可以看到,连ban了多个ip。再到fs_cli中看一眼,全世界都清净了。 - fail2ban不仅可以屏蔽骚扰注册,同时也可以屏蔽骚扰呼叫,我这里fs对ip做了acl控制,所以暂时用不到,之后如果用到再更新。
- 这篇博文写的更详细。
这篇关于freeswitch借助fail2ban屏蔽骚扰注册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!