題:
如何保護Raspberry Pi?
Dan B
2012-07-24 18:50:34 UTC
view on stackexchange narkive permalink

成千上萬的Raspberry Pi都已連接到互聯網,最終將吸引一些想對小型計算機做一些不好的事情的人的興趣,尤其是當許多人使用他們的Pi來做網絡服務器時。 Linux是可靠的開箱即用的安全操作系統,但是如果我打算在設備上託管面向Internet的服務,除了更改密碼之外,還應該怎麼做才能“加固” Raspberry Pi?

為了支持我的“成千上萬”的玩笑,Eben Upton說“ Raspberry Pi已經售出了200,000多種基本計算機模塊,目前每天出貨4,000台”。可以安全地假設其中200,000個中的成千上萬個已連接到Internet。假設連接互聯網的Raspberry Pi中有成千上萬的人正在託管面向公眾的Web服務是不太安全的,但是黑客熱情仍然存在。

請記住,儘管可能有“成千上萬”的連接,但(目前)有3個獨立的Linux發行版(我知道),而且我認為甚至還有一些非基於Linux的項目。這影響了黑客的觀點。儘管如此,如果安全性很重要,請保持發行版的更新,並在必要時將設備保留在防火牆後面。
切入點RLH我將在該問題上添加一些其他信息,以支持野外Raspberry Pi的數量,以更好地了解他在回答中提到的Raspberry Pi的攻擊面。
@DanB攻擊面不是Pi數量的函數,而是可用於攻擊的系統和服務的數量。 http://en.wikipedia.org/wiki/Attack_surface
@SteveRobillard對不起,如果我在評論中不清楚,但是在我對問題進行的編輯中,我試圖以定性的方式歸結為託管面向公眾的服務的Pi的數量,因此將提供可用於攻擊的服務。
我發現了一個簡短的教程,講解如何在使用SSH時保護樹莓派,這看起來很簡潔。 [->教程](http://jjjjango.blogspot.co.at/2015/01/secure-your-raspberry-pi.html)
另請參閱https://www.raspberrypi.org/documentation/configuration/security.md
六 答案:
Steve Robillard
2012-07-24 20:05:04 UTC
view on stackexchange narkive permalink

保護計算機安全不是一個簡單的過程,整本書都圍繞該主題編寫。 Pi的大小不會減少對潛在攻擊者的安全威脅或攻擊面。因此,我將描述其中涉及的步驟,並提供指向更詳細的說明和教程的鏈接。

由於您沒有提到正在使用的發行版,因此我假設使用推薦的Raspbian發行版。

  1. 更改默認密碼。 Raspbian發行版將此選項作為初始啟動腳本中的一個選項。如果尚未執行此操作,則可以使用 passwd命令進行更改。確保選擇一個強密碼
  2. 禁用未使用的服務我看到推薦的Raspbian發行版包括Apache Web服務器並在啟動時啟用了它(有人可以確認這一點) strike>。您真的需要運行Web服務器嗎?如果沒有禁用它。如果您確實需要運行Apache,請確保確保其安全,並對其他服務(例如FTP,NGINX,MySQL等)也進行同樣的操作,那麼Google搜索應該會打開一些資源。
  3. 安裝並配置 iptables
  4. 使系統保持最新狀態。您可以使用 cron或使用 cron-apt自動執行此操作。
  5. 配置日誌記錄可以監視登錄和失敗的登錄嘗試。如果可能,請使用外部硬盤驅動器來託管/ var分區,這將為您提供更多空間,避免日誌文件填滿SD卡並延長SD卡的使用壽命。
  6. ol>

    您可能還需要考慮一些其他事項:

您還應該閱讀以下相關問題在將其連接到Internet之前(特別是在公共場所)如何保護入侵和惡意軟件IP地址)?

這只是保護Pi的最低要求。有關更多信息,您可能需要閱讀保護Debian手冊

確保生成您自己的ssh密鑰。我認為某些圖像中已經有鍵。
@gnibbler的好處是我只是想確認這是真的,並且它們不是在安裝/啟用SSH時生成的。
默認情況下,未在raspbian中安裝Apache(用戶安裝了類似php5-mysql IIRC之類的東西)。對於比裸iptables更友好的數據包過濾器,也許我們應該推薦ufw,甚至是GUI前端gufw?
即使您在路由器後面,安裝iptables也有意義嗎?
@otakun85是的,它被稱為深度防禦。如果完全依靠您的路由器,那麼有人應該越過擁有iptables並運行的路由器,這會使進一步的利用變得更加困難。
禁用未使用的服務還有助於縮短啟動時間,並節省(少量)的內存和CPU。
Nigel Tolley
2013-04-06 16:44:48 UTC
view on stackexchange narkive permalink

看過RPi,只要您做幾件事,就好像是一個相當安全的設備。

默認用戶名/通行證需求已更改。至少要更改密碼。為了再次提高安全性,請同時更改用戶名。 (添加一個新用戶,然後禁用PI。儘管我認為默認情況下仍是默認情況,但請檢查SSH登錄是否也禁用了ROOT。)

