在路上訪問我的家庭 Linux 伺服器的最安全方法是什麼?需要專業的解決方案

在路上訪問我的家庭 Linux 伺服器的最安全方法是什麼?需要專業的解決方案

我想很多人可能會跟我的情況一樣。我出差時攜帶筆記型電腦。我需要從辦公室(對我來說就是我的家)安全地存取文件。

我的問題的簡短版本:

如何進行 SSH/SFTP真的當只有一個人需要從筆記型電腦連接到伺服器時安全嗎?在這種情況下,什麼特殊步驟可以使其他人幾乎不可能在線上存取伺服器?

更多細節:

我在筆記型電腦 (KDE) 和家庭/辦公室伺服器上使用 Ubuntu Linux。連接性不是問題。如果需要,我可以連接到我的手機。我需要存取大量文件(大約 300 GB)。我不需要一次需要所有文件,但我事先不知道我可能需要哪些文件。這些文件包含機密的客戶資訊和信用卡號等個人信息,因此它們必須是安全的。

有鑑於此,我不想將所有這些文件儲存在 Dropbox 或 Amazon AWS 或類似裝置上。無論如何,我無法證明這個成本是合理的(Dropbox 甚至不公佈 100 GB 以上套餐的價格,而且安全性是一個問題)。不過,我願意花一些錢來尋求適當的解決方案。例如,VPN 服務可能是解決方案的一部分?或其他商業服務?我聽說過 PogoPlug,但我不知道是否有類似的服務可以解決我的安全問題?

我可以將所有文件複製到筆記型電腦上,因為它有空間。但後來我必須在我的家用電腦和我的筆記型電腦之間同步,我發現過去我不太擅長這樣做。如果我的筆記型電腦遺失或被盜,我的資料也會在上面。筆記型電腦驅動器是 SSD,SSD 驅動器的加密解決方案並不好。

因此,似乎最好將我的所有資料保存在我的 Linux 檔案伺服器上(在家中是安全的)。

這是一個合理的結論,還是任何連接到互聯網的東西都存在這樣的風險,以至於我應該將數據複製到筆記型電腦(也許用 HDD 替換 SSD,這會降低電池壽命和性能)?

我認為丟失筆記型電腦的風險更高。我不是明顯的線上黑客目標。我家的寬頻是有線上網,看起來很可靠。因此,我想知道在路上安全地存取我的資料(從我的筆記型電腦)的最佳(合理)方法。

我只需要從這台電腦存取它,儘管我可以透過手機的 3G/4G 或透過 WiFi 或某些客戶端的寬頻等進行連接。

我傾向於基於 SSH 和 SFTP(或類似)的解決方案。 SSH/SFTP 將提供我預計需要的所有功能。我想使用SFTP和Dolphin來瀏覽和下載檔案。我將使用 SSH 和終端進行其他操作。

我的 Linux 檔案伺服器是使用 OpenSSH 設定的。我認為我的 SSH 相對安全。我也在使用 Denyhosts。但我想更進一步。我希望任何人都可以盡可能接近零地進入我的伺服器,同時仍然允許我從路上訪問。

我不是系統管理員或程式設計師或真正的「超級使用者」。我必須把大部分時間花在做其他事情。我聽說過“端口敲門”,但我從未使用過它,也不知道如何實現它(儘管我願意學習)。

我已經閱讀了許多標題為以下的文章:

  • 前 20 個 OpenSSH 伺服器最佳安全實踐
  • 20 個 Linux 伺服器強化安全技巧
  • Debian Linux 使用 DenyHosts 軟體阻止 SSH 用戶駭客/破解攻擊
  • 更多的...

這些文章提到了諸如

  • 使用拒絕主機
  • 在 /etc/ssh/sshd_config 中設定AllowUsers選項以僅允許特定使用者連線。
  • 停用透過 SSH 的 root 登入。
  • 使用公鑰認證並禁止密碼登入
  • 以及更多。

我正在做上述所有事情(以及更多)。但我並沒有實現我讀到的每一件事。我可能做不到。

但也許在我的情況下我可以做得更好,因為我只需要從一台筆記型電腦進行訪問。我只是個用戶。我的伺服器不需要向公眾開放。鑑於所有這些事實,我希望我能在這裡得到一些在我的能力範圍內實施的建議,並利用這些事實來創建比上面文章中的通用建議更好的安全性。

