標籤:

如何搭建一個攜帶型移動網路

前言

本文的目標是幫你建立一個便攜安全的移動網路,這樣你就能利用移動手機的一些基本技術,在任何情況下搭建移動網路。大家都知道,在用戶高峰時段,常用的移動網路很容易堵塞,不堪重負。所以,關鍵時刻能夠建立安全可靠的通信,是非常重要的。

以我的手機為例,我手機用的移動通信系統是GSM協議(全球手機系統),GSM是當前應用最為廣泛的移動手機標準。全球超過200個國家和地區超過10億人正在使用GSM手機。為了能夠將GSM協議廣播出去,我將使用一個SDR平台——BladeRF。BladeRF是由樹莓派使用YateBTS控制的,YateBTS是實現手機訪問網路和GSM核心功能和協議的軟體,允許手機通過語音、文本和數據進行通信。因為樹莓派的體積小、功耗低,所以利用樹莓派就是我實現攜帶型目標的一把神器。

搭建環境配置

要使用我的指令搭建移動網路,你需要進行以下配置:

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

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

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

4.在樹莓派上啟用SSH,為了便於使用,終端也可以正常運行;

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

6.SIM卡(sysmoSIM-GR2);

7.一根網線。

樹莓派的設置

點擊這裡查看詳細的配置說明。

1.將網線、電源和鍵盤插入到樹莓派中,然後將電源適配器通電。注意:在樹莓派中默認的用戶名為pi,默認的密碼為raspberry;

2.運行。

sudo raspi-confign

改變輸入布局

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 nown

網路搭建

為了輕鬆在你的樹莓派上啟用SSH,請使用以下命令記下Pi的IPv4地址:

ifconfig eth0n

在另一台計算機上,利用終端應用程序運行:

ssh pi@[INSERT PI IPV4 ADDRESS HERE]n

一旦出現證書的提示,你要再次輸入用戶名pi和默認的密碼raspberry。

現在我開始與Pi進行遠程交互了,首先讓我開始收集搭建所需的內容。

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

不過腳本將檢查你是否是以root身份運行的,因此請確保你不會遺漏下面的命令的「sudo」部分。

在不記錄輸出的情況下運行腳本:

sudo ./PortableCellNetwork.shn

在記錄輸出的情況下運行腳本:

sudo ./PortableCellNetwork.sh | tee install.logn

1.該腳本將查詢你的網路名稱,你需要按「Enter」鍵接受「DuaneDunstonRF」的默認名稱或提供一個能夠確認的信息;

2.確認你的網路名稱;

3.該腳本現在將啟動安裝和配置過程;

4.當腳本啟動快完成時,它將查詢「pi」用戶的新用戶密碼。你需要重新輸入密碼,以加強安全性。

當腳本啟動完成時,它將報告運行的時間並等待重新啟動輸入。

1.按任意鍵重新啟動pi。這樣你將被重新被引導到桌面環境中,此時,你只需在啟動的彈出窗口中選擇「默認配置」選項;

2.一個名為「StartYateBTS」的啟動腳本將在 『/home/pi』 等待你,並開始啟動移動網路進程。不過要啟用啟動腳本,必須在出現腳本名稱後通過傳遞「- i」標誌以交互方式運行,「- i」標誌如以下所示:

sudo ./StartYateBTS.sh -in

一旦開始啟動,這個腳本將會出現以下兩個運行:

1.打開一個終端窗口,報告Yate(移動網路)狀態;

2.打開一個Firefox瀏覽器窗口,該窗口將被導航到YateBTS(基於web的移動網路配置)。此時,你就可以查看或修改網路配置的設置了,並管理或編寫設備的SIM卡。

手機環境的搭建

要將兼容GSM和SIM卡的手機連接到移動網路,需要搭建SIM卡以配合正確的設置。YateBTS使用的是PySIM工具,它是一個用於編寫SIM卡,用python語言編寫的工具。在安裝腳本時,我已經把PySIM設置為支持sysmosim-gr2卡的正確版本。不過前提是確保兼容的SIM卡編寫器已經被插入到了樹莓派中,並將SIM卡置於它的進程中。

