題 強化家庭服務器


我正在考慮使用一些舊硬件和Ubuntu 12.04或Debian 6來設置一個適度的Web服務器。我知道通過將我的LAN上的機器暴露給外部世界,我變得容易受到安全漏洞和攻擊。既然如此,由於我幾乎沒有使用Linux保護計算機的經驗,我想詢問一些關於我應該如何保護這個Web服務器的建議,特別是因為我的家庭局域網中有其他計算機包含敏感信息(關於家庭銀行賬戶等。非常感謝你。


5
2018-05-27 13:41


起源




答案:


首先,您可能已經意識到這一點,但如果您擁有動態IP,則需要動態DNS,如DynDNS或 DNSexit

在安全部分,我認為使用 iptables (或像防火牆的GUI 縱火者 如果您不喜歡)如果您不需要打開ssh端口(端口22)或ftp(21)並且不安裝郵件服務器,則只為端口80打開入站連接就足夠了。

如果您的網站有登錄頁面或者您需要打開ssh,ftp或smtp,我建議至少安裝類似的東西 的fail2ban 禁止知識產權誰嘗試連接沒有成功,所以他們不會永遠嘗試。

需要注意的一件重要事情是,您必須查看日誌,以便輕鬆安裝它們 logwatch (應該在Debian和Ubuntu的默認存儲庫中)每天或每週通過郵件提醒您。你會經常通過閱讀它們來快速學會發現錯誤。

如果您需要從外部連接以管理服務器,請使用VPN,並始終保持操作系統始終更新!

更新: 對於SSH和sftp,我認為fail2ban +僅ssh密鑰(或密鑰+密碼,但不僅僅是密碼)是您需要的最小密鑰(並且不允許root訪問)。

如果您用於連接的計算機具有固定IP,請僅為這些傳入IP打開防火牆。

加密的VPN(我使用 OpenVPN的)也幫助確保您的訪問安全。
看看這裡 '快速'官方教程,在15-30分鐘內,您將為一個客戶端 - 一台服務器 - 提供一個可用的VPN服務器。 為了更好的設置 使用客戶端證書身份驗證和CA. (你的自由CA)你需要再花幾分鐘:D

如果您的站點需要MySQL或出於任何其他原因需要從Internet管理MySQL(或其他數據庫),如果您不使用VPN,請使用ssh隧道,以便連接到計算機上的本地端口並進行隧道加密連接到服務器所以你不需要打開數據庫端口,看看吧 -L 和 -D 參數 man ssh
我不會安裝phpmyadmin來監聽公共IP,因為這會打開你的數據庫到世界各地。如果需要,我可以在這里為隧道添加一個示例腳本。


5
2018-05-27 13:55



謝謝!是的,我知道這一點,我想我將使用NoIP或DynDN。另一方面,我真的需要打開SSH和SFTP端口......在這種情況下我該怎麼辦? - NetStudent
為SSH和SFTP編寫的答案 - laurent