Как защитить Asterisk и FreePBX от атак брутфорса и VoIP-мошенничества

В этом руководстве я покажу вам, как обеспечить безопасность Asterisk и FreePBX, настроив эффективный черный список VoIP с использованием фильтрации географического местоположения.

В настоящее время существует множество попыток брута и мошенничества с VoIP, нацеленные на Asterisk, FreePBX и любую другую систему PBX в Интернете.

Задача любого системного администратора минимизировать вероятность успеха для таких попыток — близко к нулю.

Один из способов защитить Asterisk и FreePBX от таких попыток — использование Fail2ban и VoIP Blacklist.

Раз вы уже потратили какие-то средства и решили купить АТС, можно сделать шаг , который позволит сэкономить вам пропускную способность и защитить ваш бизнес.

Чтобы упростить нашу работу, мы будем использовать VoIPBL, который является распределенным черным списком VoIP, который направлен на защиту от мошенничества с VoIP и минимизацию злоупотребления сетью, имеющей общедоступные PBX's.

Как VoIPBL защищен?

Функция VoIPBL Geolocation позволяет блокировать весь сетевой трафик из стран, с которыми сети не нужно связываться, или которые являются известными создателями вредоносной активности.

На ссайте вы можете проверить, находится ли ваш IP-адрес в черном списке.

Как установить VoIPBL

Черный список VoIP зависит от Fail2ban, чтобы реализовать черный список на вашем сервере PBX.

Убедитесь, что установлен пакет fail2ban и запущен сервис:

sudo yum install epel-releasesudo yum install fail2ban fail2ban-systemd

Для Ubuntu и других ос семейства Debian выполните:

sudo apt-get -y install fail2ban ufw

Если вы используете CentOS 6 или любое другое семейство RHEL 6, установите iptables-services и fail2ban без 2ban-systemd

sudo yum install iptables-services fail2ban

Настройки по умолчанию для Fail2ban находятся в ./etc/fail2ban/jail.conf

Базовая конфигурация fail2ban будет иметь мониторинг ssh. Давайте добавим это в файл /etc/fail2ban/jail.local.

$ sudo vim /etc/fail2ban/jail.local

Добавьте следующий контент:

[postfix]enabled= trueport = smtpfilter = postfixlogpath= /var/log/mail.logmaxretry = 3[ssh]enabled = trueport= sshfilter= sshdlogpath= /var/log/auth.logmaxretry = 3[vsftpd]enabled = falseport = ftpfilter = vsftpdlogpath = /var/log/auth.logmaxretry = 5[pure-ftpd]enabled = trueport = ftpfilter = pure-ftpdlogpath = /var/log/syslogmaxretry = 3

Затем запустите и включите службу fail2ban

sudo systemctl enable fail2ban.servicesudo systemctl start fail2ban.service

Загрузите скрипт voipbl.sh и поместите в /usr/local/bin/

wget http://www.voipbl.org/voipbl.sh -O /usr/local/bin/voipbl.sh

Сделайте исполняемым скрипт:

chmod +x /usr/local/bin/voipbl.sh

В приведенном выше примере используется iptables.

Если ваша система поддерживает ipset, вы можете использовать следующий скрипт:

#!/bin/bashURL="http://www.voipbl.org/update/"set -eecho "Downloading rules from VoIP Blacklist"wget -qO - $URL -O /tmp/voipbl.txtecho "Loading rules..."# Check if rule set exists and create one if requiredif ! $(/usr/sbin/ipset list voipbl > /dev/null 2>&1); thenipset -N voipbl iphashfi#Check if rule in iptablesif ! $(/sbin/iptables -w --check INPUT -m set --match-set voipbl src -j DROP > /dev/null 2>&1); then/sbin/iptables -I INPUT 1 -m set --match-set voipbl src -j DROPfi# Create temporary chainipset destroy voipbl_temp > /dev/null 2>&1 || trueipset -N voipbl_temp iphashcat /tmp/voipbl.txt |\awk '{ print "if [ ! -z \""$1"\" -a \""$1"\" != \"#\" ]; then /usr/sbin/ipset -A voipbl_temp \""$1"\" ;fi;"}' | shipset swap voipbl_temp voipblipset destroy voipbl_temp || trueecho "Done! Rules loaded"

Затем добавьте новый jail Fail2ban в /etc/fail2ban/jail.conf:

[asterisk-iptables]action = iptables-allports[name=ASTERISK, protocol=all]voipbl[serial=XXXXXXXXXX]

Теперь определите действия Blacklist для протокола Fail2ban по адресу /etc/fail2ban/action.d/voipbl.conf.

sudo vim  /etc/fail2ban/action.d/voipbl.conf

Добавьте

# Description: Configuration for Fail2Ban[Definition]actionban ="/ban/?serial=&ip=&count="actionunban ="/unban/?serial=&ip=&count="[Init]getcmd = wget --no-verbose --tries=3 --waitretry=10 --connect-timeout=10 \--read-timeout=60 --retry-connrefused --output-document=- \--user-agent=Fail2Banurl = http://www.voipbl.org

Теперь мы можем создать файл задания cron для обновления правил каждые 3 часа:

$ sudo vim /etc/cron.d/voipbl# update blacklist each 4 hours0 */4 * * * * root /usr/local/bin/voipbl.sh

Теперь мы можем создать файл задания cron для обновления правил каждые 3 часа:

$ sudo vim /etc/cron.d/voipbl# update blacklist each 4 hours0 */4 * * * * root /usr/local/bin/voipbl.sh

Когда это будет сделано, перезапустите fail2ban daemon, чтобы включить защиту от VoIP-мошенничества:

sudo systemct restart fail2ban

Вы также можете выполнять расширенные настройки, такие как:

  • Фильтровать по странам
  • Фильтровать по сети

Отправка комментария

0 Комментарии