如何搭建一個攜帶型移動網路
前言
本文的目標是幫你建立一個便攜安全的移動網路,這樣你就能利用移動手機的一些基本技術,在任何情況下搭建移動網路。大家都知道,在用戶高峰時段,常用的移動網路很容易堵塞,不堪重負。所以,關鍵時刻能夠建立安全可靠的通信,是非常重要的。
以我的手機為例,我手機用的移動通信系統是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##測試通信。
本文翻譯自:https://mbro95.github.io/PortableCellNetwork/ ,如若轉載,請註明原文地址: http://www.4hou.com/mobile/7795.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
TAG:信息安全 |