基本的VPS安全最佳實踐作法
想像一下,如果您在市中心經營一家實體店且非常忙碌,誰不想要您的錢呢?自古以來最著名的可說是強盜與竊賊了,那就是為何您總是需要在店裡裝設24/7全天候的監視器。
我們都生活在一個一切都在線上的世界,包括您的事業(而竊賊同樣也在線!)您已經在網路上運作您的事業,然後呢?執行線上事業不只是開發您的網站,為您的產品進行促銷,還有支付您收到來自託管公司的所有帳單:來維護您的網站安全,確保沒人能毀掉您的事業。
照理來說,當您運作一個電商網站時,您不只會將您的網站託管在一個共享的託管服務、VPS、或是雲端。如果您計劃在共享託管服務,您可能無需擔心太多有關伺服器安全,因為它主要由託管公司完成。但對於VPS及cloud-base服務(像是AWS),您就需要自行處理。
此篇文章只會涵蓋VPS/專用伺服器的安全最佳實踐。至於cloud-based服務,將會完成撰寫於不同文章。
關於保護您的伺服器,您需要了解幾件事。這些是我們目前能想到的。我們不會在此篇文章中詳細介紹,但我們會在下篇文章告訴您如何做到。
- 登入安全SSH
登入SSH是保護安全的第一件事,因為一旦入侵者獲得SSH訪問權限,他就可以做任何事。為了保護它,我們總是建議使用此清單:- 禁用SSH的密碼驗證,且只使用key-based驗證
- 禁用root登入
- 更換SSH登入的預設端22
- 防火牆
防火牆非常的重要。曾經有客戶說明資料庫伺服器被完全清空時,我們發現mysql的3306端口是公開且允許公開訪問的。這很有可能是駭客勒索機器人透過猜測mysql的用戶名稱及密碼,刪除所有資料庫,然後要求一定的價錢來恢復資料庫。如果您不希望發生這種事,這邊是我們的建議,一切都是透過iptables來完成的:- 只允許特定的IP地址通過SSH到伺服器
- 只開啟您需要的伺服器訪問權限,並關閉所有其他的。
例如若您只需要該伺服器上的網頁伺服器,只需要允許端80及443(若需要就加上您SSH端),並關閉其他。
- 設定使用者權限
限制您使用者的訪問權限。這很重要,因為如果某人從您的伺服器使用者之一連線劫持來獲得您伺服器的權限,除了您許可他做的事情之外,他無法做任何事。您可以採取以下防範措施:- 為每位需要訪問伺服器的用戶建立登入
- 永遠不要為所有人做“sudo”
- 改掉使用“chmod777”的壞習慣
- 為每位需要訪問伺服器的用戶建立登入
- 對服務限制訪問權限
除了防火牆,在它的服務/應用程序上保護伺服器也是個好習慣。例如從不為任何主機加入mysql用戶,從不允許來自網路伺服器的redis和elasticsearch的連線等等。 - 定期的軟體更新
夠清楚吧!加上“unattended upgrade”會非常有用! - 定期備份!
建議:請不要依賴您主機託管的自動備份服務,尤其是對您的資料庫。當您的供應商備份您的伺服器時,資料庫服務可能處於不穩定狀態,且恢復它可能也無法運作。反而是備份腳本,每天將您的資料庫轉存到一個資料夾中,您就可以在需要時從中恢復。
另外請確認您的備份是可靠即可恢復的! - 保持輕鬆的心情來監控您的伺服器
Zabbix、nodeping、grafana、htop、Inav都是您的夥伴!適當的將它們設定並設定警報。
目前就介紹到這邊,我們會在之後的文章中詳細介紹。
以上是基本的VPS安全最佳實踐作法分享,在下一篇我們將會詳細介紹SSH的部分,各位讀者們不要錯過啦!記得追蹤歐斯瑞FB粉絲團及IG,也可以訂閱電子報,隨時掌握第一手新知分享呦!有問題也歡迎隨時聯繫我們~下次見囉!
我要留言