在用户高峰时段,常用的移动网络很容易堵塞,不堪重负。所以,关键时刻能够建立安全可靠的通信,是非常重要的。在本案例中,我用的移动通信系统是GSM协议,为了能够将GSM协议广播出去,我使用了BladeRF。

需要的设备

1.树莓派,本文使用的是树莓派3;

2.Micro SD卡,本文使用的是32 GB的;

3.Nuand BladeRF,本文使用的是BladeRF x40;

4.在树莓派上启用SSH,为了便于使用,终端也可以正常运行;

5.一部兼容GSM和SIM卡的手机;

6.SIM卡(sysmoSIM-GR2);

7.一根网线;

树莓派的设置

译者注:BladeRF是由树莓派使用YateBTS控制的,YateBTS是实现手机访问网络和GSM核心功能和协议的软件,允许手机通过语音、文本和数据进行通信。

1.将网线、电源和键盘插入到树莓派中,然后将电源适配器通电。注意:在树莓派中默认的用户名为pi,默认的密码为raspberry

2.开始运行;

sudo raspi-config

键盘布局进行合理化布局

1.找到“本地化选项”,按“Enter”键;

2.找到“更改键盘布局”,按“Enter”键;

3.找到“Other”,按“Enter”键;

4.找到“英语(美式)”,按“Enter”键;

5. 找最上面的“英语(美式)”,按“Enter”键;

6.点击“进入”,接受下面两个屏幕上的默认值,因为它们不适用。

7.完成最后两步后,返回到主菜单。

启用SSH

1.找到“接口选项”,按“Enter”键;

2.找到“SSH”,按“Enter”键;

3.找到“Yes”,按“Enter”;

4.在下一个屏幕上,按“Enter”键返回主菜单;

5.进入主菜单,选择“完成”,然后按“Enter”;

6.返回终端时,运行下面的命令来启用配置设置;

sudo reboot now

网络部署过程

为了在设置好的树莓派上启用SSH,请使用以下命令记录Pi的IPv4地址:

ifconfig eth0

然后在另一台计算机上,利用终端应用程序运行:

ssh pi@[INSERT PI IPV4 ADDRESS HERE]

一旦出现证书的提示,就必须再次输入用户名pi和默认的密码raspberry。

现在你就可以与Pi进行远程交互了:

# Download the script from GitHub
wget https://raw.githubusercontent.com/MBRO95/PortableCellNetwork/master/PortableCellNetwork.sh
# Make the downloaded script executable
chmod +x ./PortableCellNetwork.sh

首先,脚本会检查你是否是以root身份运行的,因此请确保你必须输入以下命令的“sudo”部分。

在不记录输出的情况下运行脚本:

sudo ./PortableCellNetwork.sh

在记录输出的情况下运行脚本:

sudo ./PortableCellNetwork.sh | tee install.log

1.该脚本将查询网络名称,你需要按“Enter”键接受“DuaneDunstonRF”的默认名称或提供一个能够确认的信息;

2.确认网络名称;

3.该脚本现在将启动安装和配置过程;

4.当脚本启动快完成时,它将查询“pi”用户的新用户密码。此时,你需要重新输入密码,以加强安全性。

当完成脚本启动时,它将报告运行的时间并等待重新启动输入。

1.按任意键重新启动,这样你将被重新被引导到桌面环境中,此时,你只需在启动的弹出窗口中选择“默认配置”选项。

2.一个名为“StartYateBTS”的启动脚本将出现在 ‘/home/pi’ 中,并开始启动移动网络进程。不过要启动脚本,必须在出现脚本名称后通过发送一个“- i”标志以交互方式运行,“- i”标志如以下所示:

sudo ./StartYateBTS.sh -i

开始启动后,脚本将会出现以下两个运行状态:

1.打开一个终端窗口,报告Yate(移动网络)状态

2.打开一个Firefox浏览器窗口,该窗口将被导航到YateBTS(基于web的移动网络配置)。此时,你就可以查看或修改网络配置的设置了,并管理或编写设备的SIM卡。

便携式移动网络的的搭建

要将兼容GSM和SIM卡的手机连接到移动网络,需要部署SIM卡以配合正确的设置。YateBTS使用的是PySIM工具。在安装脚本时,我已经把PySIM设置为支持sysmosim-gr2卡的正确版本。不过前提是确保兼容的SIM卡编写器已经被插入到了树莓派中,并将SIM卡置于它的进程中。

现在,你就可以打开名为Manage SIM的选项卡,确保生成的随机IMSI设置被选中,注意插入用户不需要被选中。如果你不小心选中插入用户的选项,则移动网络可能将受到干扰。

接下来是检查在“高级”选项中是否进行了正确的设置,因为确保移动网络选择设置是正确的。否则,使用默认设置并点击保存。

下图就是对SIM重新编程后的输出,切记,在管理SIM的列表中对SIM卡进行部署。

在将SIM卡插入GSM手机后,YateBTS将会发送一个回应信息,并显示如下所示的手机号码。如果Android手机没有正确连接到手机网络,请打开拨号器应用程序然后输入##4636## A,此时,设置菜单将出现在手机信息选项卡中。接着请讲网络类型选为GSM,然后重新启动手机。

移动网络的安全保障

我安装的脚本都是基于Internet安全中心(CIS)的安全模型,该脚本集成了为Debian 8操作系统设计的基准模型,会让移动通信的安全得到最有效的保护。其实一开始,我是以树莓派的安全标准来进行安全设置的。但后来,我发现它不支持可以实现安全控制的自定义分区,但安全脚本不但可以保护各种控件,同时也能保护莓派操作系统和Yate软件的功能。

另外就是随时更新操作系统:

sudo apt-get -y dist-upgrade

linux sticky bit 目录权限的设置,这样做可以防止未经授权的用户修改或重命名属于不同用户的文件:

df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type d -perm -0002 2>/dev/null | xargs chmod o-t

删除不必要的文件系统:

echo "install cramfs /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install freevxfs /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install jffs2 /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install hfs /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install hfsplus /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install squashfs /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install udf /bin/true" >> /etc/modprobe.d/CIS.conf

删除不必要的网络协议:由于linux内核能支持不常用的网络协议,而这些协议又与本次的目标无关,因此,它们应该被禁用。

echo "install dccp /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install sctp /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install rds /bin/true" >> /etc/modprobe.d/CIS.conf
echo "install tipc /bin/true" >> /etc/modprobe.d/CIS.conf

禁用核心转储,以防应用程序崩溃。

echo "* hard core 0" >> /etc/security/limits.conf
echo 'fs.suid_dumpable = 0' >> /etc/sysctl.conf
sysctl -p
echo 'ulimit -S -c 0 > /dev/null 2>&1' >> /etc/profile

禁用不需要的服务,以防止这些服务被开启。

systemctl disable avahi-daemon
systemctl disable triggerhappy.service
systemctl disable bluetooth.service

众所周知,Pi为默认密码,所以切记更改树莓派的原始密码。

passwd pi

测试环境的搭建

共享文件路径的目录

/usr/local/share/yate

进入conf文件路径的目录

/usr/local/etc/yate

进入用户文件路径的目录

/root/.yate

模块路径的目录

/usr/local/lib/yate

如何测试

1.Yate NIB设置中包括一个ELIZA聊天软件,你可以把SMS消息发送到35492与该软件进行测试通信。

2.利用Android手机的配置菜单,拨打4636 # # # #测试通信。

本文翻译自:https://mbro95.github.io/PortableCellNetwork/如若转载,请注明原文地址: https://www.4hou.com/mobile/16815.html更多内容请关注“嘶吼专业版”——Pro4hou