如下所示,打開名為Manage SIMs的選項卡,確保生成的隨機IMSI設置被選中,插入用戶未選中。如果你不小心選中插入用戶的選項,則移動網路的功能將被干擾。

接下來是檢查在「高級」下拉欄中是否進行了正確的設置,要確保移動網路選擇設置是正確的。否則,使用默認設置並點擊保存。

下圖顯示了對SIM重新編程後成功的輸出,要注意的是,在管理SIMs的列表中對SIM卡進行搭建。

在將SIM卡插入GSM手機後,YateBTS將會發送一個歡迎信息,並顯示如下所示的手機號碼。如果Android手機沒有正確連接到手機網路,請打開撥號器應用程序並輸入##4636## A,這樣設置菜單將出現在手機信息選項卡中,將首選的網路類型選為GSM,然後重新啟動手機。

安全設置

我安裝的腳本都是基於Internet安全中心(CIS)的安全模型,因為這會讓移動通信的安全得到最佳保障,該腳本集成了為Debian 8操作系統設計的基準模型。Debian 8操作系統是與樹莓派映像最接近的Linux發行版,因此我認為該模型可以提供最佳安全參考。其實一開始,我是以樹莓派的安全功能為參考的,但它不支持可以實現安全控制的自定義分區,例如全磁碟加密和分區修飾符,這樣,它可以拒絕任意的執行,並保護填充磁碟空間的攻擊。但安全腳本的目標是實現儘可能多的控制項,同時保持樹莓派操作系統和Yate軟體的功能。

CIS安全模型可以禁用任何不必要的系統功能,以減少潛在的攻擊表面,該模型會定期進行更新和補丁來修復安全漏洞,對於一個移動設備的系統來說,這是一個挑戰,因為有時候移動設備是無法連網的。

更新操作系統

這樣做的原因是因為周期性的補丁包含安全增強、漏洞修復和優化的附加功能:

sudo apt-get -y dist-upgraden

啟用目錄的粘滯位(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-tn

刪除不必要的文件系統

這樣做可以減少樹莓派上的本地攻擊面:

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

刪除不必要的網路協議

由於linux內核能支持不常用的網路協議,而這些協議又與本次的目標無關,因此,它們應該被禁用。

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

禁用核心轉儲,以防應用程序崩潰

核心轉儲是可執行程序的內存,它通常被用來確定程序中止的原因。它還可以用於從核心文件收集機密信息。

echo "* hard core 0" >> /etc/security/limits.confecho fs.suid_dumpable = 0 >> /etc/sysctl.confnsysctl -pecho ulimit -S -c 0 > /dev/null 2>&1 >> /etc/profilen

關閉不必要的服務

最保險的做法就是禁用不需要的服務,以防止這些服務被開啟。

systemctl disable avahi-daemonnsystemctl disable triggerhappy.servicensystemctl disable bluetooth.servicen

更改樹莓派的原始密碼

眾所周知,Pi為默認密碼,所以在進行更改時一定要設置的難度高一些。

passwd pin

測試環境的搭建

我的辦法是隔著一堵牆或一個走廊來測試。

有用的搭建目錄

共享文件路徑的目錄 /usr/local/share/yate

到達conf文件路徑的目錄 /usr/local/etc/yate

到達用戶文件路徑的目錄 /root/.yate

模塊路徑的目錄 /usr/local/lib/yate

如何測試

1.Yate NIB設置中包括一個ELIZA聊天軟體,你可以把SMS消息發送到35492與該軟體進行測試通信;

2.利用Android手機的配置菜單,撥打##4636##測試通信。

本文翻譯自:mbro95.github.io/Portab ,如若轉載,請註明原文地址: 4hou.com/mobile/7795.ht 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

TAG:信息安全 |