一個例子是端口敲門。這似乎非常適合我的情況。除了這些之外還有什麼?

答案1

不存在完美的安全性。每個安全選項都是一種權衡。我個人建議:

  1. 使用 DenyHosts 來防止暴力破解,但設定一個合理的超時值,這樣您就不會在旅途中將自己鎖在外面。如果你不小心,這種情況一定會發生。
  2. 設定“AllowUsers”選項以/etc/ssh/sshd_config僅允許特定使用者連線。
  3. 停用透過 SSH 的 root 登入。
  4. 使用筆記型電腦上的公鑰身份驗證。
  5. 從任何公共終端使用一次性密碼,例如 OPIE 或 OTPW。
  6. 切勿在公共終端使用 root 密碼,即使與 sudo 或 su 一起使用也是如此。

另外,我非常重視具有密碼鍵盤的便攜式加密驅動器,例如 Apricorn Aegis Padlock 驅動器。它們非常便攜,對於大多數威脅模型來說相當安全,最大的風險是忘記 PIN 碼或在旅行時丟失驅動器 - 但在這兩種情況下,您仍然可以安全地將原始文件放在家中。

如果您喜歡免費的替代方案,您可以使用 encfs、ecryptfs 或類似工具來建立加密掛載來保存敏感資料。您可能會丟失筆記型電腦上的數據,或者有人可能會篡改您的核心、引導程式或硬體以在您看不見的情況下安裝鍵盤記錄器,但這聽起來不像您當前的威脅模型,加密安裝應該可以使用你的目的很好。我認為這個選項不如密碼鍵盤那麼安全,但它仍然是一個相當可靠的選擇。

基本上,除非你真的覺得你需要服務由遠端系統提供,我建議您將文件放入您認為需要的安全容器中。然後,當您回到家時,您可以使用 rsync、conduit 或 unison 來同步文件,或者只是將更新的文件複製回主系統。

對於您的問題,確實沒有“一刀切”的答案。希望這可以幫助。

答案2

我將建議連接埠碰撞作為如何在本例中已經完成的標準 SSH 強化之上達到下一個安全等級的答案。建議標準 SSH 強化的其他答案忽略了已經採取這些步驟的事實。這個問題超出了 SSH 強化的範圍。

根據維基百科,

考慮一下,如果外部攻擊者不知道連接埠敲擊序列,即使是最簡單的序列也需要大量的暴力才能被發現。三敲簡單的 TCP 序列(例如連接埠 1000、2000、3000)需要攻擊者在事先不知道該序列的情況下測試 1-65535 範圍內三個連接埠的每個組合,然後掃描其間的每個連接埠以查看如果有東西打開了。作為一個有狀態的系統,只有在依序接收正確的三位數序列(中間沒有其他資料包)後,連接埠才會開啟。

在最壞的情況下,這相當於最多需要 655363 個資料包才能取得和偵測單一成功開啟。這是 281,474,976,710,656 或超過 281 兆個資料包。平均而言,一次嘗試需要大約 9.2 個五億個資料包才能透過暴力方式成功開啟單一簡單的僅三埠 TCP 敲擊。當使用敲門嘗試限制來阻止暴力攻擊、使用更長和更複雜的序列以及使用密碼雜湊作為敲門的一部分時,這變得更加不切實際。

端口敲門有一些限制(例如,它是共享秘密)。但是,正如問題中所述,這是一個解決方案人。因此,在現有 SSH 強化(以及拒絕主機等)之上進行連接埠敲擊是將安全性提升到新水平的有效且簡單的步驟。

Port Knocker 實用程式的廣泛使用在安全專家中是一個有爭議的問題,但這個問題是關於何時可以非常有效地使用 Port Knocker 的教科書案例。

當然,使用連接埠碰撞也意味著使用 iptables。因此,進入下一步(這就是這裡的問題)需要執行以下兩個步驟:

  1. 使用iptables

  2. 使用連接埠敲門

這是我喜歡的特定端口敲門實現:
http://www.portknocking.org/view/implementations
許多流行系統都有客戶端,包括 Android。

參考:

答案3

保護您的文件。

在您離開之前對它們進行加密。然後設定您的 ssh 伺服器,使用 ssh 伺服器的金鑰和密碼遠端存取您的伺服器。下載加密文件,切斷連接並解密文件。無論您使用什麼,您都必須了解您使用的所有東西都可能並且將會在某些時候被駭客攻擊,因此您必須阻止人們承擔您可接受的風險。