移动数据网络类型是nr_便携式移动网络的快速搭建方法相关推荐

  1. OSPF网络类型详解

    背景 OSPF区域是由不同类型的网络链路组成的,邻接行为随网络类型而异,而要确保OSPF在某些类型的网络上能正确运行,必须对其进行正确的配置.根据拓扑和需求的变化,OSPF可以手工修接口的网路类型来适 ...

  2. 路由 OSPF常见4种网络类型MA、P2P、NBMA、P2MP、OSPF报头字段信息简介。

    4.2.1 路由 OSPF(OSPF常见4种网络类型.OSPF报头信息) 目录 OSPF常见的4种网络类型 广播类型(Broadcast 或 MA) P2P NBMA P2MP OSPF报文发送形式 ...

  3. 网络类型—p2p、MA(BMA广播型多路访问、NBMA非广播型多路访问)

    网络类型--二层的封装技术: 一.网络类型分类: 1.点到点 --在一个网段中,仅允许存在两个节点 2.MA – 多路访问 在一个网段中节点的数量不做限制 2.1)BMA – 广播型多路访问 2.2) ...

  4. 网络笔记_OSPF不同网络类型通讯、虚连接的应用

    OSPF邻居建立过程 手动建立邻居 OSPF支持通过单播方式建立邻居关系. 对于不支持组播的网络可以通过手动配置实现邻居的发现和维护 命令: OSPF的数据库(LSDB)同步过程 选举主从路由器 选举 ...

  5. Android中检测手机制式和移动网络类型

    Android中与电话功能相关的类是 TelephonyManager ,此类中定义了很多常量,以下分类说明 获取以下信息需要在AndroidManifest.xml中指定权限 一. 数据连接状态 获 ...

  6. 趣解ospf网络类型

    ospf协议定义了八种网络类型 (1)点到点网络(Point to point): (2)点到多点网络(Point to multipoint): (3)点到多点非广播网络(Point to mult ...

  7. linux 查看文件中数据类型,Linux下使用file命令确定文件中数据的类型-文件类型...

    青年是学习智慧的时期,中年是付诸实践的时期.--卢梭 在Linux系统中查看一个文件之前,要先确定该文件中数据的类型,之后再使用适当的命令或方法打开该文件. 与windows系统不同,在Linux系统 ...

  8. swift php 类型判断,iOS开发 - Swift实现检测网络连接状态及网络类型

    一.前言 在移动开发中,检测网络的连接状态尤其检测网络的类型尤为重要.本文将介绍在iOS开发中,如何使用Swift检测网络连接状态及网络类型(移动网络.Wifi). 二.如何实现 Reachabili ...

  9. 网络类型NAT3改NAT1 基于(联通)光猫桥接、路由器红米AX5、win10系统

    前言 主机玩家(PS.XBOX.NS),在进行联机游戏的时候应该会注意到网络类型,而事实上PC玩家以及部分有网络需求的网络从业人员也会碰到,对网络类型的高要求--NAT1 网络类型一般分为四种: NA ...

最新文章

  1. 解决PLSQL 查询后显示中文为问号(???)问题
  2. 第二次作业(个人项目实践)
  3. 吸尘车-真空吸尘车:真空吸尘车
  4. pycharm下载与安装
  5. Java的数据库编程之背景概述
  6. 【Flink】Flink 如何 保证 同一个key对应的state是一个呢?KeyedProcessFunction
  7. 【git】git如何添加本地不是git的项目到Git库中
  8. 易语言mysql线程池数量_线程池最佳线程数量到底要如何配置?
  9. 搭建Docker环境---Docker概述
  10. 基于java的志愿信息管理系统_基于jsp的志愿者管理系统-JavaEE实现志愿者管理系统 - java项目源码...
  11. Route-Policy
  12. 软件测试面试题:所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?
  13. ios带嗅探器的浏览器_浏览器嗅探器——WhichBrowser
  14. Tensorflow概念详解
  15. python空行分隔代码_python空行分隔
  16. oracle 中sql实现进一、去尾和四舍五入。
  17. 相约AIIA!百度飞桨深度学习公开课预约中
  18. Codeforces-Round#548(Div.2)-C-Edgy Trees-快速幂
  19. HDU-1028题解
  20. 样条函数 -- spline function

热门文章

  1. CS224n笔记3 高级词向量表示
  2. Jquery 中的CheckBox、 RadioButton、 DropDownList的取值赋值
  3. JQuery + Json 练习随笔
  4. C++中使用try{}catch()的优/缺点
  5. 没有mmu可以跑Linux吗?
  6. 马上工作了,想问下要注意哪些问题?
  7. 多图上传乱序php,discuz图片顺序混乱解决方案_php技巧
  8. Python3——FTP(文件传输协议)
  9. 智慧交通day02-车流量检测实现07:匈牙利算法
  10. Python实现访问者模式