掃描RPi僅返回一個開放端口22,即SSH連接,甚至必須在它顯示之前將其打開(我希望大多數人會使用它而不是顯示器,鍵盤和鼠標,尤其是在{web}服務器上)

您可以更改SSH端口號,但這不會做太多,因為可以輕鬆對端口進行掃描。相反,請啟用SSH密鑰身份驗證。

如果沒有正確的SSH密鑰,用戶名和密碼,您現在將無法進入任何人。

下一步,設置您的計算機網絡服務器。 Apache幾乎就是它的所在。它將坐下來並默認監視端口80,並自動響應瀏覽器的連接並為您的網頁提供服務。

如果您有防火牆或路由器,則可以更改RPi端口,並讓路由器將從一個端口到另一個端口的流量。例如,進入路由器的端口80流量被重定向到RPi上的端口75,而22上的SSH重定向到端口72。這將增加另一層保護,但是稍微複雜一點。

顯然,請確保所有內容都已更新和打補丁。

這不會保護您免受以後可能會添加的利用Java,Flash,SQL Server等的攻擊,但這實際上只是基礎。

您還可以添加防火牆,如果安裝了新服務的人進入系統,進入另一個端口的速度將減慢。您的路由器應該對此進行處理,但是如果直接連接路由器,則進行設置,並且花費多長時間,無論如何都要運行它-它不會增加系統資源。

您可能要添加的另一件事是fail2ban( http://www.fail2ban.org/wiki/index.php/Main_Page),它添加了要阻止的防火牆規則多次登錄嘗試,防止字典攻擊。如果按照上述步驟進行操作,這些命令將無法在您的系統上運行,但是如果出於某種原因您只需要保留SSH身份驗證密碼(例如,從許多不同的計算機進行遠程登錄),則可以防止字典攻擊從工作。在指定嘗試次數之後,它將再次阻止該IP地址進行任何嘗試。 (請注意,它不會看到任何路由器/本地IP地址,並且禁止太早或太長時間禁止!)

編輯後添加:一切設置妥當後,請使用dd或Win32DiskImager之類的工具來對SD卡進行完整的按位備份。這樣,如果出現任何問題,您可以將其還原到同一張卡或將其寫入新卡,然後繼續進行。 (但是,如果被黑客入侵,您可能想找出發現的漏洞並可能先將其關閉!)

您能否解釋一下如何更改路由器上的RPi端口來增加另一層保護?
alzclarke
2012-11-06 08:47:48 UTC
view on stackexchange narkive permalink

linode在保護Linux服務器安全方面有出色的指南: http://library.linode.com/securing-your-server。相同的規則可以應用於樹莓派

dimo414
2020-03-16 22:54:31 UTC
view on stackexchange narkive permalink

幾個發布者提到了保持Pi的最新狀態的重要性,但是我發現的大多數資源只是建議手動運行 apt-get 時間,這似乎是一個糟糕的方法。我更希望自動安裝安全更新。

Debian 無人值守升級軟件包應該支持此更新,但是(在Raspbian上?

  • 您需要運行 sudo dpkg-reconfigure -plow無人值守升級來實際安排更新cronjob
  • 可能需要為Raspbian添加 origin = 條目-幾個 帖子 建議將自定義條目添加到 origin = Raspbian origin = Raspberry Pi Foundation 的配置文件中,但是我不知道如何準確地驗證設置。起源很糟糕(似乎需要手動調整)。
  • 還請考慮:
    • 設置 mailx 並取消註釋 Unattended-Upgrade :: Mail Unattended-Upgrade :: MailOnlyOnError 以獲得有關更新的通知
    • Unattended-Upgrade :: MinimalSteps 似乎也是一個好主意

運行 sudo無人值守升級-d --dry-run 來查看將要執行的操作(儘管類似地,這並不是很糟糕內容豐富,因為它將不會報告最近更新的系統上的任何更新。

Leon185
2019-12-23 03:19:41 UTC
view on stackexchange narkive permalink

您還可以考慮使用Lynis。它會掃描系統中的漏洞,並提供建議以提高Pi的安全性。

要安裝它,請使用

sudo lynis

該存儲庫最有可能已過期,因此請先使用sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

 添加密鑰來更新lynis code> 

然後添加存儲庫

  sudo apt install apt-transport-https  

  echo“ deb https://packages.cisofy.com/community/lynis/deb/ stable main” | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list 

最後,執行 sudo apt update 來更新lynis

我知道這是一篇過時的文章,但我想對其進行補充。希望它會有所幫助:)

spids
2015-05-28 15:20:05 UTC
view on stackexchange narkive permalink

除了強化操作系統之外,您還可以考慮使用基於雲的安全監視服務來監視設備上/上/從設備上的活動,並在檢測到任何不良情況時接收警報。如今,有幾種基於雲的SIEM工具可用,有些(如siemless)運行免費增值模式,因此家庭用戶不必花一分錢。要使用這種服務,您需要熟悉rsyslog / syslog之類的東西,這是所有Linux OS發行版的標準部分。

雲工具增加了攻擊面,本地安全監視(logwarn / check)是很好的工具,但是這個答案是不完整的,更多是評論。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...