使用BladeRF或者B210快速构建4G LTE测试网
条评论之前写了一篇《使用srsLTE搭建4G基站用于日常测试》应该给大家提供了一些参考,现在做一个简单的更新,方便新手能够更方便快捷的搭建测试网络,用于安全审计或者其他相关测试工作。
0x10 准备工作
首先,需要一台电脑,最好新一点、配置高一点,不是说老旧电脑不能用,只不过可能会遇到一些性能瓶颈或者一些莫名其妙的问题,当然,也不推荐太新的,有可能有驱动兼容问题,比如我买的联想小新13 PRO,R7-4800U性能非常赞,但Linux下的驱动有兼容性问题,坑了我很久。
建议使用物理机直接进行部署测试,USB口选择使用主板上带的而不是USB Hub引出的,这样可以避免很多莫名其妙的问题。如果实在不允许,用虚拟机也可以,但稳定性不能保证。使用虚拟机建议使用VMware新版本,当前是16.x,不建议使用古董版本。新建虚拟机一定注意需要在设置里将USB口设置为3.x,并安装VMware Tool,开源的或者内置的都可以。
系统建议Ubuntu 18.04,如果追新用Ubuntu 20.04也可以。这里使用Ubuntu 18.04进行演示。
其次,需要全双工SDR,比较常用的USRP、BladeRF、LimeSDR都可以,这里以USRP B210和BladeRF x40为例。
再次,两根4G天线、SIM测试白卡、写卡器也是需要的。
注意,三大运营商的SIM卡,也就是平时使用的移动、联通、电信卡是无法接入的!
最后,测试手机,虽然可能需要测试的是车机,是手表,是各种物联网设备,但在网络搭建完成之前,最好用手机进行测试。
0x20 环境部署
设备都准备完毕后,就可以进行部署安装了。所有操作都是在root用户或者root权限下进行。
0x21 安装低延迟内核
这一步不是必须,但低延迟内核同样能提升环境稳定性,尤其是电脑配置不高,或者使用虚拟机的情况下。
1 | apt-get install -y linux-image-`uname -r | cut -d- -f1-2`-lowlatency |
或者从官网下载对应版本的deb进行安装:
https://kernel.ubuntu.com/~kernel-ppa/mainline
安装完成后,重启系统加载新内核
0x22 设置CPU为性能模式
这一步也不是必须,主要针对电脑配置不高的情况。
如果只是临时调整:
1 | apt-get install cpufrequtils |
如果希望重启后保持【可能不起作用】:
1 | apt-get install sysfsutils |
0x23 安装SDR驱动
安装依赖包:
1 | apt-get install libboost-all-dev libusb-1.0-0-dev python-cheetah doxygen python-docutils g++ cmake python-setuptools python-mako python-pip python-requests cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libmbedtls-dev libzmq3-dev libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-qt5-dev qtbase5-dev |
如果使用USRP:
1 | git clone https://github.com/EttusResearch/uhd |
如果想安装其他版本UHD,可以参考《安装任意版本UHD驱动》。
安装完成UHD后,还需要下载image镜像,这一步最好需要挂代理:
1 | uhd_images_downloader |
如果没有代理挂载,可以从官网下载对应版本压缩包,之后解压到 “/usr/local/share/uhd/images” 目录。
官网:http://files.ettus.com/binaries/images/
插上USRP B210,使用 “uhd_find_devices” 和 “uhd_usrp_probe” 命令测试是否正常:
如果使用BladeRF x40或者x115:
安装SoapySDR:
1 | git clone https://github.com/pothosware/SoapySDR.git |
安装BladeRF,这里最好也要挂梯子,因为编译时候会下载一些依赖:
1 | git clone https://github.com/Nuand/bladeRF |
安装完成后,插上bladeRF使用 “bladeRF-cli -i” 测试一下,如果没插DC电源可能会有警告,无视即可:
0x24 安装srsLTE
驱动安装完毕后,就可以开始安装srsLTE,建议用源码安装。
如果使用apt安装:
1 | add-apt-repository ppa:srslte/releases |
如果使用源码安装:
1 | git clone https://github.com/srsLTE/srsLTE.git |
如果电脑配置高,想使用GUI:
1 | git clone https://github.com/srsLTE/srsGUI.git |
0x25 修改配置文件
先生成默认配置文件,参数使用”user”会讲配置文件生成到用户路径”~/.config/srsLTE/“,参数使用”service”则会生成到”/etc/srsLTE”路径,这里使用”user”:
1 | srslte_install_configs.sh user |
配置网络接口,使用”ifconfig”看下网口,选择出口网关的网口编号,这里是ens33:
1 | srsepc_if_masq.sh ens33 |
修改epc配置文件:
vi /root/.config/srslte/epc.conf
这里默认即可,不要随意乱改,影响运营商正常通信!至于其他要调速度、MIMO等等,读者可以自行参考官网,对于新手没必要修改。
apn是上网所需,这里名称是 “srsapn”
添加准入SIM卡,按需添加,这里直接新增了10张:
1 | vi /root/.config/srslte/user_db.csv |
字段的涵义在配置文件中有,这里不多做解释:
0x26 写白卡
之后用 “SIM Personnalize tools” 配合读卡器,把添加的卡的信息写入白卡,这里举3张卡为例:
可以看到,几张卡不同地方,主要是ICCID、IMSI和MSISDN,如果更多的卡也一样,和前面的配置文件中内容对应即可。其中SPN叫 “5G Test” 是因为我有5G基站用于5G测试也是用这个卡,读者可以自行定义成”4G Test”或者其他名称。
0x30 测试
将写卡的测试卡装入测试手机或者其他待测设备后,启动服务即可。当然,最好是在屏蔽房或者屏蔽箱里面进行测试,防止影响他人。
可以看到手机已经连上基站了,如果没有连上,切到飞行模式再切回来,或者重启手机。
在设备接入过程中,可以看到日志。
手机或者测试设备接入后,如果无法上网,就需要修改下APN设置,修改为前面介绍 “epc.conf” 配置文件中设置的”srsapn”,修改后一定记得保存!修改完成后,就可以上网了。
0x40 数据抓包和日志
如果想看更详细的日志怎么办?
如果只是看流量,用wireshark直接抓srsepc核心网出口”srs_spgw_sgi”即可。
1 | add-apt-repository ppa:wireshark-dev/stable |
srsLTE也自带抓包功能,包括信令数据,在配置文件中有开关,打开即可,比如EPC配置:
此外,还有log文件,配置文件中默认设置在”/tmp/epc.log”和”/tmp/enb.log”。
如果要开启图形,也同样是修改配置文件,不过对于大多数人,开启图形价值不大,徒增负载而已。
0x50 QA
0x51 重启后无法上网
1、每次重启电脑后,都需要执行iptables脚本
1 | srsepc_if_masq.sh ens33 |
2、 手机需要设置APN,不设置无法上网
3、检查DNS设置是否正确
0x52 手机无法接入
1、请确认/root/.config/srslte/user_db.csv中配置文件和写的白卡是否对应
2、请确认手机是否支持对应频点,尤其是修改过plmn和频点的配置文件
0x53 如何修改PLMN
1、修改epc配置文件和enb配置文件中mcc和mnc即可。
2、SIM卡配置需要进行对应修改,或者手动选择基站入网。
注意:如果要修改到当前运营商的plmn,请在屏蔽房或者屏蔽箱测试!干扰其他正常设备通信,是违法行为!
0x54 能否像2G时代一样轻易劫持其他人手机
不可以,4G是双向鉴权,即使把其他手机吸入,也会因为鉴权不通过而无法入网。而运营商是能发现的,会当伪基站处理。伪基站是怎么处理的,可以百度下!银手镯不好玩!
所以,一定不要zuo,no zuo no die!
0x60 结语
在2G退网,GSM/GPRS逐渐被淘汰的今天,4G LTE是主流,在IoT、移动相关测试中,有一套4G测试环境,能极大的方便工作的开展。毕竟4G不像Wifi,运营商不会给你接口来抓包和调试。
srsLTE相比OAI,部署简单,方便好用。
如果想测试5G,目前简单好用的是传奇大神Fabrice Bellard开发的Amarisoft,可以联系国内代理Geeflex,技术支持超一流,有自己开发的图形界面,使用非常非常方便!
【不用觉得原厂更便宜更好,浪费时间,一是价格不会更低,二是技术支持别想了,有时差且大神很忙,最后,联系法国也会转回到国内代理】
官网:https://www.geeflex.com/
邮箱:[email protected]
Amarisoft的测试环境确实好用,4G/NB-IoT/Cat.1/5G NSA/5G SA都支持,性能爆棚,但毕竟是商业软件,授权价格昂贵【大神也要生活】,单一功能的丐版也得小10W,高性能版本没有几十万的预算就不用考虑了,所以,有条件,有需求,可以采购,没有需求,用srsLTE就够了。
PS:联系Geeflex时候可以报暗号,也就是我的ID “孤独小白”
最后,如果想购买bladeRF,推荐一家淘宝店,到手即用:
https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22096541792.45.26c77cddkAN5P6&id=615846456252
如果想购买USRP B210,推荐老哥参照官网pdf原理图自己画板设计的USRP,加了很多改进,以后还会有其他SDR产品,更加给力:
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-2643080446.32.6b877b23OkzDxO&id=627011883760
不是抄板,不是抄板,不是抄板,重要事项说三遍
对比过市面上其他的,老哥的这款是最好的,毕竟专业!
最重要的是,报暗号,也就是我的ID:孤独小白,至少优惠100RMB!
可以看下老哥店铺:
http://tqtt.taobao.com/