例如,如果您擁有 Apple 產品,那麼您很可能擁有工廠安裝的 Root 工具包;戴爾、惠普、華碩都是如此。它們僅適用於 OS X 和 Windows XP 及更高版本。所以,使用Linux。

答案4

我在筆記型電腦 (KDE) 和家庭/辦公室伺服器上使用 Ubuntu Linux。連接性不是問題。如果需要,我可以連接到我的手機。我需要存取大量文件(大約 300 GB)。我不需要一次需要所有文件,但我事先不知道我可能需要哪些文件。這些文件包含機密的客戶資訊和信用卡號等個人信息,因此它們必須是安全的。

您確實知道使用手機的 3G/4G 連線並不安全,對吧?電話公司有能力(毫無疑問)查看您的所有網路流量。現在網路流量可能是安全的,但理論上它可以對您執行中間人攻擊。如果您使用 3G/4G 連接,則在透過另一個安全連接上傳任何內容之前,您需要使用 VPN。

有鑑於此,我不想將所有這些文件儲存在 Dropbox 或 Amazon AWS 或類似裝置上。無論如何,我無法證明這個成本是合理的(Dropbox 甚至不公佈 100 GB 以上套餐的價格,而且安全性是一個問題)。不過,我願意花一些錢來尋求適當的解決方案。例如,VPN 服務可能是解決方案的一部分?或其他商業服務?我聽說過 PogoPlug,但我不知道是否有類似的服務可以解決我的安全問題?

此外,任何包含 PII 和/或機密客戶資訊的文件都應加密。如果不加密這些文件以及包含這些文件的任何儲存介質,您不會為您的客戶帶來任何好處。所有副本均應加密。

因此,使用雲端服務確實是一種解決方案,只要您的所有資訊在上傳前都經過加密,您唯一關心的就是長期的可保留性。應該使用雲端存儲,您還應該擁有自己的本地和遠端副本,具體取決於您實際處理的存儲量。

此外...如果您確實要處理 300GB 的數據,3G/4G 連線確實無法滿足您的需求。

我可以將所有文件複製到筆記型電腦上,因為它有空間。但後來我必須在我的家用電腦和我的筆記型電腦之間同步,我發現過去我不太擅長這樣做。如果我的筆記型電腦遺失或被盜,我的資料也會在上面。筆記型電腦驅動器是 SSD,SSD 驅動器的加密解決方案並不好。

如果有人說加密的 SSD 裝置在放置任何資料之前完成就不是 100% 安全,那麼他就是徹頭徹尾的白痴,您不應該再接受他們的技術建議。

這是一個合理的結論,還是任何連接到互聯網的東西都存在這樣的風險,以至於我應該將數據複製到筆記型電腦(也許用 HDD 替換 SSD,這會降低電池壽命和性能)?

聽起來您應該想出一個例程將所有儲存設備同步在一起。有解決辦法....

I view the risks of losing a laptop to be higher. I am not an obvious hacking target online. My home broadband is cable Internet, and it seems very reliable. So I want to know the best (reasonable) way to securely access my data (from my laptop) while on the road.

如果您的筆記型電腦儲存裝置已加密,並且您對檔案進行了加密,那麼任何人都將擁有一台具有隨機位元組的筆記型電腦。

我只需要從這台電腦存取它,儘管我可以透過手機的 3G/4G 或透過 WiFi 或某些客戶端的寬頻等進行連接。

我會使用第三方 VPN 服務,該服務允許您將特定的 IP 位址列入白名單,這樣您就可以始終擁有完全相同的 IP 位址。使用長安全隨機密碼、加密資料和加密儲存介質,讓您的資料100%安全。加密資料只是隨機位元組。

除非您將文件加密儲存在伺服器上,否則您所做的任何事情都將不如遠端雲端解決方案安全。 Amazon 和 Dropbox 花費數百萬美元來保護他們的伺服器,作為單一用戶,您可能不會安裝每個發布的核心更新。

此外,聽起來你應該專注於你的客戶,做你所做的事情,然後擔心家庭 Linux 伺服器的安全性,因為它不像 Amazon 和 Dropbox 那麼安全。

相關內容