Привет codeby.net!
Не так давно ко мне в руки попал такой устройство как bladeRF x115. Первое что мне захотелось сделать это поднять свою GSM станцию. Когда я начал этим заниматься у меня возникли сложности в процессе установки и настройки необходимого софта. Информации на русскоязычных площадках я не нашел а на зарубежных информация устарела. В процессе пришлось пройти через все грабли самому. В связи с этим собственно появилась мысль описать процесс установки и настройки YateBTS под bladeRF.
Настраивать будем под Ubuntu 18.04.
Для начало установим необходимые пакеты:
sudo apt-get install -y libbladerf-dev git subversion autoconf apache2 php libapache2-mod-php g++ make libgsm1-dev libgusb-dev rlwrap
Затем установим ПО для bladeRF:
Код:
sudo add-apt-repository ppa:bladerf/bladerf
sudo apt-get update
sudo apt-get install bladerf
Установим FPGA в соответствии с вашей моделью bladeRF:
Код:
sudo apt-get install bladerf-fpga-hostedx40 # for bladeRF x40
sudo apt-get install bladerf-fpga-hostedx115 # for bladeRF x115
sudo apt-get install bladerf-fpga-hostedxa4 # for bladeRF 2.0 Micro A4
sudo apt-get install bladerf-fpga-hostedxa9 # for bladeRF 2.0 Micro A9
Устанавливаем Yate:
Код:
svn checkout http://voip.null.ro/svn/yate/trunk yate
cd yate
./autogen.sh
./configure
sudo make install-noapi
sudo ldconfig
Перемещаемся обратно домашнюю директорию:
cd ~
Устанавливаем YateBTS:
Код:
svn checkout http://voip.null.ro/svn/yatebts/trunk yatebts
cd yatebts/
Прежде чем начать собирать проект нужно внести некоторые изменения иначе будет ошибка при зборки.
Откроем файл
mbts/GPRS/MSInfo.cpp
:
Код:
GPRSLOG(INFO,GPRS_MSG|GPRS_CHECK_OK) << "Multislot assignment for "<<this<<os; - найдем эту строку
GPRSLOG(INFO,GPRS_MSG|GPRS_CHECK_OK) << "Multislot assignment for "<<this<<(!os.fail()); и заменим ее на эту
Сохраним изменение и перейдем к следующему файлу.
Тоже самое сделаем с файлом
mbts/SGSNGGSN/Sgsn.cpp
Код:
SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing SgsnInfo:"<<ss);
SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing SgsnInfo:"<<(!ss.fail()));
SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing gmm:"<<ss);
SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing gmm:"<<(!ss.fail()));
Когда файлы будут исправлены можно перейти к сборке проекта.
Код:
./autogen.sh
./configure
sudo make install
Настраиваем Web GUI YateBTS:
Код:
cd /var/www/html
sudo ln -s /usr/local/share/yate/nipc_web yatebts
sudo chmod -R a+w /usr/local/etc/yate
Ссылка скрыта от гостей
- по этому адресу можно получить доступ к Web интерфейсу YateBTSНастраиваем GSM BTS:
Откроем Web панель YateBTS
Переходим на вкладку
BTS Configuration
и выставляем настройки:
Код:
Radio.Band=900
Radio.C0=75
Identity.MCC=001
Identity.MNC=01
Radio.PowerManager.MaxAttenDB=35
Radio.PowerManager.MinAttenDB=35
После того как настройки выставлены нажимаем
Submit
. Теперь надо выставить разрешение на подключение к нашей станции. Переходим на вкладку Subscribers
в правом нижнем углу выбираем Accept by REGEXP
В поле Regexp пишем
.*
и нажимаем Save
.Затем настроим перехват GSM сигнала. Для этого перейдем на вкладку
BTS Configuration
чуть ниже найдем вкладку Tapping
. Выставим галочку напротив GSM и нажмем Submit
.Эта настройка позволяет захватывать GSM сигнал через GSMTAP. На этом минимальная настройка GSM сети закончена.
Запускаем BTS:
Запускаем GMS станцию командой
sudo yate -s
. Если все настроено правильно вы должны увидеть много текста среди которого будет:
Код:
Release 6.1.1 formal build date Jun 6 2019 rev671
2019-06-06_10:27:05.242232 <mbts:NOTE> proc 27570 GSMConfig.cpp:80:regenerateBeacon: thread 139826990253888: regenerating system information messages, changemark 1
Starting MBTS...
Также определить работает ли станция можно посмотрев на плату первый и последний светодиод должен гореть стабильно а центральный мигать. Включив поиск на телефоне доступных сетей мы должны увидеть
Test PLMN 1 - 1 2G
это и есть наша тестовая сеть.Зарегистрировавшись в сети мы получим стандартное сообщение его можно изменить в файле
/usr/local/share/yate/scripts/nib.js
на строчки 379
.В Web интерфейсе на вкладке
Subscribers
чуть ниже перейдя кликнув по ссылки Online Subscribers
мы видим зарегистрированных пользователей которые были онлайн за последних 10 дней (частоту обновлений можно изменить в настройках).Установка модуля SMSSend:
Из коробки отправить произвольное сообщение клиенту нельзя но это можно сделать через сторонний модуль YateBTS_smssend. Давайте его установим (если у вас запущен yate остановить его перед начал установки модуля).
Код:
git clone https://github.com/Ark444/YateBTS_smssend.git
cd YateBTS_smssend
sudo make
sudo make install
Если нет ошибок установка прошла успешна. Запустим Yate затем в новом окне терминала подключаемся к удаленному интерфейсу:
rlwrap nc localhost 5038
. Выводим список зарегистрированы пользователи командой nipc list registered
:
Код:
IMSI MSISDN
--------------- ---------------
00101001100110 55124323
И по шаблону составляем команду для отправки сообщения
smssend <MSISDN> <CALLER> <message>
- smssend 5569413 911 Hello CODEBY.NET
после отправки наблюдаем результатНа этом пожалуй закончу. Если вам понравился материал вы можете прочить следующую стать в премиум разделе EvilBTS или подменяем GSM сети с помощью YateBTS и bladeRF
p.s Если вам понравилась какая либо статья не забывайте нажимать кнопку
Последнее редактирование: